Security
Your clients' data, treated like it's money.
The plain-English version of how the platform is built. The contractual version is in the privacy policy and DPA, and they say the same thing.
Card numbers never touch us
Guests pay through Stripe Checkout on your agency's own connected Stripe account. Card data goes straight to Stripe, a PCI-DSS Level 1 provider. We never see, store, or transmit a card number, and we never hold your funds.
Every tenant is isolated
Row-level security is enforced on every table in the database. Your blocks, guests, payments, and documents are scoped to your agency at the database layer, not just in the application code. No other agency can read your rows, and that isolation cannot be switched off from the app.
Encrypted in transit and at rest
All traffic runs over TLS. Data is encrypted at rest by our infrastructure providers. There are no unencrypted paths between your browser, the platform, and the database.
Public pages are hardened
Guest booking, RSVP, and inquiry pages are rate-limited per IP and protected with honeypots. Private links (couple dashboards, quotes, signature pages) use high-entropy tokens; treat them like passwords and share them only with the people they're for.
Signed webhooks, verified senders
Outbound webhooks are HMAC-signed so your systems can verify every delivery came from us. Inbound Stripe events are signature-verified before anything changes. E-signatures record a document hash, timestamp, IP, and consent for the audit trail.
Your data stays yours
Export your rooming lists, payments, and reports as CSV anytime. A full account export is available on request, and when you leave, your data is deleted per the retention terms in the DPA.
Subprocessors
Four infrastructure providers, each documented in the DPA:
Vercel
Application hosting
Supabase
Database and authentication
Stripe
Payments
Resend
Transactional email