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 proofTenants
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
Free
Free forever
Starter
29.00 / month
Pro
99.00 / month
Enterprise
399.00 / month
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.