All work
Multi-tenant SaaS · Manufacturing ops·2024 – present

OH SCRAP!

Multi-tenant job-shop platform — estimating, scheduling, and a live shop floor, in daily production.

In production · my product
OH SCRAP scheduling timeline placing work orders across saw, mill, and lathe work centers by capacity and due date
The back-scheduling engine lays 32 operations across the SAW, MILL, and LATHE work centers — respecting each center's capacity and not-later-than dates, with manual override.
OH SCRAP live shop floor board showing work orders moving through production stages with progress bars
The live shop floor: drag-drop operation reordering with Socket.io sync the whole team sees in real time. Operator and customer names blurred for privacy.
OH SCRAP actual-vs-estimated report with overall efficiency, cost variance, margin, and scrap per work order
Actual-vs-estimated in one view — 157% overall efficiency, quoted vs. actual cost, 45% margin, and scrap rate, per work order. Customer column blurred; the numbers are real.
OH SCRAP settings page showing shop rates, operating-hours capacity inputs, feature toggles, and QuickBooks sync
Per-shop configuration: rates and markup, operating-hours math that feeds capacity planning, feature toggles, and a QuickBooks Online sync tab.
01

The problem

A manufacturing job shop ran estimates in spreadsheets, schedules in shared Excel, and tracked production on paper. There was no single source of truth for job status or cost — so visibility gaps, scheduling conflicts, late jobs, and double-entry into QuickBooks were routine.

02

What I built

  • Estimate → quote → work-order lifecycle with reusable templates and automatic status transitions
  • A back-scheduling engine that respects work-center capacity, shifts, and not-later-than dates, with manual overrides
  • An interactive shop floor with drag-drop operation reordering and live Socket.io updates across the team
  • First-Article QC holds with an approve / reject / rework workflow
  • Multi-dimensional reporting: production trends, cost variance, scrap analysis, actual-vs-estimated labor
  • Tenant-safe RBAC on every route, model, and service; Auth0 invite-only org enrollment
  • QuickBooks Online integration — connection management, customer import, and estimate export
03

Architecture

A React 18 + TypeScript + Vite front end against a Node/Express + Mongoose API. MongoDB is partitioned per organization for tenant isolation, Auth0 handles OIDC + machine-to-machine auth, Socket.io drives real-time shop-floor sync, files live in Google Cloud Storage behind signed URLs, and Sentry + Pino provide observability. Husky pre-commit gates keep the test suite green.

Client
React + Vite SPAShop floor (Socket.io)Chakra UI · PWA
API
Node / ExpressTenant-safe RBACAuth0 OIDC + M2M
Data & services
MongoDB (per-org)Google Cloud StorageQuickBooks OnlineSentry + Pino
04

Scale & metrics

Daily
shop-floor use in production
2+ yrs
running a real shop
6
versions shipped on customer feedback
90+
tests passing
ReactTypeScriptNode / ExpressMongoDBMongooseAuth0Socket.ioChakra UIReact QueryZustandGoogle Cloud StorageQuickBooks Online APISentry
05

Outcome

My product — built and owned by me, with Sutcliffe Mechanical as the flagship customer using it on the shop floor every day. Six versions shipped on a continuous customer-feedback loop, with tenant isolation ready for additional orgs.

Want something like this built for your business?

Fractional & project engagements for small, growing teams — now booking.