Trust center
Everything procurement needs, in one place
Plain answers to the questions that show up in every security questionnaire — where data lives, how it’s isolated, how breaches are handled, and what we’ll never claim without earning it.
Live security controls
TLS 1.2+, salted password hashes, multi-tenant isolation locked in by integration tests, BotID + rate limiting on credential endpoints, OpenTelemetry observability, encrypted backups.
Security overviewData Processing Addendum
17 sections covering GDPR Art. 28 / UK GDPR / Singapore PDPA / Thailand PDPA — sub-processor list, 72-hour breach notification, data-subject rights flow, tiered audit rights. Counter-signed PDF on request.
Read the DPAPrivacy policy
What we collect, how we use it, sub-processor list with regions, your rights under PDPA / GDPR, retention schedule, and our cookie usage (one first-party session cookie, no third-party trackers).
Privacy policyWhat we don’t claim
- SOC 2 Type II.Not held today. On the long-term roadmap; we’ll be honest about timing in any procurement conversation rather than promising a date we can’t hold.
- ISO/IEC 27001.Not held today. Same framing as SOC 2 above — if your procurement requires it, talk to us first.
- Paid bug-bounty programme. Not yet. Responsible disclosure goes to security@firmworks.com with a 5-business-day response window. PGP key on request.
- On-site audits. Out of scope. Remote audits with mutually agreed scope are available on the audit-rights flow in DPA Section 11.
Sub-processors
The same list governed by our DPA Section 7 and mirrored on the privacy policy. 14-day notice on any change before it takes effect.
| Sub-processor | Purpose | Region |
|---|---|---|
| Vercel | Hosting, edge functions, file storage (Vercel Blob) | Singapore (ap-southeast-1) |
| Neon | Postgres database, daily encrypted backups | Singapore (ap-southeast-1) |
| Stripe | Payment processing, subscription billing | Global |
| Resend | Transactional email (verification, invites, invoices) | United States |
Common procurement questions
The questions every security questionnaire we’ve seen has asked. Plain answers, no marketing fluff — cross-linked to the canonical source where applicable.
Where does our data live?
Application and primary Postgres database in Singapore (ap-southeast-1) on Vercel + Neon. Files (Vercel Blob) sit in the same region. Limited transfers go to Stripe (global) for billing and Resend (US) for transactional email — both bound by data-protection contracts; details in the DPA.
Is data encrypted at rest?
Yes. Postgres is encrypted at rest by Neon. Backups are encrypted, retained 30 days, with point-in-time recovery available within the retention window. Vercel Blob storage is encrypted at rest by Vercel. All transit is over TLS 1.2+.
How are passwords stored?
Salted hashes via Better Auth — we never see, log, or store plaintext passwords. Credential endpoints are protected by Vercel BotID and a database-mode rate limiter (5 attempts / 15 min on /sign-in, /sign-up, /reset-password; 3 / 15 min on /forget-password).
How is multi-tenant isolation enforced?
Every database query is filtered by your organization id server-side. The isolation is locked in by an integration test in tests/cross-tenant.test.ts that round-trips real rows through Postgres in two orgs and asserts a query in org A cannot see org B's data — runs on every CI build.
What is the breach-notification timeline?
Without undue delay, and in any event within 72 hours of becoming aware of a confirmed personal-data breach affecting your data. The notification includes the nature of the breach, categories and approximate counts, likely consequences, and measures taken — sent to the email on file for the organization owner. Full text in /dpa Section 10.
Can we audit FirmWorks?
Yes — through the tiered audit-rights flow in /dpa Section 11. Default: a security questionnaire response within 30 days. We share third-party attestation reports under NDA when available. On 30 days' written notice, no more than once per 12-month period, and at customer cost, you may engage a mutually agreed independent auditor for a remote audit of agreed scope. On-site audits are out of scope.
Do you have SOC 2 / ISO 27001?
Not today. We don't claim certifications we haven't completed. If your procurement requires either, email security@firmworks.com — we'll be honest about whether the trade-off makes sense for your size and ours, and what would unlock starting the journey.
Will you sign a custom DPA / MSA?
Our standard DPA at /dpa is designed to satisfy GDPR Article 28, Singapore PDPA, and Thailand PDPA. For most buyers, accepting our /terms (which incorporates the DPA by reference) is sufficient. A counter-signed PDF copy is available on request from legal@firmworks.com — we typically reply within 5 business days.
What happens to our data when we cancel?
You can export every module as CSV for up to 30 days after cancellation. After that we delete personal data per the retention schedule in /privacy. Encrypted backups roll over in 30 days. Billing records are retained as Thai tax law requires (up to 7 years). Audit logs are retained for 1 year.
Who has access to production data?
A small team of FirmWorks engineers, all bound by written confidentiality obligations. Access is limited to what's needed to operate the Service — not for product analytics, not for AI training (we do not use workspace data to train AI models), not for marketing.
Do you run a paid bug-bounty program?
Not today, but we welcome responsible disclosure and respond within 5 business days. Email security@firmworks.com with reproduction steps; reply with "PGP please" to receive an encryption key. Full responsible-disclosure scope at /security.
How do you notify customers of sub-processor changes?
We update the list at /privacy and /dpa Section 7 and notify organization owners by email at least 14 days before the change takes effect. Customers may object on reasonable data-protection grounds within that window; if the objection cannot be resolved, the affected portion of the Service can be terminated for convenience.
At a glance
- Singapore data residency
- TLS 1.2+ in transit, encrypted at rest
- 72-hour breach notification
- 30-day data export window after cancellation
Got a security questionnaire?
Email it to security@firmworks.com and we’ll fill it out within 30 days — usually much faster. Counter-signed DPA goes through legal@firmworks.com.