Platform Overview
Architecture
- Frontend: Next.js 16, Tailwind CSS v4, Zustand
- Backend: NestJS 11, Prisma 7, PostgreSQL
- Infrastructure: Azure App Service, Azure PostgreSQL Flexible Server
Multi-Tenancy
Every workspace is a tenant. Tenants are isolated via tenant_id on every database row.
Multi-Company
Within a tenant, you can create multiple companies. Company isolation uses 7 layers:
X-Company-IdHTTP header- CompanyGuard (access validation)
- CompanyScope (Prisma where clauses)
- DomainEvent (company context in events)
- CHECK constraints (NOT NULL on company_id)
- Foreign keys (ON DELETE RESTRICT)
- Row-Level Security (PostgreSQL policies)
Event-Driven Integration
16 domain events connect modules automatically. For example:
- Inventory adjustment → GL entry (COGS)
- Payroll posting → GL entry (salary expense)
- Progress claim → Invoice → Revenue
Feature Gating
92 features are gated across 5 pricing tiers using the @RequireFeature() decorator.
Last updated on