# s3nd vs PairDrop

> A PairDrop alternative for when the other device is not in the room. What PairDrop is, where the two overlap, where they differ, and when to pick each.

Canonical: https://www.s3nd.sh/alternatives/pairdrop · Markdown: https://www.s3nd.sh/alternatives/pairdrop.md · Français: https://www.s3nd.sh/fr/alternatives/pairdrop

No account, no install, open source, and a person moving something between two of their own devices. Both keep the bytes away from a third party.

## What PairDrop is
A browser-based, peer-to-peer file transfer between devices on the same network, in the spirit of AirDrop and a fork of Snapdrop: open the page on both devices, they see each other, drop the file. WebRTC carries the bytes and a small signaling server introduces the peers. Pairing across networks is possible with a code.

Website: https://github.com/schlagmichdoch/PairDrop

## Where they part ways.
| | s3nd | PairDrop |
| --- | --- | --- |
| What it is | A CLI, a library and React hooks over your own S3 bucket | Browser peer-to-peer transfer on a local network |
| Where the data lives | Your bucket: S3, R2, MinIO, Scaleway, Wasabi | Nowhere: peer to peer |
| Both ends online at once | No. The code is redeemed later, until it expires | Yes, at the same time |
| From inside your web app | Yes, through one route on your server | Its own web page |
| Accounts | None. The code is the whole handshake | None |
| Hosting | Your bucket, plus your server when a browser takes part | Public instance, self-hostable |
| Price | Free. You pay your storage provider for a few objects that expire | Free |
| License | MIT | GPL-3.0 |

## What actually changes.
- **Now versus later** — PairDrop works while both devices have the page open. s3nd stores the transfer in the bucket, and the other device picks it up when it is switched on, for as long as the transfer lives.
- **Nothing stored versus stored in your bucket** — PairDrop keeps nothing anywhere, which is a feature. s3nd keeps the object until it expires, which is a different feature: the transfer survives a closed tab.
- **A page for people versus a primitive for apps** — PairDrop is the interface. s3nd is what you build an interface on, in your app, with a code its users type.

## Pick the one that fits.
### Pick PairDrop when
- Two devices in the same room, right now.
- Nothing should be written anywhere, ever.
- A URL on both sides and no setup is the whole requirement.

### Pick s3nd when
- The other device is not here yet, or not switched on.
- A script or an app is one side of the transfer, not a person with a tab.
- You want the transfer to live, briefly, in a bucket you control.
