Security at theguests.app

Your guests' data is operational data — names, contacts, check-in times. We treat it with the same controls you'd expect from any serious B2B SaaS, written in plain English.

Row-level security on every table

Postgres Row-Level Security (RLS) is enabled on every workspace-scoped table. Even with a leaked anon key, no client can read or write rows outside their own workspace.

  • RLS policies enforced at the database, not just the app layer.
  • Roles checked via security-definer functions to prevent recursive policies.
  • Workspace owner is the only role authorised to delete or export.

Encryption in transit & at rest

All traffic is served over TLS 1.3 with HSTS preload. Data at rest is encrypted with AES-256 by the underlying managed Postgres service.

  • TLS 1.3, HSTS preload, X-Frame-Options DENY.
  • AES-256 at rest via Lovable Cloud (Supabase).
  • Daily automated backups, 7-day point-in-time recovery.

Two-factor authentication

TOTP-based two-factor authentication is available for every role and strongly recommended for workspace owners. Configurable from Settings.

  • Standard TOTP (Google Authenticator, 1Password, Authy, …).
  • Owners get a banner reminder until 2FA is enabled.
  • Phone factor intentionally not exposed at the door scanner.

Tamper-evident audit log

Every privileged action — invites, role changes, deletes, exports, scans — writes to an append-only audit_log table with workspace + actor + payload, retained 365 days.

  • Visible to managers + owners under /audit.
  • Includes IP + user-agent for sensitive actions.
  • Right-to-delete leaves a final delete row for non-repudiation.

Edge isolation & rate limiting

The app runs on a serverless edge runtime with per-IP and per-token rate limits on every public endpoint. Nothing user-facing speaks directly to the database.

  • Public endpoints (/g/$token, /api/public/*) bucket-rate-limited.
  • All write paths go through SECURITY DEFINER RPCs that re-check authorisation.
  • No long-lived service-role keys shipped to the browser.

GDPR & sub-processors

We are GDPR-compliant by design: portability, erasure and access requests are all self-serve from Settings. Customers can sign our DPA in one click.

  • Sub-processors: Lovable Cloud (Supabase, EU), Cloudflare, Resend.
  • Standard Contractual Clauses for any non-EU transfer.
  • 72-hour breach notification commitment.

Compliance roadmap

Live

GDPR

DPA on demand, self-serve export & erasure, EU data residency.

In progress

SOC 2 Type 1

Controls implemented; audit window opens once we cross the revenue threshold to fund the engagement.

Planned

ISO 27001

Targeted after SOC 2 Type 2; same controls, formal ISMS.

Found a security issue?

Reach out via our contact form. We respond within 24 hours and don't take legal action against good-faith research.

Last updated 2026-08-19 · Maintained alongside the codebase.