OpenE2EE

Guides

Complete end-to-end builds, each one a working application rather than a fragment — with every key custody decision stated where it is made.

The rest of the documentation groups content by concept. Each page isolates one decision. These guides instead build one application from nothing to a working state. They present decisions in the order that a real project encounters them.

Use a guide to see the complete design before you learn each concept. You can also use one after you read the concept pages. Guides overlap with Build by design. A guide applies a decision. The Build page explains the alternatives.

Where to start

Build an encrypted Expo conversation from scratch is the first guide for Expo developers. It starts with an empty development build and establishes a session. It then encrypts, sends, and locally decrypts a message. The guide states each custody decision when it applies.

Build a browser E2EE demo with two local identities is the fastest path to seeing the protocol work with nothing installed. It includes the step worth doing once in your life: putting the ciphertext and the plaintext side by side.

Then, choose what to add

Migrate from another library

Migrate from libsignal-protocol-javascript or @privacyresearch/libsignal-protocol-typescript: read this before planning the work, not during it. There is no wire compatibility. It is a re-architecture, and the guide says so in its first section rather than burying it. It sets out a staged cutover that does not require a flag day.

Then

Whatever a guide decided on your behalf, the corresponding page in Build sets out the alternatives it passed over. Operate is the list to work through before any of this carries real user data.

On this page