Skip to main content

Boiler

Multi-tenant starter kit with organizations, roles, and permissions.

Features

  • Organizations - Users can belong to multiple organizations
  • Roles & Permissions - Fine-grained access control per organization
  • Invitations - Invite users to join organizations
  • Tenant-scoped data - Separate database schemas per organization
  • Audit logs - Track changes across the application

Domains

DomainDescription
organizationsOrganization management and switching
usersUser management within organizations
rolesRole definitions with permissions
permissionsPermission system for access control
invitationsEmail invitations to join organizations
auditLogsChange tracking
exampleModelsExample CRUD implementation
websitePublic-facing pages

Route Structure

routes/
├── (admin)/ # Authenticated routes
│ ├── dashboard/
│ ├── organizations/
│ ├── users/
│ ├── roles/
│ ├── invitations/
│ └── settings/
└── (website)/ # Public routes (SEO-friendly)
└── ...

Database

Uses tenant-scoped queries with getTenantDb():

import { getTenantDb } from '$lib/db/managedDb.server'

const { db, productsTable } = await getTenantDb()
await db.select().from(productsTable)

Scaffold

mono scaffold app my-saas-app --template boiler