Multi-tenant wedding planner SaaS

One platform, many planning agencies — each with their own brand, domain, and tenant boundary enforced at the database row.

Capabilities

Workspace tenancy

Every wedding, vendor, contract, and telemetry log is scoped to a workspace and enforced by row-level security in Postgres.

White-label branding

Upload a logo, pick an accent color, provision a subdomain — the client-facing portal renders in the planner's brand with invisible attribution.

Per-tenant client portals

A public portal route resolves the planner's brand server-side and renders a data-safe view of the couple's wedding state.

Proof points

  • RLS on every public-schema table
  • Workspace-scoped storage buckets with signed URL access
  • Service-role isolation — admin client never reaches the browser

Frequently asked

How is tenant isolation enforced?

Every row carries a workspace_id and every policy gates access via is_workspace_member(workspace_id, auth.uid()) — a security-definer function that bypasses recursive RLS and prevents cross-tenant reads.

Can each planning agency use its own domain?

Yes. White-label management lets a planner provision a custom subdomain or domain; the public portal resolves branding server-side from the request host.

Is the white-label badge removable?

Agencies on the Pro tier can toggle 'Powered by WeddingVerse' attribution on or off per workspace.

Related solutions

© WeddingVerse · Real-time wedding operations