MonoStack
Starter Kits

Boiler (Multi-Tenant)

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

Use $scaffold-monostack to create my-saas-app from the multi-tenant boiler starter.

On this page