Building Zippit: The File Transfer Tool I Actually Wanted to Use
I had this idea floating around for years without actually having it written out on paper. Countless times I've caught myself emailing myself a file from my desktop to my phone or vice versa. A simple file, a picture, video, pdf, anything really.
The problem wasn't just the inconvenience—it was the friction. Open email, attach file, send to myself, wait for sync, download on the other device. For something that should take seconds, I was burning minutes. And don't get me started on file size limits or the digital paper trail of "IMG_3847.jpg" cluttering my sent folder.
The "AirDrop for Everything" Vision
What I really wanted was AirDrop's simplicity, but without Apple's ecosystem lock-in. Something that worked between any device—Android to Windows, iPhone to Linux, whatever combination life threw at me. The core insight was simple: two devices, one temporary bridge, zero permanent storage.
The Technical Reality Check
Building this meant solving several non-trivial problems:
- Device Discovery — How do two random devices find each other securely?
- Ephemeral Storage — Files need to exist just long enough to transfer, then vanish
- Real-time Connection — Users need to know when devices are paired and ready
- Cross-Platform UX — Desktop and mobile experiences needed to feel native to each platform
The QR Code Breakthrough
The solution crystallized around QR codes as the pairing mechanism. Scan once, establish a bidirectional WebSocket connection, and you're done. No apps to install, no account setup friction—just point, scan, and transfer.
Here's what happens under the hood:
- Desktop generates a QR code containing a session token and verification secret
- Mobile scans and consumes the token, establishing a WebSocket connection
- Both devices are now in a shared session with real-time status updates
- Files can flow in either direction until the session expires (24 hours max)
Why WebSockets Matter
The real magic happens with WebSockets. When your phone connects, your desktop immediately shows "Device Connected" with the device name. Upload a file from desktop, and your phone gets a push notification that it's ready. This isn't polling or refresh-to-check—it's genuinely real-time.
The 24-Hour Rule
Privacy was non-negotiable. Every file gets a hard 24-hour expiration, implemented at the Cloudflare R2 storage level. No exceptions, no "premium" plans with longer retention. Your files exist only as long as they need to, then they're gone forever.
Try It Yourself
Zippit.io is live and free to use.