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.
userAuth with JWT dual tokens
platformTenants, plans, and quota console
rbacPBAC roles and permissions
auditWrite-operation audit logs
notificationIn-app notifications
background-jobBullMQ job center
error-logError logs and query API
slow-querySlow-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.