explaingit

schlagmichdoch/pairdrop

10,292JavaScriptAudience · generalComplexity · 2/5Setup · easy

TLDR

A browser-based file sharing tool that works like Apple AirDrop across any devices and operating systems, with no account or app install needed, plus support for transfers over the internet using pairing codes.

Mindmap

mindmap
  root((PairDrop))
    What it does
      Browser file transfer
      Cross-platform AirDrop
      No account needed
    Connection methods
      Local network auto-detect
      6-digit pairing code
      QR code
      Public rooms
    Features
      Peer-to-peer transfer
      ZIP bundling
      Progress indicator
      Dark mode
    Self-hosting
      Docker setup
      Node.js setup
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Transfer photos from an Android phone to a Windows laptop on the same Wi-Fi without cables or cloud storage.

USE CASE 2

Send a large video file to someone on a different network by sharing a 6-digit pairing code or QR code.

USE CASE 3

Self-host a private file sharing server for a household or small team using Docker.

USE CASE 4

Drop files from one browser tab to another on the same machine as a quick copy tool.

Tech stack

JavaScriptWebRTCWebSocketNode.jsDocker

Getting it running

Difficulty · easy Time to first run · 5min

In plain English

PairDrop is a web-based file transfer tool that lets you send files between devices without installing anything or creating an account. You open it in a browser, and it finds other devices on the same local network, similar to how Apple AirDrop works on Apple hardware. You can send photos, documents, videos, or plain text from phone to laptop, Android to iOS, Linux to Windows, or any combination, as long as both sides have a modern browser. On local networks, devices appear automatically and files travel peer-to-peer, meaning the data moves directly between the two devices rather than through a cloud server. For transfers over the internet, PairDrop lets you pair two devices with a 6-digit code or a QR code. Paired devices always find each other even on different networks, because they share a private key. You can also create temporary public rooms, joined via a short letter code, to connect with a device you have never paired with before. When you send multiple files at once, they arrive bundled as a ZIP archive on the receiving side. On phones, files go through the system share menu, so photos can be saved directly to your gallery. A progress indicator shows how the transfer is going, and the screen stays awake so the transfer does not stall midway through. PairDrop is a fork of an earlier tool called Snapdrop, and its main additions are internet transfers, persistent device pairing, public rooms, and a range of smaller improvements including dark mode, video preview, and command-line support on desktop systems. If you prefer not to use the public hosted instance, PairDrop can run on your own server. Setup guides for Docker and Node.js are included in the repository. The project is open-source, accepts community translations, and welcomes bug reports and contributions.

Copy-paste prompts

Prompt 1
I want to transfer a folder of photos from my iPhone to my Linux laptop without any apps. Walk me through using PairDrop on the same Wi-Fi network, step by step.
Prompt 2
How do I pair two PairDrop devices on different networks so I can send files to a friend remotely? Show me how to generate the pairing code and connect.
Prompt 3
Walk me through running my own PairDrop instance with Docker so I don't rely on the public server.
Prompt 4
I need to share a file with several people I've never transferred to before. How do I create a temporary public room in PairDrop and share the room code?
Open on GitHub → Explain another repo

← schlagmichdoch on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.