Multi-tenant SaaS ERP
First client: a mining and heavy-civil infrastructure contractor
- Node.js
- TypeScript
- Express
- PostgreSQL
- React
- Vite
The problem
A heavy-civil and mining contractor operating across multiple sites needed one system for people, procurement, stock and project accounting — with each site able to run its own operation without fragmenting the data.
The approach
A two-level tenant → organisation model, so a client can hold multiple sites or legal entities under a single tenant. Client-specific rules are handled by extension on a common codebase rather than by forking the product — the discipline that keeps a platform maintainable past its third customer.
What was built
- Node.js, TypeScript and Express service layer
- PostgreSQL accessed through the raw pg driver — no ORM, a deliberate architectural position
- React and Vite front end
- Self-serve signup with trial provisioning
- Ten modules on a shared schema with tenant isolation