Comms

The stream.

A handful of bytes, carried through the light between two phones. One screen plays them as a river of gentle codes; the other phone reads them back, one at a time, and rebuilds your message in its pocket.

No server. No internet. No signal. Just the two of you, and what passes between you.

Send

What you're seeing

One message becomes a header frame and a line of slices, each the width of a small code. The screen plays them one after another, looping until you quiet it. The reader phone holds the sheet in its camera and rebuilds the message.

Each frame is an ordinary error-checked code — the words inside get read even on a wobbly hand. What's new is that the frames keep coming: a river instead of a single stone.

Receive

The honest fine print

It is a river, not a radio. It neither knows nor needs the network — the bytes travel only as light, from one screen into one camera, and the message is reassembled from the many frames. Nothing about it went through anyone's server.

How fast, honestly. About a hundred bytes per frame and roughly three frames a second — so a few sentences ride easy, a photograph does not. In real light, slower is friendlier: hold the sheet still, flat, a hand's width from the camera.

Which browsers can read it. The camera path needs a Chromium-style reader (Google Chrome, Brave, Edge, Samsung Internet). Everyone can send. If your phone can't read codes, the words still travel the old ways — a still code, or a paste through your hands.

It says so when it fails. If the checksum the header promised does not come back the same, the page says mismatch plainly and starts asking for a steadier read. A river you can't trust is just noise.

The sound and the net. This page carries words by light. The sound handshake and the direct internet hello are their own doors — see the comms landing.