0x03 / 0x0eHow do I talk privately, one to one and in groups?
Secure Messaging
End-to-end encryption is now table stakes. The real differences are identifiers, metadata, servers and who can be compelled to hand over what. Protocols, apps and how to choose between them.
Start here
Guides
Building a Local Mesh NetworkA few cheap radios and a phone app give you a text network that needs no towers, no SIM cards and no internet.
beginner
2 hours
Choosing a Secure MessengerEvery serious messenger encrypts content. They differ in what they require from you, what their servers learn, and whether they work when the internet does not.
beginner
15 minutes
Getting Started on Nostr SafelyOn Nostr your identity is a key pair, not an account. Nobody can ban you from the protocol, and nobody can recover your key if you lose it.
beginner
30 minutes
Internet Shutdown PreparednessWhen the network is switched off, the only tools that work are the ones you installed, tested and shared before it happened.
beginner
1-2 hours to prepare
Threat Modeling for Sovereign IndividualsBefore choosing a single tool, write down what you are protecting, who you are protecting it from, and what failure would cost you.
beginner
45 minutes
Technologies
Briaralso in off-grid
Deep dive
✓ Battle-tested
Matrix and End-to-End Encryption
Deep dive
✓ Battle-tested
The Signal Protocol
Deep dive
✓ Battle-tested
ActivityPubalso in identity
Deep dive
Usable
CryptPadalso in storage
Deep dive
Usable
Cwtch
Deep dive
Usable
Delta Chat
Deep dive
Usable
Jami
Deep dive
Usable
MLS (RFC 9420) and Wire
Deep dive
Usable
Session
Deep dive
Usable
SimpleX Chat
Deep dive
Usable
XMPP with OMEMO
Deep dive
Usable
Bitchatalso in off-grid
Deep dive
Experimental
Concord Protocol
Deep dive
Experimental
Cordn
Deep dive
Experimental
Marmot: MLS over Nostr
Deep dive
Experimental
Quiet
Deep dive
Experimental
Tox
Deep dive
Experimental
Veilidalso in anonymity
Deep dive
Experimental
White Noise
Deep dive
Experimental
Reference and research
Directory49 curated links
Signal Protocol
- Signal Protocol — Open protocol providing end-to-end encryption with forward secrecy and post-compromise security
- libsignal — Official Signal Protocol library (Java, C, Rust)
- Double Ratchet Specification — Signal's core key derivation and message encryption algorithm
- X3DH Key Agreement — Extended Triple Diffie-Hellman for establishing shared secrets
- x3dh-ratchet — Crypto primitives based on the Signal Protocol for secure async messaging
- 2key-ratchet — Double Ratchet and X3DH implementation in JavaScript
- Signal SPQR Post-Quantum Ratchet — Sparse Post-Quantum Ratchet (SPQR) integrating ML-KEM (2025)
Matrix Protocol
- vodozemac — Pure Rust implementation of Matrix Olm and Megolm cryptographic ratchets
- Matrix.org — Open protocol for decentralized, federated real-time communication
- Olm — Double Ratchet implementation for 1:1 Matrix encryption
- Megolm — Sender-key ratchet for efficient group encryption in Matrix
- Matrix E2EE Implementation Guide — Official guide to Matrix's end-to-end encryption architecture
- Element — Flagship Matrix client for web, desktop, and mobile
Messaging Layer Security (MLS)
- OpenMLS — Rust implementation of the RFC 9420 Messaging Layer Security protocol
- Wire Core Crypto — MLS-based end-to-end encryption library used by Wire clients
- RFC 9420: MLS Protocol — IETF standard for efficient group end-to-end encryption
- MLS Architecture — Architecture document for MLS deployment
- TreeKEM — External-Operations TreeKEM and the security of MLS in RFC 9420
- MLS RFC Overview — Detailed walkthrough of RFC 9420 design and security properties
- White Noise — Open-source messenger using MLS over Nostr relays (Marmot); no phone number or email, beta
- Marmot Protocol — Specification for MLS group messaging with Nostr identities and relays
- MDK (Marmot Development Kit) — Rust implementation of Marmot used by White Noise, with bindings
- Cordn — MLS group messaging via a self-hostable coordinator reached over Nostr relays (ContextVM); beta
- ContextVM — Transport for exposing services over Nostr relays without domains or open ports; used by Cordn
Metadata-Resistant Messaging
- SimpleX Chat — First messaging network operating without user identifiers of any kind
- SimpleX Messaging Protocol — Transport-agnostic protocol for distributed secure unidirectional messaging
- SimpleX v6.4.1 — July 2025 release with contact management and group protection features
- SimpleX Security Audit — Trail of Bits cryptographic design review for v6.1
- Cwtch — Decentralized, metadata-resistant messaging over Tor v3 onion services
- Cwtch Implementation — Official peer implementation for asynchronous, metadata-resistant Cwtch applications
- Briar — Peer-to-peer encrypted messaging via Tor, Bluetooth, and WiFi
- Briar Desktop 0.6.0-beta — Beta desktop client adding blogs support to secure P2P messaging
- Briar 1.5.17 — March 2026 Android release with improved connectivity
- Quiet — Experimental team chat synchronised over Tor; unaudited and explicitly unsuitable for critical privacy or security needs
- Session — Decentralized private messenger using onion-routed service nodes and account IDs instead of phone numbers
- Session Desktop — Decentralized onion-routed messenger using service nodes for offline storage and IP protection
Modern Encryption Tools
- age — Simple, modern file encryption tool (Go) — a GPG replacement
- minisign — Minimalistic tool for signing files and verifying signatures
- OpenPGP.js — OpenPGP implementation in JavaScript (maintained by Proton Mail)
- Sequoia PGP — Modern OpenPGP implementation in Rust
- Gopenpgp — Go wrapper around GPG for high-performance OpenPGP operations
Privacy Infrastructure
- Oblivious HTTP (OHTTP) — IETF protocol for anonymous HTTP transactions via relay
- Oblivious DoH (ODoH) — DNS resolution via oblivious relay to hide client identity from resolver
- RFC 9458: OHTTP — IETF standard for Oblivious HTTP
Federated and Distributed Messengers
- Delta Chat — Chat over email transport; default chatmail relays enforce end-to-end encryption, with documented metadata and forward-secrecy limits
- XMPP with OMEMO — Double Ratchet encryption for XMPP devices; the specification remains Experimental and excludes metadata protection
- Jami — Distributed messaging and calls with device-held identities, OpenDHT discovery and swarm conversations