Skip to content
s3nd
Menu

File sharing for people

A Firefox Send alternative that needs nothing deployed

Short-lived transfers that expire on their own, no account, open source, and a design that assumes the server should not be trusted with the contents.

What Firefox Send is

In its own terms.

Mozilla’s end-to-end encrypted file-sharing service: upload, get a link, and the file expired after a number of downloads or a period of time. Mozilla shut the service down in 2020. The code was open source, and community forks, notably timvisee’s Send, keep it alive as something you host yourself.

Side by side

Where they part ways.

 s3ndFirefox Send
What it isA CLI, a library and React hooks over your own S3 bucketEnd-to-end encrypted file sharing by link; discontinued, forks are self-hostable
Where the data livesYour bucket: S3, R2, MinIO, Scaleway, WasabiThe Send server’s storage; forks can use S3
Both ends online at onceNo. The code is redeemed later, until it expiresNo
From inside your web appYes, through one route on your serverIts own web app
AccountsNone. The code is the whole handshakeNone
HostingYour bucket, plus your server when a browser takes partSelf-hosted forks only
PriceFree. You pay your storage provider for a few objects that expireFree
LicenseMITMPL-2.0

The differences

What actually changes.

A web app to deploy versus a route to mount

A Send fork is a whole application: a Node server, a Redis, a storage backend, a front end. s3nd is a library you call from your own API, or a CLI that talks to the bucket with nothing running at all.

Encryption built in versus encryption you add

Send encrypts in the browser and puts the key in the URL fragment. s3nd stores whatever bytes you hand it, so the same design is a few lines of WebCrypto on your side, documented in the encrypted sync guide.

Files for people versus state for apps

Send moves a file to a person with a link. s3nd also moves a database to another device with a code, with schema versions and expiry enforced on read.

The decision

Pick the one that fits.

Pick Firefox Send when

  • You want a shareable-link web page for people, self-hosted.
  • End-to-end encryption in the browser, out of the box.

Pick s3nd when

  • No application to run: a bucket and, at most, one route in the app you already have.
  • Moving app state, not only files.
  • The CLI to a bucket, with nothing deployed anywhere.

Put a file. Hand over the code.

Point it at the bucket you already pay for. Nothing to deploy, nothing to sign up for, nothing in the middle.

npm install -g @s3nd/clis3nd init --provider r2 --bucket drops3nd put ./anything.zip