- Diagram privacy
- The reviewer runs entirely in your browser. Uploaded diagrams are read with the File API and never sent to a server — verifiable in your own DevTools Network tab. Only the report JSON you explicitly save is transmitted.
- Citations
- Every report recommendation quotes provider documentation verbatim from a human-verified knowledge base. The software cannot generate a citation; an automated job re-fetches every quote against the live page and disables any that drift.
- Passwords
- Hashed with scrypt (never stored or logged in plain text), checked against the Have I Been Pwned breach corpus at signup and reset via k-anonymity — only 5 characters of a hash ever leave the server.
- Sessions
- Signed, short-lived (60-minute) tokens in httpOnly, SameSite cookies. A password reset revokes every outstanding session. Reset links are single-use and expire in an hour.
- Abuse controls
- Per-IP and per-account rate limits held in a shared Redis store, same-origin checks on every state-changing request, request body size caps, and uniform responses that don't reveal whether an email has an account.
- Audit trail
- Security-relevant events (sign-ins, resets, limit trips, billing changes) are recorded durably. Emails and IP addresses in that trail are stored only as salted hashes — correlatable during an incident, useless as a directory.
- Transport & headers
- HTTPS everywhere with HSTS (preloaded), a restrictive Content-Security-Policy, frame-ancestors 'none', nosniff, and a minimal referrer policy. Cross-origin requests to the APIs are rejected.
- Payments
- Card details never touch this site. Checkout and billing management happen on Stripe's hosted pages; we store only the subscription state Stripe reports to us over signed, replay-protected webhooks.
- Backups
- The database is dumped nightly, encrypted, and retained for 90 days — and every nightly backup is restore-TESTED automatically into a scratch database with row counts verified. Recovery procedures are written down and rehearsed by machine, not aspiration.
- Dependencies & code
- CI blocks known-vulnerable dependencies (high severity and up), scans the full git history for leaked secrets on every push, and runs the browser-level test suite before anything deploys. Accepted findings are documented with reasons, not hidden.