Dinesh and Budhdhini run Speed Panel & Paint, a panel and paint workshop. They had been trading for nearly three years. Business was going well. Customers were happy, quotes were honoured, and the work was strong.
But they were clueless about direction. Money came in and money went out. They could not see, job by job, whether they were actually making what they thought they were making.
Everything was manual
Day to day ran on paper, memory, and habit. Xero handled accounting and invoices, but that was the end of the digital story, not the workshop floor.
They had tried a few other tools. Each one felt too big and too complicated for how they actually work. So they stayed manual.
Quotes customers loved, but costs they could not see
Their process was sound: quote first, then do the work, and try hard to stick to what was promised. Customers trusted them.
The gap was on the inside. For any one car or job, they had no clear picture of labour, materials, and other costs. Quotes were often gut feel: good instinct, but no data to sharpen the next quote.
They also had no proper way to log staff hours. Contract staff needed paying. Good people deserved recognition. Others needed coaching. Without hours on jobs, they were stuck, and they reached out to see if something simpler could help.
Watching the shop floor
I went to the workshop and watched how jobs really move: from enquiry to quote, through repair and paint, to pickup. Then I mapped a small system around that path, nothing they would not already recognise.
One job card from start to finish
When work comes in, Budhdhini (admin) opens a job card. The quotation lives on the same card, not in a separate spreadsheet or another app.
As the job moves, the team uses a simple kanban board: New → In progress → Quality check → Ready to pickup → Picked up. Cards drag between columns. Picked-up jobs archive automatically after fourteen days, with an archived view when they need to look back.

Quote vs actual, so the next quote is smarter
On each job they still build the quote, labour lines, materials, other costs. As work happens, they log actual hours, services, materials, and spend.
The card shows estimate beside actual and the variance in dollars and percent. When a job runs over, they can see why, not months later, but while it still matters for the next similar repair.

They log time on the job for payroll: who worked, how many hours, at which rate. Each entry keeps its own rate snapshot, so later changes in settings do not rewrite history.

Labour rates and people, set once, used everywhere
Labour categories (remove and replace, repair and align, paint, and so on) carry the customer billing rates used on quotes.

Employees carry pay rates for workshop time. Contract staff and permanent team sit in the same simple list.

From there, payroll and labour reports show hours and pay by person, by day, or line by line, today, this week, this month, or a custom range. Paying contract staff and comparing who carries the load is no longer a guessing game.

Staff can log in and record hours on their assigned jobs, so the office is not the only place time gets captured.
Better for customers, not only for the workshop
When a card moves through stages, customers can see where their car is in the process, with less "is it ready yet?" pressure on the phone.
When a job hits Ready to pickup, they get an SMS. Admin spends less time on repeat status calls; customers get a clear, timely nudge.
That is the bar we held: customer obsession on the outside, honest numbers on the inside.
History when the same car comes back
They can search job history by rego, VIN, or customer name, one search across the lot. If a vehicle returns, they see what was done before. That was a main worry for the owners; before this, there was effectively no history to lean on.

A quick walkthrough of the board and a job card:
What we used
I took this from requirements through to delivery, time in the workshop, shaping the screens, and building something the team could run without a manual. That included UI/UX and the full build.
Under the hood:
- React frontend
- Supabase for the database
- .NET Core API
What changed
Owners and admin now have visibility across jobs, money on each repair, labour, and history. They can spot where quotes need tightening and where the business can grow.
Customers get smoother updates and fewer phone tags. Staff get fairer time tracking and a clearer link between effort and jobs.
It is the same pattern as replacing scattered records with one system that updates as you work. See Turn your spreadsheets into simple systems that update automatically. For a smaller workshop story in the same spirit, see From notebooks to job cards for a home sewing studio.
A focused build for a real shop, not a generic product, so Dinesh and Budhdhini can steer the business with data, not just gut feel.