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
-
Connect an Expo app to a Convex encrypted-envelope relay: replacing the in-memory relay with a deployment you own. Covers getting one-time-prekey consumption right under concurrency, which is the part that is quietly wrong in most first attempts.
-
Add encrypted attachments with an opaque object store: transfer encrypted files through a brokered object store. Use the Convex R2 adapter or the S3 adapter. The guide defines memory and failure behavior.
-
Design offline, device recovery, and identity-change behaviour safely: make three product decisions that end-to-end encryption requires. The guide connects each decision to SDK bounds, errors, and operations. It produces defensible design decisions, not a running app.
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.
Security review checklist
What a platform or security team can verify about this SDK, what it cannot, and which questions belong to the application team instead.
Build an encrypted Expo conversation from scratch
A complete Expo development build that establishes a Signal Protocol session, sends an encrypted message, and decrypts it locally, with every key custody decision stated.