AtomixDrop is a decentralized peer-to-peer (P2P) file-sharing web application built using Next.js, Tailwind CSS, Socket.IO, and WebRTC. The app enables users to transfer files directly between peers without relying on a central server for file storage.
- Instant Room Creation: A unique room is automatically created when a user visits the app.
- WebRTC-based P2P File Transfer: Ensures secure and fast file sharing directly between peers.
- WebSocket Signaling: Uses WebSocket for efficient connection establishment between peers.
- Real-Time File Transfer Progress: Displays transfer speed and progress in real-time.
- Simple UI: Built with Tailwind CSS for a sleek and minimal design.
- Frontend: Next.js, React, Tailwind CSS
- Backend: Socket.IO for signaling
- P2P Communication: WebRTC
- State Management: React Hooks
- Worker Threads: For handling file transfers efficiently
- Node.js >= 16
- npm or yarn
- Clone the repository:
git clone https://github.com/yourusername/atomixdrop.git cd atomixdrop - Install dependencies:
npm install
- Set up environment variables:
Create a
.env.localfile and add the following:NEXT_PUBLIC_BACKEND_URL=http://localhost:5000
- Run the development server:
npm run dev
- Open http://localhost:3000 in your browser.
- A unique room ID is generated when a user visits the site.
- The user can share the room link with another peer.
- When the second user joins, a WebRTC peer-to-peer connection is established.
- The sender selects a file, and the transfer begins.
- The recipient can download the received file after the transfer completes.
This project is licensed under the MIT License.
Feel free to contribute and enhance AtomixDrop!