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.