Trust center
We run StandardOS on StandardOS
The strongest claim a compliance product can make is that its makers trust it with their own compliance. Our ISO 27001 management system, covering scope, risks, controls, audits and reviews, lives inside StandardOS itself. Rather than ask you to take a badge on trust, here is exactly how the service is secured and operated, and how to check the part that matters most without us.
The subprocessor list below last changed on 2026-09-27; everything else on this page is checkable from the links it carries.
Infrastructure & hosting
Availability
Monitored continuously from outside our own infrastructure, and the result is public, including when it is bad.
Read more
We would rather you saw an incident here than heard about it from us afterwards.
Data residency
All customer data is stored in the EU (Supabase, Ireland region).
Read more
We choose EU regions wherever the service touches customer records.
Delivery
Applications are served over TLS 1.2+ only; HSTS enforced.
Read more
Static assets via CDN; no customer records at the edge.
Backups
Managed daily backups of the primary database, held in the same EU region, with automated alerting if a scheduled backup does not appear.
Read more
A weekly encrypted copy is also held outside the database provider, so a failure of that provider's account does not take every copy with it.
Recovery
Verifiable rather than asserted. Because your compliance records are hash-chained and the daily roots are published, a restored database can be checked against a copy we do not control, which is the same check we hand your auditor.
Read more
A restore that had been altered would not match, and we would know rather than assume.
Record integrity, our differentiator
1. Tamper-evident audit trail
Every change to your ISMS records (documents, risks, the SoA, evidence, nonconformities, audits, reviews, and who was granted access) is written to an append-only, hash-chained log.
Read more
Each entry seals the one before it, along with who made the change, so rewriting or reattributing history breaks the chain visibly. Signed-in users hold read-only access to that log at the database level; update and delete are revoked on it even for the service role we run the platform with, so there is no delete path for anyone. Coverage is attached table by table rather than schema-wide: the records listed above are in the chain, and the platform's own operational tables are not.
2. Anchors, at least weekly
Each night we record the head of every chain.
The published daily rootsRead more
At least weekly (Monday by default; daily or monthly if your owners choose) we email it to that organization's owners and admins with the count of records added since the last receipt; a week in which the chain did not move brings no mail. Once a receipt is in your mailbox it is on a server we do not run, so a later rewrite would produce a head that no longer matches the one you already hold. The daily roots are also published openly, for anyone to archive. This does not make tampering impossible. It makes it detectable by someone who kept their mail.
3. Verifiability
Exports carry the hashes and the content they are computed over, plus the exact hashing rule.
The specification and the scriptRead more
You can recompute the whole chain yourself, in any language, without StandardOS running. The specification and a dependency-free script that does it in about a hundred lines are published, and that script is the one our own CI runs against a real chain on every push. We have not found another tool in this market that lets a customer check the history without trusting the vendor. If you know one, tell us and we will correct this page.
Access control
Tenant isolation
Row-level security on every table, enforced in the database itself rather than in application code, and tested in CI (pgTAP) on every change.
Authentication
Password sign-in with modern hashing, sign-in via Microsoft and Google, or SAML 2.0 single sign-on through the organization's own identity provider, which an owner sets up on the Security page and can make mandatory for every member.
Read more
Sessions are short-lived and refreshed. Anyone can enrol a second factor (TOTP) on their own account, and an owner can require one: for password sign-ins, or for every sign-in regardless of provider. Both requirements are enforced in the database, not in the interface: a session that does not meet them sees no organization data at all.
Our own access
Least-privilege staff roles. Every operator action on a tenant is written to an append-only ledger that we cannot edit or delete, and that the tenant reads on their own Audit trail page, under “Actions by StandardOS staff”.
Read more
Which of our staff acted is withheld, because that is our employees' personal data, so the entry says what happened, when, and what it changed. It is append-only rather than hash-chained: the chain and its anchors protect your records, not our access log, and we would rather say which is which.
Development practices
Change control
Every change ships through CI: type checks, tests, database policy tests, and secret scanning on every commit.
Verified outside the product
Every push builds a real hash chain in Postgres, exports it, and re-verifies it with the same dependency-free script we publish, run with plain Node and no StandardOS involved.
Read more
A change to the hashing rule that forgot to update the specification fails our build rather than your audit.
Isolation tested in the database
Row-level security is asserted with pgTAP against a live Postgres on every push.
Read more
The policies are tested where they are enforced, not reviewed by eye in application code.
Secrets
Scanned in CI and again by a git hook before code leaves a developer machine, with the full repository history scanned clean.
Dependencies
Locked and reviewed; automated vulnerability alerts on the full dependency graph.
AI discipline
AI-assisted output in the product is always a labeled draft until a human confirms it.
Read more
The same rule applies to how we build.
Privacy & data protection
GDPR
Danish controller. Our Article 28 data processing agreement is published in full at getstandardos.com/legal/dpa for every customer on every plan, with no signature and no sales call required.
Read more
Details of what we process and why are in the Privacy Policy.
No tracking
No analytics or advertising trackers on this site; no cookie banner because there is nothing to consent to.
Diagnostics
Email addresses, IP addresses, record identifiers, cookies and authorization headers are stripped from error reports before they leave our servers.
Read more
Configured in code and reviewed on every change, rather than promised in a policy.
Exit
Full one-click export in open formats at any time: during trial, while subscribed, and for 90 days after cancellation.
Read more
Lock-in is not a retention strategy.
Subprocessors
Deliberately few. Changes are announced here with prior notice to customers. This list and the one in our Privacy Policy are the same list, rendered twice. Last changed 2026-09-27.
Supabase
Database, authentication, file storage
Processing location: EU (Ireland)
Vercel
Application hosting & delivery; cookieless traffic analytics (no cookies, no cross-site identifiers)
Processing location: EU serving; global CDN for static assets
Sentry
Error monitoring, diagnostics only; email addresses, IP addresses and record identifiers are stripped before events leave our servers
Processing location: EU region (Frankfurt)
Paddle
Merchant of record: checkout, payment, VAT & invoicing (card data never touches our servers)
Processing location: UK, under the EU adequacy decision
Resend
Transactional email
Processing location: EU region
Announced changes
These are decided and announced but not yet in use. Each processes nothing until we switch it on, and this notice comes before that.
ZeroBounce
Announced 2026-09-27, applies once enabledEmail address verification for outreach prospects: a company role address is checked for deliverability before a first letter is sent, so the sending domain is not spent on dead mailboxes and spam traps. Only the address is sent, never a name, and the answer we keep is the service's own status word
Processing location: EU. ZeroBounce states it hosts its servers in the EU and that data sent for processing is transmitted, stored and processed only on servers in the EU, on its own hardware rather than a public cloud, and it offers an EU data processing addendum incorporating the Commission's standard contractual clauses (zerobounce.net/gdpr and its EU DPA, read 2026-09-27). We call the EU-only endpoint api-eu.zerobounce.net, which its documentation describes as the endpoint where validations occur only within the EU; the global endpoint is not used
Responsible disclosure
Found a vulnerability? Tell us at security@getstandardos.com and we'll acknowledge within two business days.
Read more
We won't take legal action against good-faith research, we'll keep you informed as we fix, and we credit reporters who want credit. Please avoid accessing other organizations' data. The row-level security should make that impossible, and we'd genuinely like to know if it doesn't.
For a security review
Our data processing agreement is published in full, so there is nothing to request. Anything else a security review needs, questionnaires or architecture detail? Email security@getstandardos.com. Answered within one business day by StandardOS itself, so the answer comes from the code rather than from a brochure.
Related:AboutSources and methodEditorial policyContactChangelogVerify your records