Content Security Policy tightened
Removed the last inline script exception on public pages by moving theme initialisation to a nonce-bound loader.
Trust Center
We publish our posture including the gaps. If a certification isn't held, this page says so rather than implying otherwise.
Architecture
Vault content is encrypted before it leaves your device, so the server holds ciphertext it cannot read.
Vault items, notes, and files are encrypted here with AES-256-GCM. The key is derived from your master password using PBKDF2 with a high iteration count and a per-account salt. The master password and the derived key never leave the device.
All traffic uses TLS 1.2 or higher with modern cipher suites, HSTS with preload, and certificate transparency monitoring. Only ciphertext and operational metadata cross this boundary.
Server functions validate every input against a schema, enforce authentication, and apply rate limits. A strict Content Security Policy and CSRF tokens protect state-changing requests.
Row-level security policies scope every query to the authenticated user at the database level, so an application-layer mistake cannot expose another account's rows. Storage is encrypted at rest with AES-256.
Administrative access requires two-factor authentication and is least-privilege. Every administrative action is written to an append-only audit log. Backups run daily with point-in-time recovery and tested restores.
Encryption
| Data | Method | Held by |
|---|---|---|
| Vault items, notes, files | AES-256-GCM, key derived client-side | Your device |
| Database at rest | AES-256 | Managed cloud platform |
| Object storage at rest | AES-256 | Managed cloud platform |
| Data in transit | TLS 1.2+ with HSTS | Edge network |
| Password storage | Argon2id hashing, never reversible | Authentication service |
| Backups | Encrypted, 35-day rolling retention | Managed cloud platform |
Compliance
Status labels are literal. 'Not yet started' means exactly that.
Lawful basis documented per processing activity, self-service export and deletion, DPA available for business customers, and Standard Contractual Clauses for transfers out of the EEA.
Access and deletion requests supported through the same self-service flows. We do not sell or share personal information as those terms are defined, so no opt-out mechanism is required — but the preference is available anyway.
We have not begun a SOC 2 audit and do not hold a report. We will publish the timeline here when we start, and we will not imply readiness before then.
No certification held. Our internal controls are modelled on the standard's guidance, which is not the same as being certified against it.
We never receive or store full card numbers. Payment data is handled entirely by Stripe and Razorpay, who maintain their own PCI DSS compliance.
Testing
An external penetration test has not yet been commissioned. We are scheduling the first engagement to follow the release of the vault and billing modules, so that the assessment covers the code paths that matter most.
Incidents
No security incidents affecting customer data have occurred to date. If one does, it will be published here with impact and resolution, alongside direct notification to affected accounts.
Updates
Removed the last inline script exception on public pages by moving theme initialisation to a nonce-bound loader.
Full audit of production dependencies with three transitive packages upgraded. No exploitable issues were identified in our usage.
The production domain was submitted to the HSTS preload list after a 90-day observation period.