You can use the part a customer uses. Open a real estimate and approve or reject it. No login, no app, just a link, which is exactly what the customer gets by text. The same car has a customer portal, and here is the gate pass the security desk sees at handover. This runs the real product against a demo garage of invented people, so approve away: no real customer, no real money.
A second UI shipped this month: softer, faster, and already at the counter. The eight screenshots below are captured from the live build, and the estimate above is the real thing, not a picture of it.
PitStop
Garage management for Indian workshops. Intake to GST invoice, built for a service advisor with oily hands and a queue at the counter.
- Status
- Building, live at a working garage
- Try it
- Approve an estimate
- Stack
- Next.js, Postgres, Supabase, PWA
- Markets
- India GST and US sales tax, same product
- Role
- Everything. Product, design, build, rollout
An Indian workshop runs on a paper diary, WhatsApp forwards and the owner’s memory. Estimates get argued at the counter, the customer cannot see what they are paying for, and the GST invoice comes from a typist shop two streets away. Software for garages exists, but it is built for dealership chains with a back office, not for one owner running the floor from a phone.
PitStop covers the full loop of a repair: intake, job card, mechanic assignment, customer approval, GST invoice, payment. Nothing more, and every screen assumes a phone, a hurry and grease.
The Flowone car, end to end
Intake
A phone number finds the customer, the vehicle and everything the shop has done to it before.
Job Card
Line items, part tiers, old parts marked for return, and a mechanic on every card.
Estimate
A tokenised link goes to the customer. No app, no login, 256 bits of randomness.
Approval
They approve on their phone. The amount cap is re-checked in a database trigger, not the UI.
Invoice
Gapless serial. Place of supply decides CGST and SGST or IGST, rate-wise, never averaged.
Payment
A UPI QR on the bill. Money lands in the garage's own account and the owner marks it collected.
The owner runs the floor from a phone, with oily hands and a queue at the counter.The person every screen is built around
What It Doesintake to invoice, nothing more
Job Cards, Intake to Gate Pass
Eight statuses from received to delivered, a mechanic on every card, and a chase list that surfaces whatever is stuck so the owner does not have to remember.
Customer Approval by Link
The customer gets a link, not an app. They see every line with a price and approve or decline from their own phone. The link is the credential, and it is built to be safe in hostile hands.
GST Invoicing Done Properly
CGST and SGST or IGST, decided by place of supply, rate wise summaries, gapless invoice serials and the amount in words. The tax document is correct, not approximately correct.
UPI on the Invoice
A QR on every invoice sends money straight into the garage’s own bank account. No gateway, no KYC paperwork, no cut. The owner watches it land in their banking app and marks it collected.
Old Parts Returned
The scrap goes back to the customer and the job card records it. A small feature, but it is the difference between a garage a customer trusts and one they don’t.
Workshop Chat with Voice Notes
Every job card is a thread tied to a vehicle. Mechanics send voice notes instead of typing, broadcasts reach the whole floor, and delivered cars leave the inbox on their own.
Purchase Requests with Guardrails
Anyone can ask for a part. The owner approves with an amount cap, a supplier and an expiry, and the system re-checks all three at ordering time. Trust, but verified in a trigger.
Reads the Bills Customers Bring In
A customer photographs an old bill from any garage. PitStop reads it once, and when that car comes back the mechanic sees prior work matched against the new complaint. Pads three weeks ago is a comeback. Pads three years ago is wear.
Two Markets, One Product
A single flag switches a garage between Indian GST and US sales tax, and it reaches all the way down: the maths, the invoice serials, the currency, the dates, even whether the odometer is in kilometers or miles.
Installs from the Browser
A PWA with an offline shell, not an app store listing. Zoom is deliberately left on, because a mechanic reading a part number in bad light needs to pinch.
Screenssmall screens, oily thumbs








The Deliberate Cutwhat I chose not to build
A UPI QR on the invoice
over integrating a payment gateway
A gateway needs a merchant account, company KYC and a bank account before a single rupee can move. The QR puts money in the garage's own account today. The owner watches it land in their banking app and marks it collected. Ninety percent of the value, none of the paperwork, and no reconciliation promise the product cannot keep.
A content-free realtime signal
over publishing message rows to subscribers
The obvious design puts message bodies on the wire and trusts row security to filter them. It failed its own probe: a member of a private thread heard nothing while broadcasts worked. One table carrying only a topic and a tenant now signals that something changed, and the server re-reads under the same policy that guards every other query.
SQL matching on customer bills
over letting a model read and act on them
Customers photograph bills from other garages. A model reads each one once, into a table. Nothing it extracts is ever trusted or acted on, and the matcher that surfaces prior work is plain SQL, so nothing written on a photographed page can steer the system.
A PWA that installs from the browser
over native apps in two stores
One codebase, an offline shell, and no review queue between a fix and the counter. Pinch zoom is deliberately left on, because a mechanic reading a part number in bad light needs to zoom, and a tidier layout is not worth taking that away.
What Isn’t Built Yetthe honest list
WhatsApp messaging needs Meta Business verification, DLT registration and template approval. The code is the small part.
There is no automatic payment reconciliation. UPI collection does not confirm payment, and the product never claims it does.
Bill reading has storage, policy and matching under test, but extraction has never run against a real upload in production.
Barcode scanning is buildable and specified. A camera cannot be exercised in a sandbox, so it waits for the floor.
Why It Is Built This Waythe counter decides
The Phone Is the Office
The owner runs the shop from a phone at the counter. Every feature is designed there first, and the desktop version is the afterthought.
UPI Without a Gateway
A payment gateway needs merchant KYC and takes a cut. A UPI QR needs neither. Ninety percent of the value for none of the paperwork.
Why the Scrap Goes Back
Old parts returned, every line priced before work starts, an invoice that stands up to a tax officer. The software just makes honesty the cheap option.
Field Noteone decision, documented
A job card that closes without an argument at the counter.The north star
Ask Me Anything.
Happy to walk through the product, the multi-tenant design or what a real garage taught me about software.
venkatesh@venkateshgardas.com