Noera Tech Solutions / Work / Multi-Branch ERP

Multi-Branch ERP for an F&B Business

Built for a multi-branch F&B business that also runs several side ventures. One system for point of sale, inventory, finance, HR and cross-branch reporting — delivered and live, rolling out branch by branch.

Full-stack custom build Multi-branch & role-based access Built & shipped in weeks Live in production
Cash flow report, broken down by revenue line including F&B sales and referral fees

Figures shown in these screenshots are test data from the development environment, used to demonstrate the interface.

One business, many revenue lines, zero unified system

The client runs several restaurant branches while also operating a few side businesses — migrant worker job referrals, loan referrals, and SIM card referrals — each with its own bookkeeping workflow.

What was needed: one system cashiers could use on the shop floor, while giving the owner a real-time, cross-branch financial view — with data strictly isolated between branches, yet still viewable combined by the owner.

A custom ERP, designed from the data model up

Instead of retrofitting off-the-shelf software, we designed a multi-branch data schema from day one — every operational entity tied to a branch, with tiered access: owners see across branches, staff are scoped to their own.

Standard F&B modules (POS, inventory, production) and four referral business modules were combined into one shared financial reporting system, including automated P&L, cash flow, and business valuation reports.

Modules built

Point of Sale

Branch selection required before checkout, so sales never log to the wrong branch.

Products & Inventory

Products, categories, raw materials, suppliers, daily production, waste log.

Finance

Operational costs, payables/receivables, fixed assets with automatic depreciation.

Automated Reports

Profit & Loss, Cash Flow, and business valuation estimates (EBITDA).

HR

Employee records, attendance, and multi-branch payroll.

4 Referral Business Units

Migrant worker jobs, loans, SIM cards and other referrals — each with its own fee and payment-status tracking.

Tiered Access

Owners see across branches with a filter; staff are scoped to their own branch.

Bilingual & Responsive UI

Indonesian/English, optimised for use on a phone on the shop floor.

Interface snapshots

Built on an edge runtime, not a typical Node server

Frontend ReactViteCloudflare Pages
Backend ExpressPrisma ORMCloudflare Workers
Database PostgreSQLSupabase

Technical problems we solved

Running a full Express/Prisma backend on Cloudflare Workers — an edge runtime, not a traditional Node.js server — surfaced several problems rarely covered in standard tutorials.

01 Connections hanging on the second request

A single PrismaClient instance was being reused across requests, which doesn't fit Workers' concurrency model. Fixed with a fresh client per request via AsyncLocalStorage, wrapped in a Proxy so existing controller code kept working.

02 Deployment failing over an incompatible dependency

Express silently pulled in an old iconv-lite that failed to bundle for Workers. Fixed by pinning the dependency and writing a manual JSON body parser.

03 A critical form failing with no error message

The owner's password-change form failed silently — no try/catch on the frontend, and backend validation was silently stripping fields on update. Fixed on both sides with explicit error handling.

04 Mobile layout breaking

Large numbers on the dashboard and transaction tables overlapped on small screens. Fixed systematically across roughly 15 pages with one consistent responsive pattern.

05 Infrastructure migration

Started on Render + Neon, then moved to Cloudflare Pages + Workers + Supabase — for better edge performance, lower cost, and a clean production URL with no paid custom domain required.

Four side businesses that ran on separate spreadsheets and a restaurant operation tracked branch-by-branch now sit in one system — POS, inventory, finance, HR and cross-branch reporting, with each branch's data isolated but visible combined to the owner.

Live — client is onboarding branch by branch Not a prototype or demo — a real production system, handed over empty and being set up with the client's own data as each branch comes online.

Get In Touch

Need a system like this for your business?

We build custom systems from the data model all the way to production — starting with the process, not the feature list.