Case Study: Building HandwashPro — Operations Software for Car Washes

HandwashPro car wash management software built by Digital Biz Agency

Most software for small operations is built by people who have never run one. It ends up being an accounting tool with a job list bolted on. HandwashPro went the other way: we started from how a hand car wash actually runs on a Saturday morning, and built the software around that.

The Problem

A car wash is a deceptively hard business to keep track of. Cars arrive without warning, several workers touch the same vehicle, services get added halfway through, and at the end of the day somebody has to work out what each person earned.

In practice that job gets done with a notebook, a WhatsApp group and a calculator. It works until it doesn’t. A wash gets logged twice, or not at all. A worker remembers three cars, the manager remembers two. Payouts get disputed at the worst possible moment — the end of a long shift, with cash in hand. And the moment an owner opens a second location, none of it scales: they now have two notebooks and no way to compare them.

The existing options weren’t much help either. Generic point-of-sale software handles the payment but knows nothing about who did the work. Payroll software handles the wages but knows nothing about the cars. Nothing joined the two ends of the same operation.

What We Built

HandwashPro is an operations dashboard shaped around the actual shift, not around an accounting period. Four things carry most of its weight:

  • Branch-based roles. Super Admin, Branch Admin, Manager and Worker, each seeing only what they need. A branch manager runs their location without seeing the numbers of the one across town.
  • Wash order tracking with photo documentation. Every order carries a record of what was done and by whom, with photos attached. When a customer disputes a scratch or a worker disputes a payout, there is something to look at instead of two conflicting memories.
  • Automatic daily payouts. The system calculates what each worker earned from the orders they actually completed. At closing time the number is already there — no spreadsheet, no arithmetic at the end of a twelve-hour day.
  • Multi-branch from day one. Not bolted on later. An owner with one location and an owner with ten use the same product, and the second location doesn’t require a second system.

There is also an audit trail behind all of it. Every change is attributable, which matters more than it sounds in a business where money moves in cash and staff turnover is high.

The Stack

The backend is Python with FastAPI, on PostgreSQL. The interface is built on Bootstrap 5 — deliberately conventional, because the people using this are managers and shift supervisors on a phone in a wet forecourt, not power users looking for a novel interface. Payments and subscription management run through Stripe. Cloudflare sits in front of the application, and the codebase lives in GitHub, which is also where deployments are triggered from.

The part that took the most thought is multi-tenancy. Each business runs in a fully isolated environment, so one operator’s data is never reachable from another’s session — and the permission model is enforced server-side on every request, not just reflected in what the interface chooses to render. That distinction is the whole ballgame in a product where a branch manager and a company owner use the same screens with very different rights.

The daily payout calculation was the other place worth slowing down. It has to be reproducible: the same set of orders must always produce the same numbers, and every figure must be traceable back to the specific work that generated it. Money that can’t be explained line by line is money that gets argued about.

The Result

HandwashPro is live at handwashpro.com, with a free tier for single-location operators and paid plans that scale by branches, employees and daily order volume.

What makes it a useful example of how we work is the narrowness. It doesn’t try to be software for every service business. It is software for hand car washes, and every decision — the roles, the photo records, the daily payout cycle — comes from that one context. A tool that fits one job properly beats a tool that almost fits ten.

Got a project like this in mind?

Tell us what you’re trying to build. We’ll come back with a scope, a timeline and a fixed price — no obligation.