WebAirDrop
- Role
- Full-Stack / WebRTC Project
- Timeline
- Personal Project
- Status
- Completed
- Category
- Full-Stack / WebRTC
A browser-based peer-to-peer file-sharing application that transfers files directly between devices through WebRTC without uploading file contents to a storage server.
WebAirDrop is a browser-native peer-to-peer file transfer tool. It works like AirDrop but across any device with a modern browser - Windows, macOS, Android, iOS. File contents travel directly from one browser to another over an RTCDataChannel; a Node.js/Socket.IO signaling server handles the initial WebRTC handshake but never receives the file data itself.
The problem
Most file-sharing tools either upload your files to a cloud server (introducing privacy risk and a size ceiling), require both devices to be on the same app ecosystem, or demand a client installation. WebAirDrop addresses this by using the WebRTC standard that is built into every modern browser, routing only the connection negotiation through a server while keeping file bytes peer-to-peer.
Approach
Signaling
When a sender and receiver connect, the Node.js server running Socket.IO exchanges WebRTC offers, answers, and ICE candidates between them. This negotiation establishes the peer connection. The signaling server does not receive, buffer, or store any file content.
Peer-to-peer transfer
Once the RTCPeerConnection is established, files are streamed through an RTCDataChannel directly between browsers. The application is designed without an application-level file-size restriction, though practical limits depend on the browser, network, and available memory.
Queue and identity
Multiple files can be queued and transferred in sequence. Each device is automatically assigned a unique generated name (for example, Cosmic Tiger or Neon Dragon) to make device identification human-readable without requiring a login.
Interface
The frontend is built with vanilla JavaScript and Vite with a dark glassmorphism UI. No framework dependency is needed. Styling uses CSS3 with modern design patterns.
Stack
Frontend
Networking
Signaling
What it changes
- Peer-to-peer file transfer - file bytes never touch the signaling server.
- Cross-platform: works on any modern browser regardless of operating system.
- Multiple-file queue with smooth sequential transfers.
- Automatically generated device names for easy identification.
- No login or account required.
WebAirDrop uses a Node.js/Socket.IO signaling server to coordinate WebRTC connections. The term 'serverless' does not apply - a signaling server is required for the initial handshake. File content is never routed through this server. Practical transfer size depends on browser and device capabilities.