Skip to main content
Manufacturing Metal Fabrication Manufacturer (name withheld) Australia Live in production

Production & Inventory ERP for Metal Fabrication

A growing custom metal fabrication business was running on spreadsheets, a whiteboard, paper job cards and photos in a phone gallery.

17 → 1
Modules replacing spreadsheets & paper, one login
81/81
Regression tests passing at handover
~30
Latent runtime crashes found & fixed pre-launch
15
Structured QA & hardening passes
0
Per-seat licences — growth costs nothing extra
Nightly
Automated database backups (30-day retention)

The Challenge

A growing custom metal fabrication business was running on spreadsheets, a whiteboard, paper job cards and photos in a phone gallery. Each part worked in isolation and each had a ceiling — the admin load rose faster than the job count, so every additional order made the business slightly less profitable to run. There was no single source of truth: the number in the quote, the number on the shop floor and the number in the stock cupboard were three different numbers. Stock accuracy was guesswork, job status lived in people's heads, costing happened after the margin was already lost, and nothing left an audit trail for ISO-grade evidence.

Our Solution

We replaced all of it with one web application that follows a single continuous thread from enquiry to delivery — designed around the job as the spine. A quote becomes an order, the order becomes a job, the job consumes stock and labour and produces quality records, and the job ships. Every module hangs off that thread rather than sitting beside it, so the numbers reconcile without anyone reconciling them. Data is captured once where it is generated — a shop-floor tablet, a wall-mounted display, a shop feed — so headcount doesn't rise with volume. Roles (not code changes) admit new users, modules share one schema, and because it is self-hosted on standard PostgreSQL, scaling is a server decision rather than a per-seat licence negotiation.

Technical Architecture

React single-page application bundled with Vite, responsive across office desktop, shop-floor tablet and wall-mounted floor display

Print stylesheets generate customer-facing documents directly from the browser — no separate reporting server

Node.js + Express REST API with JWT auth, re-querying the user record on each request so revoked accounts take effect immediately

Role-based authorisation across admin, operator and viewer

PostgreSQL with a numbered, forward-only migration chain reviewed against real production rows, not just a clean database

Nginx reverse proxy with TLS termination; nightly pg_dump with 30-day retention

Scripted deploy plus a written production runbook so releases are repeatable by any engineer

Conventional scaling path: vertical first, then a read replica, then a separate database host — no re-architecture

Technologies Used

ReactViteNode.jsExpressPostgreSQLJWT AuthNginxSelf-hosted / Linux

Project Timeline

1

Working software first

Prototype
  • Full interactive prototype built and reviewed before backend commitment
  • Client validated real screens rather than wireframes
  • Nine business requirements agreed as acceptance criteria
2

Hardening

15 QA passes
  • Structured passes covering correctness, security, migration safety and recovery
  • Faults reproduced in a headless render harness before any fix
  • Endpoints re-tested against hand-computed fixtures, not just HTTP 200
3

Production

Live
  • Scripted, documented deployment with a written runbook
  • Nightly database backups with tested 30-day retention
  • Conventional scaling path with no re-architecture required

Stock, job status and job cost now reconcile without anyone reconciling them, quality and material movements leave an audit trail by default, and the admin cost of an extra job is no longer tied to how many jobs we already have. It fits the way we actually work.

Operations Director, Metal Fabrication Client (name withheld)

Long-Term Impact & ROI

Seventeen disconnected tools became one production and inventory platform carrying real money, hardened through fifteen structured QA passes and handed over with a full regression suite green — including a failure that predated the engagement. A single static sweep surfaced ~30 latent crashes before a user ever met one. With self-hosted PostgreSQL and zero per-seat licences, adding users, jobs or a second site costs no additional software spend, and the admin cost of growth is finally decoupled from the number of jobs.

Want Results Like This?

Every case study started with a free discovery call. Let's explore what's possible for your business.

Book Free Consultation