Back to Multi-Tenant
Enterprise Architecture

Private Templates

Templates, their variables and their version numbers are rows in your workspace behind Postgres row-level security. Another workspace's API cannot list, render or even see that they exist.

Template Content Isolation

Tenant-scoped storage
All templates are stored with tenant_id scoping — database queries enforce isolation at the row level
No cross-tenant access
Template API endpoints verify tenant ownership on every request — unauthorized access returns 404 not 403
Private variables
Template variables and test data are stored per-tenant and never visible to other organizations
Version numbers per workspace
Every save bumps the template's version inside your workspace only
Template Security
Row-level security on all queries
Every database query filters by tenant_id automatically
Tenant verification on every API call
Ownership checked before any template operation
Variables stored per-tenant
Test data and merge variables scoped to organization
Duplicate stays home
Duplicating a template creates the copy in the same workspace
Questions

Common questions, straight answers.

What happens if another workspace requests my template by ID?

Nothing comes back. Row-level security hides the row entirely, so the request is answered as if the template did not exist — a 404, not a 403 that would confirm it does.

Are my template variables private too?

Yes. Variables are stored on the template row and rendered server-side inside your workspace's transaction; they are never visible to another workspace.

Can a template be shared between two workspaces?

Not directly. Export the HTML and create it in the other workspace, or duplicate it inside the workspace that owns it.

Run your business from one place.

Five plans, seventeen launch apps, one dashboard. Set up in under 5 minutes — change tiers any time.

From $0 · Basic $9.95/mo · Save 20% on annual billing · Upgrade or downgrade any time