MeshLink
How MeshLink works
Messages can be forwarded through participating peers. Every hop is a real browser-to-browser WebRTC connection.
The path of a message
Phone A ↓ WebRTC Phone B (relay — cannot read it) ↓ WebRTC Phone C
1. Pairing with QR codes
WebRTC normally needs a server to introduce two devices. MeshLink puts that introduction (the SDP offer and answer, with each phone's local network address) into QR codes instead. That is why it works with the internet off.
2. Encryption before sending
The sender encrypts the text with a key derived from its private key and the recipient's public key. The packet carries only ciphertext plus routing fields: packet ID, source, destination, TTL and hop count.
3. Routing
A phone that is not the destination lowers the TTL by one and forwards the packet. If it knows which neighbour leads to the destination it sends it there; otherwise it sends to every neighbour. Duplicate packet IDs are dropped.
4. Delivery and receipts
The destination decrypts the message and sends back a delivery receipt along the mesh. Every phone that sees the receipt deletes its stored copy.
What MeshLink cannot do
- It cannot control Bluetooth, Wi-Fi Direct or any radio hardware — browsers do not expose that.
- It cannot link two phones 10 km apart with nothing in between. Each connection has the range of the Wi-Fi or hotspot both phones use.
- It cannot load for the first time with no internet. Open it once online so the app is saved on your phone.
- Mobile browsers pause pages in the background, so keep MeshLink open on screen while relaying.