Tenant Modes
SaasKitFy supports two tenant modes that change how organizations are presented to your users. Set the mode in config/saas.php.
Configuration
// config/saas.php
'tenant_mode' => 'organization', // or 'personal'
Organization Mode (B2B)
The default mode, designed for team-based SaaS products.
- Users can create and join multiple organizations
- An org switcher is visible in the UI, letting users move between workspaces
- Each org has its own members, billing, and resources
- Users explicitly create organizations after registration
Personal Mode (B2C)
Designed for single-user or consumer-facing products where teams are not needed.
- Each user gets one auto-created workspace on registration
- Workspaces are also created automatically for magic link and OAuth sign-ups
- The org switcher and team management UI are hidden
- The org layer still exists under the hood (billing, API keys, etc. still work)
Workspace Naming
The auto-created workspace name is controlled by the onboarding template:
// config/saas.php
'onboarding' => [
'org_name_template' => "{name}'s Team",
]
The {name} placeholder is replaced with the user's name at registration time.
Frontend Detection
The current tenant mode is exposed to the frontend via the GET /user response, which includes a tenant_mode field. The React app uses this to show or hide org-related UI.
{
"id": 1,
"name": "John Doe",
"email": "john@example.com",
"tenant_mode": "organization"
}
Runtime Changes
The tenant mode can be changed at runtime through the admin panel without redeploying. The setting is stored as an AppSetting record with the key saas.tenant_mode.