Row-Level Security on every table
Your data is isolated at the database layer. Postgres RLS policies ensure you can only ever read your own profile, purchases, and progress — even if a request bypasses our app code.
We take the boring parts of building a secure product seriously so you don't have to think about them. Here's a plain-English summary of the protections that run on every page, every checkout, and every API call.
Your data is isolated at the database layer. Postgres RLS policies ensure you can only ever read your own profile, purchases, and progress — even if a request bypasses our app code.
Premium access (Diamond, Black Pearl, individual courses) can only be granted by our verified Stripe webhook. No client, browser, or logged-in user can write to the purchases table — only the trusted backend can.
We never see, store, or transmit your card details. Stripe's embedded checkout collects payment data directly inside their PCI-compliant iframe. Each session is signed and verified server-side before access is granted.
Every checkout request is verified against your Supabase JWT on the server. The user ID is derived from the verified token — never trusted from the request body — which prevents anyone from creating a session on someone else's behalf.
Every page is served with a strict Content-Security-Policy, HSTS, X-Frame-Options, Referrer-Policy, and Permissions-Policy. Scripts can only load from our origin and Stripe — nothing else.
Our backend functions only respond to requests from approved origins (our published domain and local development). Arbitrary third-party sites cannot call our APIs from a browser.
Internal maintenance endpoints (e.g. tax code setup) require a server-side admin secret using constant-time comparison. They are unreachable from the public app.
After signing in, we only ever redirect to paths inside WealthOS. Open-redirect attempts to external domains are sanitized and ignored.
If you believe you've discovered a security issue, we want to hear about it. Reach out and we'll respond quickly.
Report a security concern