How often do you email a screenshot to yourself just to get it from your phone to your desktop? Or upload a video to Drive, wait for it to sync, then download it on the other device five feet away?
We all do it. And it's absurd when you think about it — but the alternatives each have their own tax.
The friction of cross-device sharing
Apple's AirDrop is genuinely great, and completely locked to Apple's ecosystem. The moment one device is a Windows PC or an Android phone, you're back to square one.
Messaging apps work everywhere but compress media aggressively. Fine for a meme, terrible for anything you actually care about.
Cloud drives don't compress, but they make you pay in ceremony: upload, wait, manage sharing permissions, copy the link — and then the link lives forever unless you remember to kill it. For a file you needed for thirty seconds, that's a lot of overhead.
A smaller idea: the one-time handoff
Most cross-device transfers aren't storage problems. They're handoff problems. The file needs to get from device A to device B once, and then nobody needs the link again.
That's the idea behind nowiretransfer. You add a file (or paste some text) on one device and get a 6-character code. Type the code — or scan the QR — on the other device, and the file opens. No account, no app install, works in any modern browser.
What makes it different from just another cloud link:
- Files go up and come down as-is. No compression, no quality loss.
- Shares expire. You pick 1 hour, 24 hours, 3 days, or 7 days, and the files delete themselves when time's up. No "oops, that link from March is still live."
- Private by default. Shares are unlisted — only the code opens them — and transfers are encrypted.
- 250 MB per file, multiple files per share.
Try it out
Next time you're about to email yourself a file, try this instead: open nowiretransfer on your phone, add the file, and open the code on your laptop. It takes about ten seconds, and there's nothing to clean up afterward.
What's actually hard about this
The interesting engineering isn't the transfer — it's the lifecycle. Expiry has to be real (bytes deleted, not just links hidden), codes have to be unguessable but typable, and the whole thing has to work on mobile browsers that love to kill background tabs mid-upload. Worth thinking about if you're building anything with shared state that shouldn't outlive its purpose.
Sometimes the best feature is the one that deletes itself.
Top comments (0)