At a Glance:
PairDrop is an open-source, local-network and internet file-sharing tool that works as a web app on all platforms, offering persistent device pairing, temporary public rooms, and direct sharing from OS share menus and the CLI.
Overview:
PairDrop is a multi-platform file-sharing web application inspired by Apple's AirDrop. It allows users to send images, documents, or text via peer-to-peer connections to devices on the same local network or over the internet. The tool functions entirely through a modern web browser with no installation required and provides flexible connectivity for complex network environments. Users can pair devices persistently using a 6-digit code or QR code for transfers independent of the local network, or join temporary public rooms for one-off internet-based file sharing. It also supports sending files directly from operating system share menus, context menus, and a command-line interface.
Key Decision Points:
Platform support: Works as a progressive web app (PWA) on all devices with a modern browser, including Android, iOS, Linux, and Windows.
Transfer methods: Supports local-network peer-to-peer transfers, internet transfers via persistent device pairing, and temporary public rooms with a 5-letter code or QR code.
Network complexity handling: Can connect devices in public Wi-Fi, company networks, behind iCloud Private Relay, VPNs, mobile hotspots, and across NAT via a TURN server.
Direct sharing: Files can be sent directly from the share menu on iOS and Android, the context menu on Windows and Ubuntu, and via a command-line interface.
Self-hosting: Run your own instance using Docker or Node.js, with the option to configure your own STUN/TURN servers.
Core Features:
Local network file sharing: Send images, documents, or text via peer-to-peer WebRTC connections to devices on the same local network.
Internet transfers with device pairing: Pair devices persistently using a 6-digit code or QR code so they can always find each other across different networks.
Temporary public rooms: Connect with other devices over the internet by entering a public room via a 5-letter code or QR code for temporary sessions.
Direct share and context menu integration: Send files directly from the share menu on iOS and Android, the context menu on Ubuntu (via Nautilus) and Windows, or through the CLI.
Display name and persistent pairing management: Set a custom display name to differentiate devices and manage or unpair known devices easily.
Auto-download and multi-file support: Transferred files are auto-downloaded when possible, with multiple files packaged into a ZIP and shown with an overall progress indicator.
Use Cases:
Sending files from a phone to a laptop on the same local network without uploading to a cloud service.
Sharing original-quality photos between Android and iOS devices over a peer-to-peer connection.
Transferring files between Linux systems in complex network environments, such as corporate networks or VPNs.
Running a self-hosted file transfer service on a local network using a Raspberry Pi.
Open-Source Alternative Value:
PairDrop provides an open-source, browser-based alternative to platform-restricted file-sharing tools like Apple's AirDrop. It can be self-hosted using Docker or Node.js, with the option to configure custom STUN/TURN servers for full control over the networking infrastructure. All transfers occur peer-to-peer where possible, with a fallback TURN server for NAT traversal. The source-available implementation in vanilla HTML5, JS ES6, CSS 3, and Node.js makes the application's networking logic and frontend inspectable, and its integration with OS-level share menus and CLI workflows extends its reach beyond a standard web interface.




