Your data is isolated. Not just promised.
Most SaaS says "your data is safe with us" and shows you a compliance badge. Here's what we actually do — the mechanics, in plain English, so you can judge whether it's enough for your operation.
Row-level security on every table
Every read and every write to the database is checked against a per-row rule that says who is allowed to see it. If a request doesn't match the rule, the row doesn't exist as far as the request is concerned. This isn't application code — it's enforced at the database layer, so a bug in the app can't accidentally leak your data.
Org-scoped isolation
Your organization's data is tagged with your org ID at the row level. Cross-tenant reads and writes are rejected at the database, not at the API. Even a query with the wrong scope returns nothing.
Personal is invisible — even to the org owner
Personal workspace data lives in a separate schema with a different set of security rules. The org owner can see that a teammate has a Personal workspace (for billing), never what's inside it. Not in the UI, not in exports, not in the database if they had access to it — which they don't.
Adversarially tested
We routinely run cross-tenant attack tests: try to read another org's deals with a real token, try to write to their tables, try to enumerate. All must fail. The tests run on every merge to main.
Secrets stay server-side
API keys and integration tokens (MLS, Gmail, Google Calendar) are stored server-side, never sent to the browser. Client code sees only the data it's allowed to see — not the credentials used to fetch it.
Encrypted in transit and at rest
TLS everywhere. Data at rest is encrypted by Supabase (Postgres AES-256, backups included). Credentials use industry-standard secure hashing.
If you're doing due diligence.
You own your data. You can leave with it. We don't sell it.
Full CSV/JSON export from every workspace, any time. We don't share your data with anyone. We don't train on it. Cancel and it's yours to take.