Your passwords. Untouchable. Mathematical privacy.
Not policy.
Touch ID unlocks your vault. Nothing else needed. Your stuff stays on your device. We never see it. Not even with a court order. Not even in 2032. Touch ID unlocks your vault. Local-only. We never see it. OPAQUE authentication. ML-KEM-1024 hybrid envelopes. WebAuthn PRF unlock. Sigstore + Rekor on every release. The cryptography your incumbents have not shipped. OPAQUE · ML-KEM-1024 · WebAuthn PRF · Sigstore Rekor. Cryptography incumbents skipped.
The threat model changed.
The architecture didn't.
Every mainstream password manager you know was designed in the 2017 threat model. None of them ship the cryptography that 2026 actually requires. The numbers are not subtle. The 2017 threat model. None ship the cryptography 2026 requires.
VuVault is the architecture they have not shipped. Built from primitives standardized in the last 18 months — OPAQUE, ML-KEM, WebAuthn PRF — with FROST and AKD on the Tier 2/3 roadmap.
Three things, no asterisks. Three sentences, all defensible.
ML-KEM-1024 + X25519 hybrid KEM with AES-256-GCM. Resistant to harvest-now-decrypt-later by
construction. Sub-millisecond cryptographic overhead — matches X25519
performance, no perceptible cost. ML-KEM-1024 + X25519 hybrid + AES-256-GCM.
Sub-ms overhead.HKDF(WebAuthn-PRF(passkey, salt) ‖ SecretKey).
The Secret Key is 256 bits of true random, generated client-side, never
transmitted. Even with a complete server compromise + Argon2id break,
attackers face 256 unbreakable bits. Vault key = HKDF(PRF ‖ SecretKey). 256 bits, never
transmitted.Your credentials,
masked by default. No screenshots. No DOM secrets.
ItemKind variants share the
same hybrid envelope. Field-level masking is enforced before
render — secret strings never appear in the DOM until you tap
reveal. Seven ItemKind variants · one envelope · masked-before-render.REVEAL_TTL_MS = 30_000 in VaultDetail.svelte; clipboard auto-clears via setTimeout(60_000) regardless of clipboard-read permission. Every reveal is
audit-logged locally. REVEAL_TTL_MS = 30_000 · unconditional 60s clipboard clear.password-health.ts scores entropy and reuse
in-memory; the server only ever observes opaque ciphertext under a random blob UUID — no device
id, no account-linked clock. Footer surfaces ZK state, suite,
and build hash — proof, not policy. In-memory entropy/reuse check · server sees only opaque ciphertext.The most polished vault
you've ever used. No screenshots. Live SVG.
100dvh root, no body scroll.
Every panel sized to fit; only the item list scrolls internally. 100dvh root · no body scroll · only the list
scrolls.Local-only. Audit-feed: vault size · ZK status · suite · build hash.Touch ID, then done. Native-grade UX, web-grade reach.
vault-codec.ts. Encrypted CRDT ops · hybrid envelope. Server holds opaque
blobs.Local-only.Beyond file shares.
Beyond cloud backups. Every byte ciphertext.
No exceptions.
vuvault-doc-aad-v1) bound to the
document UUID, device salt, and credential id. Encrypted bytes
persist to a separate Dexie table; sync uploads opaque ciphertext to vaults/<accountId>/documents/<blobId>.bin in
R2. Bucketed padding ships with Tier 2 CRDT sync. Per-doc AES-GCM · document-scoped AAD · opaque ciphertext server-side.src/routes/api/v2/blobs/[uuid]/+server.ts and refuses anything but base64-encoded sealed bytes.docs/ARCHITECTURE.md).Four steps. Nothing else needed. Ten layers. Each defensible.
We did the homework.
Here's the receipt.
| VuVault | 1Password | Bitwarden | Proton Pass | Apple Passwords | |
|---|---|---|---|---|---|
| Server cannot see master passwordOPAQUE / aPAKE · D1-backed · shipped M3 | |||||
| Post-quantum vault encryptionML-KEM-1024 hybrid (FIPS 203, KAT-locked) | |||||
| Master-password-free unlockWebAuthn PRF | |||||
| Verifiable transparency logCONIKS-style key log — Tier 2 | Tier 2 | ||||
| Private breach checkPIR — server learns zero — Tier 2 | Tier 2 | ||||
| Threshold-recovery without serverFROST t-of-n — Tier 3 | Tier 3 | ||||
| Reproducible builds + transparencySHA-384 manifest + Sigstore Rekor on every release | |||||
| Self-hosting / BYO storagePoint at your own R2 / S3 — Tier 2 | Tier 2 | ||||
| Open sourceApache 2.0, fully forkable | |||||
| Lifetime priceOne time, no subscription | $25.60/yr | $35.88 | $19.80 | $23.88 | free |
$25.60. A year.
Every device. Every feature.
No per-user pricing. No tier games. Cancel any time.
Don't take our word.
Take our hashes.
Three independent ways to verify what's running on your device matches what we say is running. No incumbent ships any of these.
5337b04a ea841a68 be674b44
a316a10d f9b3d13d 4af3fb34
a1a5b28c 87cdd637 d09d23c7
64509bd3 33290699 8a65729b
✓ matches release v0.1.21
signed by github-actions OIDC
✓ keyless · Sigstore Fulcio + Rekor
✓ sigstore + rekor on every release
✓ reproducible from git checkout v0.1.21
bundle: 5337b04a
Your data. Your device.
Your control. Untouchable by construction.
Verifiable by
anyone.
Get the password manager that 2030 actually needs. Today, for $25.60/year. The password manager 2030 needs. $25.60/year. Read the blueprint, audit the source, deploy the server. Or just use it — $25.60/year. Read it, audit it, deploy it. Or use it — $25.60/year.