Skip to content
Ownfold
Esc
navigateopen⌘Jpreview

Open-source encryption infrastructure

Encryption your
users can own.

Add user-controlled encrypted data to TypeScript apps without sending keys, plaintext, or telemetry to an Ownfold service.

Interactive product tour of Ownfold vaults, devices, recovery, and activity.
local-first vault / workspace-alpha Protected
VAULT LIFECYCLEENCRYPTED · XCHACHA20-POLY1305

A vault that belongs to the user.

Plaintext is available only inside the trusted runtime. Your backend coordinates ciphertext, devices, and rotation—never the root key.

Application serverCIPHERTEXT ONLYBrowser workerKEY MATERIAL

Zerohosted dependency

Zeroplaintext on your server

Onecomposable TypeScript stack

Openformats and source

01 / Define the boundary

Your server coordinates.
The client keeps the keys.

Ownfold separates vault coordination from cryptography, so your database can store useful application records without gaining access to their contents.

Explore the threat model

02 / Compose your stack

Bring the tools you already run.

Choose only the layers you need. Ownfold works as a backend SDK, a browser E2EE client, or a complete full-stack path with typed adapters.

Explore integrations

Build from primitives

Everything needed for an
ownership-first vault.

Own the trust boundary

Ship encrypted data
without renting trust.

Start with a focused package, then add adapters as your application grows.

Read the installation guide