Ship multi-tenant SaaS from Delphi

One binary. One database. Strict per-tenant isolation, plans and billing, a vendor console with impersonation, and a public site. No REST tier, no JavaScript build step.

Start a free workspaceSee the isolation proof
Tenants

12

Users

80

Projects

62

MRR

1,552.00

What this demo proves
  • Every workspace query carries a tenant_id bindenforced
  • A query without that bind refuses to runguarded
  • Tenant ids are never read from the requestsession only
  • Cross-axis routes answer 403 with a reasonno redirect
  • Self-service signup creates tenant and owner
  • Resumable onboarding wizard
  • Invitations with single-use expiring tokens
  • Plan limits enforced server-side
  • Tenant list, suspend and activate
  • Impersonation, superadmin only, fully audited
  • Plan editor and feature flags
  • Platform-wide audit trail
Product tour
Built from components
sgcSaaS
Everything on this page is a sgcHTML component.
Free

Free forever

Starter

29.00 / month

Pro

99.00 / month

Enterprise

399.00 / month

Compare all plans
Questions

No. Every page binds a TFDQuery straight into a sgcHTML component. The /sql page shows the statement next to the component it fed.

Each workspace statement carries a tenant_id bind taken from the session. A helper refuses to execute a workspace query that has no such bind. Sign in and open the isolation page to watch a cross-tenant read being refused.

No. There is no SMTP server and no payment provider in this demo. Verification and invitation links are printed on screen, and plan changes are recorded and invoiced locally.
What is simulated here?