Security & trust
What it never sees is the point.
The server holds control-plane data — auth, limits, metadata. It never holds plaintext audio, and never holds a long-lived provider key.
Two-step sign-in, invite-only teams
Email + password, plus TOTP authenticator MFA (any standard app) with one-time backup codes. Admins invite teammates by email; nobody but the invitee ever sets or sees their password.
Database-enforced tenant isolation
Every tenant-scoped query now runs under a restricted database role that can physically only see your tenant's rows — a second, independent wall underneath the application's own checks, not just a filter that could be misconfigured away.
Tamper-evident audit log
Logins, MFA events, admin actions and every security-relevant event are chained together — altering or deleting any past entry breaks the chain, and a one-click check confirms your team's history hasn't been touched.
Your history stays private
Session transcripts are encrypted in your browser before upload — the server only ever sees ciphertext. Search runs locally on your device, and deleting a session wipes its content for good.
Client-side, end-to-end encrypted recordings
Recording is one click, optional. Audio is encrypted in the browser (AES-256-GCM) before upload — the server only ever stores ciphertext, a SHA-256 integrity manifest and a wrapped content key. Playback re-verifies the hash, decrypts locally, and plays back with a duck-respecting mix, a scrubber, and one-click MP3 download.
3f9ae2·AES-256-GCM·b71cd0·SHA-256 ✓
Short-lived, single-purpose credentials
AI provider API keys never reach the browser. The server mints a scoped, short-lived client secret per session — and every budget or quota check is enforced atomically, server-side, before a paid session is ever minted.
Ephemeral Remote Speaker credentials
A remote presenter's login is temporary and single-use — never a real account, hashed rather than stored in the clear, rate-limited against guessing, and superseded the instant a new login or credential refresh happens.