Shapeless as water, it takes the form of its container

The foundation shapes to your business—not the other way around

A multi-tenant SaaS modular monolith: kernel and infrastructure stay business-free; modules plug in, toggle per tenant, and run in one process.

Infrastructure modules
8 ready out of the box
Deployment
Single process · Docker Compose
Tenant isolation
Prisma layer fail-closed
  • Kernel stays business-free

    HTTP stack, auth, tenant context, module loader, and event bus live in the kernel—zero business code mixed in. Swap the product without touching the foundation.

  • Modules plug in cleanly

    Each module ships server routes, client pages, and shared contracts. Register in both enabled-modules lists to go live; remove just as cleanly.

  • Per-tenant toggles

    Modules and entitlements open per tenant: disabled means no routes, no sidebar, no data—and quota overruns are blocked by the kernel.

  • Tenant isolation is mandatory

    Tenant guards fail-closed at the Prisma layer: unregistered models block startup, with lint and runtime checks against cross-tenant access.

  • Observability built in

    Audit logs, error logs, slow-query dashboards, and a job center ship ready—no waiting for an incident to add monitoring.

  • Single-process deployment

    Assembled at compile time, one process in production, delivered with Docker Compose. No microservice ops tax, no low-code ceiling.

Infrastructure ready to go

Auth, tenants, permissions, audit, notifications, jobs, observability—everything every SaaS rebuilds from scratch, already modular and toggleable.

  • user

    Auth with JWT dual tokens

  • platform

    Tenants, plans, and quota console

  • rbac

    PBAC roles and permissions

  • audit

    Write-operation audit logs

  • notification

    In-app notifications

  • background-job

    BullMQ job center

  • error-log

    Error logs and query API

  • slow-query

    Slow-query attribution dashboard

A predictable stack

Mainstream, long-maintained choices: easy to hire for, easy to search, clear upgrade paths. Value is in boundaries and constraints—not novelty frameworks.

Read the docs
Backend
Fastify 5 · TypeScript 6 · Prisma 7
Data
PostgreSQL 16 · Redis 7 · BullMQ
Frontend
React 19 · Vite 8 · React Router v8 · TanStack
UI
shadcn/ui · Tailwind CSS 4
Deploy
Docker Compose · 宿主机 Nginx

Run the foundation first, then the product

Five minutes locally, one command to production. The free tier can stay free.