Skip to content

aeemayo/airacha

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸͺ‘ Airacha - Decentralized Storage DApp

A modern, user-friendly decentralized application (DApp) for uploading, managing, and sharing files using Storacha (decentralized IPFS storage). Built with React and the @storacha/client library.

πŸš€ Features

Core Functionality

  • βœ… Email-based Authentication - Secure login via Storacha
  • βœ… Create Storage Spaces - Create unique, personal storage namespaces
  • βœ… Use Existing Spaces - Join and collaborate on shared spaces
  • βœ… File Upload - Upload any file type (images, documents, videos, etc.)
  • βœ… IPFS Gateway Links - Instant shareable links for uploaded content
  • βœ… File History - Persistent file tracking with localStorage
  • βœ… File Management - Copy CIDs, view on gateway, delete from history

Technical Features

  • 🌐 Built with React and Storacha Client
  • πŸ“¦ IPFS/Content Addressing - Cryptographic file identification
  • πŸ” Decentralized - No centralized servers, truly peer-to-peer
  • πŸ’Ύ Persistent Storage - Browser localStorage for file history
  • πŸ“± Responsive Design - Works on desktop and mobile
  • 🎨 Beautiful UI - Modern dark theme with smooth animations

πŸ“‹ Prerequisites

  • Node.js version 22 or higher
  • npm version 7 or higher
  • A Storacha account (free at storacha.network)

Check your versions:

node --version && npm --version

πŸ› οΈ Installation

  1. Clone the repository:
git clone https://github.com/aeemayo/airacha.git
cd airacha
  1. Install dependencies:
npm install
  1. Start the development server:
npm start

The app will open automatically at http://localhost:3000

πŸ“– How to Use

1️⃣ Create a New Space

1. Click "Create New Space"
2. Enter your email address
3. Check your email and click the verification link
4. Select a payment plan (if prompted)
5. Enter a space name (e.g., "my-storage")
6. Click "Create Space"

Once created, you'll see your Space DID - this is your unique identifier you can share with others.

2️⃣ Join an Existing Space

1. Click "Use Existing Space"
2. Paste the Space DID shared by another user
3. Click "Use Space"
4. You can now upload and manage files in this shared space

3️⃣ Upload Files

1. Select a file from your device
2. Click "Upload File"
3. Wait for the upload to complete
4. View your file in the "Uploaded Files" section

4️⃣ Share Your Files

Each uploaded file has:

  • CID (Content IDentifier) - The cryptographic hash of your file
  • Gateway Link - View button to access on IPFS gateway
  • Copy CID - Share the hash with anyone

Gateway URL format:

https://{CID}.ipfs.storacha.link

πŸ“ Project Structure

airacha/
β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ index.html
β”‚   β”œβ”€β”€ manifest.json
β”‚   β”œβ”€β”€ robots.txt
β”‚   └── airacha.png          # Background image
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ App.js               # Main DApp component
β”‚   β”œβ”€β”€ App.css              # Styling
β”‚   β”œβ”€β”€ index.js             # React entry point
β”‚   β”œβ”€β”€ App.test.js          # Tests
β”‚   └── setupTests.js
β”œβ”€β”€ package.json
└── README.md

πŸ”§ Available Commands

Development

npm start

Runs the app in development mode with hot reload.

Build for Production

npm run build

Creates an optimized production build in the build/ folder.

Run Tests

npm test

Launches the test runner in interactive watch mode.

🌐 Deployment

Deploy your DApp to the web using any of these services:

GitHub Pages

npm install --save-dev gh-pages
npm run build
# Follow GitHub Pages setup in package.json

Vercel

# Install Vercel CLI
npm i -g vercel

# Deploy
vercel

Netlify

# Build first
npm run build

# Drag and drop 'build' folder to Netlify
# Or use Netlify CLI

πŸ”‘ Key Concepts

Space

A unique storage namespace identified by a DID (Decentralized Identifier). Think of it as a personal or shared folder in the cloud.

CID (Content Identifier)

A cryptographic hash of your file content. It's unique to the file data and can never change. Share CIDs to let others retrieve your files.

IPFS Gateway

A server that retrieves content from the IPFS network using a CID. Storacha provides a default gateway at storacha.link.

DID (Decentralized Identifier)

A unique identifier for your space. Format: did:key:z6MkhaXgBZDvotDtL5M7bs...

πŸ“š Documentation

🀝 Contributing

Contributions are welcome! Please feel free to submit pull requests or open issues.

πŸ“„ License

This project is open source and available under the MIT License.

πŸ™ Acknowledgments

πŸ’¬ Support

Need help? Check out:


Built with ❀️ using Storacha

Analyzing the Bundle Size

This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size

Making a Progressive Web App

This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app

Advanced Configuration

This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration

Deployment

This section has moved here: https://facebook.github.io/create-react-app/docs/deployment

npm run build fails to minify

This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published