all work

in progressversion 1 · pre-releaseBLE MESH · PRIVATE MESSAGING · MOBILE

Rivet

private messaging that keeps moving even when the internet doesn't.

no account. no phone number. no server. nearby phones carry the messages.

build log read the build story

try the idea

move the phones. pass the envelope.

a relay stores a sealed copy and cannot read it. only the recipient can open it. this is a conceptual visualization of that idea, not the app and not real Bluetooth.

conceptual visualizationloading the 3d view
too far apartsenderrelay arelay brecipienttoo far apartsenderrelay arelay brecipient

not real Bluetooth in the browser. the range ring is a drawing aid, not a measured distance.

released
not yet
status
in progressversion 1 · pre-release
what i did
protocol design + mobile systems + security engineering
links

what it is

Rivet is a private messenger designed to work without infrastructure. Phones exchange encrypted messages directly over Bluetooth Low Energy, then carry and forward messages for other people as they move through the mesh.

the problem

what was actually wrong.

most messaging systems stop being messaging systems the moment the network disappears. Rivet starts from the opposite assumption: the phones are the network.

under the hood

what i actually built.

every device behaves as both a Bluetooth peripheral and a Bluetooth central. messages are encrypted for their recipient, wrapped in deliberately sparse envelopes, stored temporarily and offered to peers until somebody who can decrypt them receives them.

how it works

there is no routing table. every unexpired envelope moves through the mesh, which spends bandwidth and battery to avoid keeping a convenient map of who talks to whom.

important detailsthe technical bits.

  1. direct encrypted messages
  2. QR or pasted-code contact exchange
  3. 60-digit in-person safety numbers
  4. store-and-forward delivery
  5. multi-hop relaying
  6. honest waiting / in mesh / delivered states
  7. private circles
  8. shared-passphrase channels
  9. nearby public broadcast
  10. Android relay mode
  11. emergency reset
  12. six languages
  13. light, dark and system themes

countedactual numbers.

digit safety numbers
60
languages
6

what is still not donedeliberately not pretending.

statusversion 1 is not released. the automated suite is green and the protocol is frozen for this version, but physical-phone field testing has not been completed and Rivet has not had an independent security review.

Rivet v1 does not have internet messaging, cloud sync, attachments, voice, video or synchronized group chat.

Bluetooth also does not make somebody invisible. a radio still announces that a device is physically present.

encryption protects message content. it does not solve radio direction finding, sybil identities, an unlocked seized phone or forensic erasure.

stackbuilt with.

  • TypeScript
  • React Native / Expo
  • Bluetooth Low Energy
  • SQLite
  • Ed25519
  • X25519
  • HKDF-SHA256
  • XChaCha20-Poly1305
  • Swift
  • Kotlin