Passio
A password manager whose operator cannot read your vault — by construction, not by promise.
- Next.js
- tRPC
- WebCrypto
- Vercel

Passio is a zero-knowledge password manager. The distinction it draws is between a provider that promises not to look and one that structurally cannot.
The encryption model
The master password never leaves the device. It is stretched into an encryption key locally with Argon2id, configured to consume 64 MiB of memory per unlock attempt so that guessing at scale is expensive rather than merely discouraged.
Each vault item is sealed with AES-GCM and bound to its own identity, so a stored item cannot be swapped for another or quietly rolled back to an earlier version.
What reaches the server is ciphertext. Passio cannot decrypt a vault, cannot reset one, and cannot recover one — which also means there is nothing useful to hand over if someone demands it.
What it holds
Logins, payment cards, passports, SSH keys and recovery phrases, each with its own field shape rather than everything crammed into a notes box.
Around the edges
- A password generator that runs in the browser and transmits nothing.
- Import from Bitwarden, LastPass, 1Password, KeePass, Chrome and Firefox.
- An optional breach check that sends only a partial hash, so the lookup service never learns which password was checked.
Built with
Next.js and tRPC on Vercel, with the cryptography running through the browser's native WebCrypto API.