Security & Privacy

Your data stays
yours.

We're local-first by design. Here's exactly what happens to your financial data — and what doesn't happen.

🔒
No server sees your data
Card balances, APRs, payment history — none of it ever reaches our servers. Ever.
🛡️
Encrypted at rest
All local data encrypted with AES-GCM via the Web Crypto API. Your key, your data.
🚫
No ads, no tracking
No analytics SDKs, no ad networks, no third-party scripts in the core product.
📋
No Plaid required
No bank login, no open banking credentials shared. You enter numbers manually or import your own CSV.
Technical Details

How it works, technically

💾
Local IndexedDB storage
Your cards, balances, and payment history are stored in your browser's IndexedDB — a persistent local database that doesn't leave your device.
IndexedDB API
🔑
AES-GCM encryption
Before data is written to IndexedDB, it's encrypted using the Web Crypto API's AES-256-GCM — the same algorithm used by banks and government systems.
Web Crypto API
🌐
Content Security Policy
Strict CSP headers prevent cross-site scripting attacks and block any unauthorized third-party script from loading — even if our CDN were compromised.
CSP Level 3
📦
Dependency audits
Every dependency is audited on every CI build. We run automated security scans and review all third-party packages before including them.
npm audit · Snyk
☁️
Pro sync: encrypted blobs only
If you use Pro cross-device sync, your data is encrypted client-side before leaving your device. Our servers store encrypted blobs they cannot read.
Zero-knowledge sync
📄
Export warnings
Before any export containing financial data, we display a clear warning and require explicit confirmation. Exported files are labeled with a data sensitivity notice.
PII awareness

What we do collect

In the interest of full transparency — here's the only data that touches our servers at all:

WhatWhyStored where
Email address (Pro only)Billing, account recoveryStripe + our database, encrypted
Subscription statusFeature gatingStripe webhook, our database
Encrypted sync blobs (Pro only)Cross-device syncOur servers — unreadable without your key
Error logs (anonymized)Bug fixingEphemeral, no PII, auto-deleted after 30 days
✓ We never see your card balances, APRs, payment amounts, or any financial data. This is not a policy choice — it's an architectural one.