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
| Domain | Description |
|---|---|
organizations | Organization management and switching |
users | User management within organizations |
roles | Role definitions with permissions |
permissions | Permission system for access control |
invitations | Email invitations to join organizations |
auditLogs | Change tracking |
exampleModels | Example CRUD implementation |
website | Public-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