The Challenge
The shop was running inventory in a spreadsheet, work orders in a notebook, employee schedules in a group chat, and invoices in QuickBooks. Nothing talked to anything. When a mechanic finished a job, it had to be typed into three places before the customer got a bill, and parts usage wasn't feeding back to inventory at all. They'd looked at generic shop software but none of it matched how they actually worked — used parts, custom builds, consignment inventory, subcontracted labor.
Our Approach
We spent a week in the shop first, watching how jobs actually moved through. Then we built a unified Next.js dashboard on top of a Postgres database managed through Prisma. Work orders pull parts from inventory automatically. Labor hours feed from the schedule straight into invoicing. Role-based access means mechanics see only their assigned jobs, the front desk sees everything, and the owner gets reporting. Stripe handles card payments at checkout. Authentication is JWT-based with a simple session model — no external identity provider to lock them into a monthly fee.
Tech Stack
The Outcome
One system instead of four. Parts usage and invoicing update in real time. The owner estimates three to four hours a week of admin work disappeared in the first month. Mechanics complained for the first two days and stopped complaining after that — the work order flow is now faster than the notebook ever was.
Like to know more about this project? Talk to William.