A peer-to-peer (P2P) file transfer web application built with WebRTC, enabling direct file sharing between two devices without a server intermediary for the file data. The app uses Node.js for signaling and HTML/CSS for the frontend.
- 🔁 P2P File Transfer – Direct transfer between devices using WebRTC DataChannels.
- 🆔 Session ID Based Connection – Sender generates a session ID, and the receiver enters it to connect.
- 🖱️ Drag & Drop File Sharing – Intuitive drag and drop interface for file uploads.
- 🔐 End-to-End Encryption – Ensures privacy and data protection during transfer.
- 💬 Minimal Signaling Server – Built with Node.js and Socket.IO for connection setup only.
- Frontend: HTML,CSS
- Backend: Javascript+Socket.IO
- Real-Time Communication: WebRTC
Here’s how the file transfer looks in action:
- Sender opens the app and generates a session ID.
- Receiver opens the app and enters the session ID (or scans QR).
- A WebRTC connection is established using a signaling server.
- Files are transferred directly using WebRTC DataChannels.
This project was developed during a 24-hour FOSS hackathon, and as such, there are a few limitations due to the restricted development time:
- 📂 Single File Transfer Only – Currently supports sending one file at a time.
- ❌ No Transfer Resume – Interrupted transfers cannot be resumed.
- 📶 Unstable Connection on Poor Networks – Performance may degrade on unstable or slow internet.
We plan to address many of these in future iterations or open it up for community contributions!