
router
TanStack Router is a type-safe, data-driven React router with built-in caching, prefetching, and nested layouts, while TanStack Start extends it into a full-stack SSR framework.
It demonstrates a practical air-gapped file transfer using fountain codes (Luby transform) that requires no network, app, or pairing, and includes hard-won details for browser compatibility and robust decoding.
Send a file between two devices using nothing but a screen and a camera. One page displays the file as an endless stream of animated QR codes; another device points its camera at it and reconstructs the file. No network path between the devices, no app, no pairing, no permissions beyond the camera. The payload travels as light.
This is a minimal proof of concept extracted from a larger experiment that reached 128 KB/s phone-to-phone with denser frames, multi-code grids, and an error-corrected color channel. This PoC keeps only the essential trick and transmits a 512 KB image (or a 2 MB one, selectable in the sender's settings) at a comfortable rate.
Mid-transfer: a phone pulling a 2 MB image out of the air at 129 KB/s.
npm install
npm run dev
https://localhost:5173/send/ and it starts streaming immediately. Max
screen brightness helps.Network URL Vite prints
(https://:5173/receive/), accept the certificate warning once,
tap Start camera, and point it at the code.Why the dev server is https-only: the receiver uses getUserMedia, and
browsers remove that API entirely on insecure origins: a phone reaching
your dev server over plain http has no camera, full stop (localhost is
exempt, but your phone isn't localhost). That's a web platform rule, not a
choice. The dev server therefore ships with a self-signed certificate
(@vitejs/plugin-basic-ssl); the browser will warn on first visit. Tap
"Show Details" then "visit this website" (iOS) or "Advanced" then "Proceed"
(Android/desktop), and the page is still a secure context, so the camera
works. The odd-looking lvh.me hosts Vite prints are a public convenience
domain that resolves to 127.0.0.1 (same machine, nothing extra running).
Hold the phone steady, or better, prop it against something. Camera autofocus hunting from hand tremor is the #1 throughput killer.
The one-way channel problem. A screen-to-camera link has no back-channel: the receiver can't ask for retransmission, and it will inevitably miss frames (blur, refresh straddling, autofocus). Looping the frames and h
Similar projects matched by category, topics, and programming language.

TanStack Router is a type-safe, data-driven React router with built-in caching, prefetching, and nested layouts, while TanStack Start extends it into a full-stack SSR framework.
scriptc compiles ordinary TypeScript into small, fast native executables without needing Node.js, V8, or any JavaScript runtime in the binary.
A React component library that renders six hand-tuned animated thought orb loading indicators on a plain 2D canvas, with two purpose-tuned sizes and automatic theme detection for AI and agent UIs.