App
onetimefiles
Send sensitive files that can only be opened once. Encrypted in the browser, downloaded once with a link and a code, then deleted.
onetimefiles is for sending things like passport and driver's licence photos without emailing them. A creator sets up a package of named areas ("Ben's passport"), each contributor fills their own area from a link, and one recipient opens everything once with a link plus an access code. Then the package burns.
Files are encrypted in the browser before they go anywhere. The creator's browser generates a recipient keypair, the private key lives only in the URL fragments, and every upload is sealed to the public key with its own encrypted header, so contributors cannot read each other's files and the server never sees plaintext, filenames or keys. The access code is a separate gate, hashed server side and locked after five wrong attempts. The link goes by one channel and the code by another.
The recipient needs no account, plugin or second visit: one page, per-area downloads or everything as a zip built in the browser. Opening the package starts a 30 minute window, after which it is gone, the ciphertext is deleted from S3 and the creator gets an email saying what was downloaded. There is no cron or background worker; the package state is computed from timestamps on every request, and download URLs are minted so that none outlives the window.
It runs on Ben's own accounts and signing in to create a package is allowlisted, so it is a service for a small circle rather than a public one. Uploads and downloads go straight between the browser and S3, with files capped at 50 MB each and 500 MB per package. As with any browser-based end-to-end encryption, the served JavaScript is trusted.
- Built by
- Ben
- Built with
- React Router
- Postgres
- Shipped
- September 22, 2026
- Status
- live
- Tags
- encryptione2eefile-sharingburn-on-reads3
Built by Ben