
“A system with one way to enter data gets bypassed.”
A construction ERP: from the warehouse shelf to rebar crews in Sweden
A system that knows where every bolt is across fifteen warehouses — and which trades are needed on which site in ten days. Built from scratch, integrated with SAP, not instead of it.
A construction company with sites in several countries ran inventory and workforce on spreadsheets and phone calls. The system we built knows where every bolt sits across fifteen warehouses — down to the shelf — and which trades are needed on which site in ten days.
SAP stayed the system everything starts from. The ERP was built next to it, integrated, not instead of it: existing records did not move, and the company did not have to stop to get a new system.
Data goes in three ways — a barcode in the warehouse, a purchase order at intake, by hand for everything else — because a system with one way to enter data gets bypassed. Ten modules shipped in six months, across 150,000 items.
The problem
The constraint
What we did
Three ways to enter data — so the system doesn’t get bypassed
Barcode in the warehouse, purchase order at intake, manual for the rest. Location down to the shelf: the bolt gets found instead of reordered.
150,000 items across 15 warehousesTrade planning, not just record-keeping
Sites are projects — say, a refinery in Sweden. The system knows who is where, who needs moving, and which trades are needed in ten days: rebar and carpenters yes, excavator operators no longer.
The question a standard ERP can’t answerSAP stays — data exchanged at the boundary
Invoicing, payments, suppliers with accounting export, dashboards and tasks. NestJS, Next.js, PostgreSQL, a monorepo — the same proven stack, a team of four developers.
10 modules in 6 months
A system that allows only one way of entering data gets bypassed — and then the database stops matching the shelf. Barcode in the warehouse, purchase order at intake, manual for the rest.
The result
When an item cannot be found, what is missing is not the item but a day: the site waits, the goods are ordered a second time and paid for twice. The same holds for people — a trade you look for on the day you need it is a trade you pay more for.
What we’d do differently
We would document the SAP integration while it was being built. The direction, the payload and the mechanics of that link now live in the code and in four people’s heads — and it is the most sensitive part of the system.
We would measure how long it takes to find an item, before and after. A hundred and fifty thousand items is scope, not a result; one stopwatch run in the warehouse would give a number that speaks for itself.
- NestJS
- Next.js
- PostgreSQL
- Turborepo
- styled-components
- SAP integration