Skip to content

Case study

Complete ERP Suite

Deployed across multiple organizations

LanguageTypeScriptAccessPrivate, on requestStatusFeatured
CCASE STUDY

Built with

TypeScriptNode.jsReactPostgreSQL

Enterprise resource planning platform unifying core business functions in a single system, deployed across multiple organisations of varying size and structure.

Inventory handles stock, warehousing, and supply chain. Sales covers quotations, orders, invoicing, and customers. Purchases manages vendors, purchase orders, and receiving. Finance provides the general ledger, accounts payable and receivable, banking, and financial reporting. Dashboards sit across all of it for real-time insight.

The architectural decision that shapes everything else is multi-company support inside a single instance, which suits holding companies and businesses running several legal entities. That choice has consequences in every query. Tenant scoping cannot be a convention that developers remember to apply, because the one place somebody forgets is a data leak between two companies that may be commercial rivals. It has to be enforced at a layer that cannot be bypassed.

Role-based access control ensures users see only what is relevant to them, and comprehensive audit trails track every change. In an ERP, the audit trail is not a compliance checkbox. It is the tool that answers the question finance actually asks, which is never "what is the number" but "why did the number change".

Built with TypeScript, Node.js, React, and PostgreSQL. Deploying the same codebase into organisations with different sizes and requirements is the real proof here: it means the configuration surface was drawn in the right place, and that the boring architecture underneath, shared schema with strict tenant scoping and capability checks, was the correct call.

Want something like this? Let's talk

Topics
#erp#enterprise#fullstack

More work

Other case studies