Introduction
Snapdrop is a progressive web app that enables peer-to-peer file sharing between devices on the same local network. It uses WebRTC for direct device-to-device transfers with no file size limits, no uploads to external servers, and no account required. Open it in a browser on any device and start sending files.
What Snapdrop Does
- Automatically discovers other Snapdrop-enabled devices on the same local network
- Transfers files directly between browsers using WebRTC data channels
- Sends short text messages between devices via the same interface
- Works on any device with a modern browser including phones, tablets, and desktops
- Operates as a PWA installable on home screens for quick access
Architecture Overview
Snapdrop uses a lightweight Node.js signaling server that helps devices on the same network discover each other via WebSocket connections. Once two peers are connected, the signaling server brokers a WebRTC handshake. After that, all file data flows directly peer-to-peer through WebRTC data channels, never touching the server. The server only sees device metadata for discovery purposes.
Self-Hosting & Configuration
- Deploy with Docker using the linuxserver/snapdrop image or clone the repo and run with Node.js
- The server requires only Node.js and npm with no database or external dependencies
- Configure the listening port via environment variables; default is port 3000
- Place behind a reverse proxy like Nginx or Caddy for HTTPS, which is required for WebRTC on most browsers
- Network isolation ensures only devices on the same subnet see each other
Key Features
- Zero-config peer discovery using local network broadcast via WebSocket rooms
- End-to-end transfer with no server-side file storage or cloud dependency
- No file size limit since transfers happen directly between browsers
- Cross-platform support across Windows, macOS, Linux, iOS, and Android browsers
- Lightweight server footprint suitable for Raspberry Pi or any small host
Comparison with Similar Tools
- PairDrop — community fork of Snapdrop with additional features like room-based sharing and multi-file transfer improvements
- LocalSend — native desktop and mobile app using a custom protocol; requires installation rather than a browser
- AirDrop — Apple-only; Snapdrop works across all operating systems and browsers
- KDE Connect — Linux-centric with Android support; Snapdrop is fully browser-based and platform-agnostic
- Wormhole — cloud-relayed encrypted transfer; Snapdrop is local-only with no cloud involvement
FAQ
Q: Do files pass through the Snapdrop server? A: No. The server only handles device discovery. Files transfer directly between browsers via WebRTC.
Q: Does Snapdrop work across different networks? A: By default it only discovers devices on the same local network. For cross-network sharing, you would need a TURN relay server.
Q: Is there a file size limit? A: No hard limit. Transfer speed depends on your local network bandwidth and browser memory.
Q: Can I use Snapdrop without self-hosting? A: Yes. The public instance at snapdrop.net is available, though self-hosting gives you full control and privacy.