vs. Other messengers.
Honest comparison. Every "Yes" links to evidence. Every "No" is acknowledged as a real trade-off. Lattice is not the best at everything — it is built for one specific situation.
| Lattice | Signal | Bitchat | Briar | ||
|---|---|---|---|---|---|
| Works without the internet | Yes | No | No | Yes | Yes |
| Works without a phone number | Yes | No | Optional | Yes | Yes |
| Works without an account | Yes | No | No | Yes | Yes |
| End-to-end encrypted | Yes | Yes | Yes | Yes | Yes |
| Post-quantum cryptography | Yes (hybrid) | No | Yes (PQXDH) | No | No |
| Open source | Yes (MPL-2.0) | No | Yes | Yes | Yes |
| Reproducible builds | Android: yes / iOS: source-attested | No | Partial | No | Yes |
| Background battery (typical) | 4–8%/day | ~5%/day | ~3%/day | unknown | ~20%+/day |
| Suitable as a daily driver | No (intentionally) | Yes | Yes | No | Possible |
| Designed for crowd density | Yes | N/A | N/A | Limited | Limited |
| No telemetry | Yes (no analytics, ever) | No | Yes | Yes | Yes |
| No central server holding messages | Yes | No (encrypted, but stored) | Brief queue only | Yes | Yes |
| Group messaging | Yes (MLS) | Yes | Yes | Yes | Yes |
| Voice / video calls | No | Yes | Yes | No | No |
| Number of users you can talk to | small (early) | ~3 billion | ~70 million | small | small |
So what is Lattice for, then?
Lattice is not a Signal replacement. It is a Signal companion.
Most of the time, Signal is better — it's faster, has voice calls, has billions of users, doesn't need to scan for nearby phones. We tell people to use Signal. We use Signal ourselves.
Lattice is for the moments when those things stop working. The internet's out. The towers are at capacity. You're at a festival, a stadium, a regional shutdown, a disaster. That's when Lattice earns its keep.
Two messengers in your dock — one for normal life, one for the moments when normal stops. That's how we expect a Lattice user to live.
Why not Bitchat?
Bitchat is a fine project. It demonstrated that mesh messaging on phones works. The places Lattice differs:
- Identity model. Bitchat is anonymous-by-default; Lattice is identity-by-default with strong key-on-device storage. The use cases overlap but Bitchat optimises for ephemerality and pseudonymity, Lattice optimises for "you and your real family / friends, when you need each other".
- Density. Lattice has explicit cluster-bounded routing for the festival case (WP-04). Bitchat saturates at high density.
- Long dormancy. Lattice is designed to be installed for 18 months without use and still wake correctly when needed. We test this with 90-day clock-manipulation suites. Bitchat hasn't published a similar story.
- Cryptography. Lattice uses hybrid post-quantum from day one.
Why not Briar?
Briar is one of the closest analogues to Lattice. Both are offline-first, both are P2P, both run over Bluetooth + Wi-Fi + Tor. Differences:
- Battery. Briar's background drain is real — 20%+/day is commonly reported. Lattice targets 4–8%/day on background, single-digit% in Standby, sub-1% in Dormant.
- iOS. Briar is Android-only. Lattice ships on both platforms from day one.
- Onboarding. Briar requires a face-to-face contact exchange. Lattice has Lattice Invites (WP-02) for adding people you can't physically meet.
- Density. Lattice is the only project we know of with explicit design for festival-scale crowds.
If you want to use Lattice and Briar both, fine. They cover overlapping but distinct ground.
Why not Meshtastic?
Meshtastic is great at the thing it's built for, and Lattice is great at a different thing. They're complementary more than competitive.
- Hardware vs. software. Meshtastic is the hardware — every node is a dedicated LoRa device (LILYGO, Heltec, RAK, etc.). Your phone is just a thin BLE remote control for the radio. Lattice runs on the phone you already carry; the radios it uses (Bluetooth, Wi-Fi Aware) are already in your pocket. Plug a LoRa dongle in and Lattice extends to Meshtastic-comparable distances, but it doesn't require one.
- Range. Meshtastic gets kilometres out of the box because LoRa is its only transport. Lattice gets metres-to-hundreds-of-metres out of the box (BLE / Wi-Fi Aware), kilometres with a USB-C dongle. Meshtastic is the right pick if you specifically need long-range and are happy carrying extra hardware. Lattice is the right pick if you want the messenger to just be on your phone.
- Encryption model. Meshtastic broadcasts on shared "channels" — anyone with the channel's pre-shared key can read everything on it. Direct messages exist but are layered on top of the broadcast model and don't have per-conversation forward secrecy. Lattice is end-to-end encrypted per-recipient (Noise XX + ML-KEM-768 hybrid post-quantum) with double-ratchet forward secrecy and MLS for groups. Two different threat models — Meshtastic optimises for community visibility, Lattice for individual messaging.
- Identity. Meshtastic identifies you by a 32-bit node ID and a chosen short name; trust is informal. Lattice identifies you by a 256-bit Bullet ID derived from your seed, with face-to-face fingerprint-word verification, signed introductions (WP-02), and revocation. Stronger guarantees, more setup ritual.
- Throughput. Meshtastic on LoRa: ~5 kbps at SF7, slower at SF12. Lattice on BLE / Wi-Fi Aware: hundreds of kbps to megabits, depending on transport. Even with a dongle, Lattice falls back to local radios for short-range chat where throughput matters and saves LoRa for the long hops.
If you're running a hiking group and want every member's status visible across kilometres of valley, Meshtastic is built for that. If you want a private messenger for your family that quietly waits in the background until the cell network goes down, Lattice is built for that. They can run on the same person's phone — with a Meshtastic dongle attached, Lattice can use that same LoRa hardware as one of its transports.