No account, no server, no internet required β this only works between two devices sharing one local network, by construction: the connection below never learns a public address, so it physically cannot reach beyond this room. One of you starts a letter, the other answers; each side shows the other a QR code once.
You'll show a QR code, then scan or paste back the one your friend shows you.
Scan or paste the QR your friend showed you, then show yours back.
Or read it aloud / copy it β whatever's faster in the room:
every letter is sealed β only your friend's device can break it. the post closes (and undelivered letters burn) when the channel closes; π keep an opened one to save it.
every soul you've ever traded a letter with, kept on this device only.
envelope.js (X25519, a fresh keypair each session) β the box, the network, and anyone watching the wire see only ciphertext. What is NOT hidden: metadata (who's talking, how often, message sizes/timing) rides in the clear over the datachannel, same honest limit as real email headers. If your Wi-Fi keeps devices apart (some venue/guest networks do this on purpose), the connect step will time out β a phone hotspot almost always fixes it. There is no fallback to the internet: if it doesn't connect, it simply doesn't connect. The courier role and dead drops (multi-peer) are PG4, not this slice.