We Build the Desk Your Shop Actually Runs On
Not a seat you rent. A system built around the way your business takes the call, quotes the work, gets the yes and gets paid. We run our own auto shop on one. We have built five more for other people.
Our own shop's desk. Real software, invented customers.
Read the Part You Came For
This page is long because the question is. Jump to the part that is costing you money and skip the rest.
A Safe Does Not Have a License Plate
Shop software is written for one trade and sold to twelve. Underneath, it believes a job hangs off a car. So it asks for a plate or a VIN before it will let the work close.
A locksmith rekeys a cafe door. There is no plate. A safe has no VIN. On off the shelf software that is not an inconvenience, it is a shop that cannot close its own jobs.
In the system we build, one line decides this. It is set per trade. For a locksmith the answer is no, and a lock gets identified by its keyway, its brand or the line the technician wrote instead.
hasPlate: false, trimLabel: "Keyway", // KW1, SC1 - it decides what blanks the van carries colourLabel: "Finish", thing: "lock", // not "vehicle", not "property", not "site"
src/domain/trade.ts, the locksmith row
That is what a custom CRM is. Not a nicer color scheme on the same assumptions. The assumptions themselves, written for your trade.
Three Ways Bought Software Stops Working
It Does Not Know Your Words
Your screens say vehicle when you fix doors. Your technician looks for a field that is not there and writes it in the notes, so nobody can ever search it again. The words on a screen are not decoration. They decide what gets recorded and what gets lost.
You Pay Forever and Own Nothing
Per seat, per month, priced on how many people you hired. Texting is an upgrade. The data is theirs and the export is a spreadsheet. Five years in you have paid for a system twice over and you cannot take it with you.
The One Thing That Makes You Money Is the Thing It Will Not Do
Every shop has one. The pre purchase inspection. The two level master key. The fleet account billed monthly. It is the reason customers pick you, and it is the thing you are doing in a notebook because the software has no room for it.
One Line, From the Phone Ringing to the Money In
Every business that runs on jobs has the same railway underneath it. The trades differ. The line does not.

The call
A call comes in and nobody picks up. The desk texts back before they have finished dialing your competitor.
The lead
Name, number, address, what is wrong. Landed on a board, attributed to the site or the ad that earned it.
The quote
Priced off your own rates. Sent as one page the customer reads on a phone.
The yes
One signature that agrees the price and gives permission to do the work. Asking twice is how a job ends up half approved.
The day
On a board with a real date. An approval is not a booking, because the bay still has to be free.
The work
Photographed as it happens. The inspection, the part number, the before and after.
The money
Invoiced from the lines already on the job. Paid by card, and the payment is what closes it.
Any one of those steps can be the whole reason you are losing money, and it is never the same step twice.
Open It With a Coffee. See Every Job That Is Stuck.
A shop does not lose money in one place. It loses it in five, and every one of them looks fine on its own. A quote nobody chased. A yes nobody put a date on. Work that finished and never got billed.
So the front screen is the funnel laid out left to right, and each column is one of those five. The number on a column is how many, and the money under it is how much. If a column is empty it is because that pile is clear, not because the screen has nothing to show.
Five columns, and four of them are money that has already been earned and not collected.

Your Rate, and What Your Own Counter Has on the Shelf
Pricing is where bought software gets the furthest from a real shop. It assumes one labor rate, it has no opinion about where a part comes from, and it will happily let a quote go out under the floor you set.
This one holds the rate the shop charges, warns when a line drops below it, and when a part is typed in it asks the three counters the shop actually buys from. Local first, in the order the shop ranked them, with what the public pays next to it so nobody guesses at a markup.
The cheapest part online is not the part that gets the car out of the bay today.

One Link, One Signature, and the Work Can Start
Asking twice is how a job ends up half approved. One person on the phone hears a yes, another reads the notes and asks again, and the customer decides you are not organized.
So there is one link and one signature. The customer opens their own page, reads the breakdown, and signs the price and the permission in the same act. Until they do, the job says out loud that it is not ready to start.
It sends by text or by email, and it will not send at all until somebody has agreed a time or ticked to say they have not. An approval is not a booking, because the bay still has to be free.
The signature is what makes it enforceable. Everything before it is a conversation.

The Job Card Lives in a Pocket
Almost nobody doing the work is at a desk. They are under a hood, in a driveway, or holding a phone in one hand. If the job card is a screen that only works on a laptop, the notes get written on paper and typed in at six, which means they get written badly or not at all.
So the job card is built for the phone first. What to do next, in order, with the things already done ticked off. The address opens in maps. On My Way texts the customer. The photograph goes on the job from the camera, not from an email somebody sends themselves.
A field that a technician cannot reach with a thumb is a field that stays empty.

Billed From the Lines That Are Already on the Job
An invoice should not be a second piece of typing. Every line on it was written when the work was quoted or when it was done, so the bill is the job read back rather than a new document somebody keys in at the end of the week.
It goes out as a link the customer can pay from. The payment is what closes the job, not somebody remembering to mark it closed, because the one thing nobody forgets to do is take the money.
Finished and unbilled is the most expensive pile in any shop, and it is the one nobody has a screen for.

Every Enquiry, and What Happened to It
A missed call at six in the evening is a job somebody else does by eight in the morning. The answer is not an answering machine. It is a text back, under your number, before they have finished dialing the next shop.
Then it has to land somewhere a person will see it. Not in one employee's phone. On a board, with where it came from written on it, so at the end of the month you know which of the things you pay for actually brought work in.
An enquiry nobody can account for is an advertising budget nobody can defend.

What Happens Between a Missed Call and a Text Back
This runs in every stack above. Only the boxes change. It is worth reading once because the money is in the timing, not the technology.
A call comes in and nobody picks up
The tracking number records it. The number itself is the attribution, so you know whether the caller came from your site, a map listing or an ad.
A poller notices, or a webhook fires
Either the provider tells us, or we ask every minute. Asking is less elegant and it is the one that still works when their webhook is down.
The system checks who this is
Matched on a phone number stored one way, in one place. Doing that five different ways is how one person becomes four customers.
It decides whether to answer at all
Is it inside your hours. Have we already texted them today. Is a real person already replying in that thread. Has this customer asked us to stop.
The text goes out
Under your number, in your words, saying something a human would say. Forty four seconds is the target, because the caller is still deciding.
The reply lands on a board
Not in somebody's personal phone. In the shop's book, where the next person on shift can see it.
Every one of those six steps is a place we have seen a shop lose a job. The fourth is the one that gets built last and matters most, because software that texts a customer at eleven at night costs you the customer it was trying to catch.
Six Businesses, Three Trades, One System
We did not build a product and go looking for trades to sell it to. We built a desk for our own shop, and then each new business broke it in a way that taught us what a trade really is.




Every screen below is a real desk. Every customer, job and price in the pictures is invented.
Read From the Database, on 15 September 2026
Every number on this site carries the day it was read. A number with no date is one nobody can check.
jobs run through the desk we built for our own shop
technicians working on it across nine states
calls and texts it handled in the first half of September
trades it has its own vocabulary for, from cars to safes
Four Stacks We Build On
There is no best stack. There is one that fits the size of the business, what it can spend a month, and how strange its work is.
The Full Build
What our own shop runs on. A business with real volume, work that no product on the market models correctly, and a reason to own the thing outright.
$20 to $80 a month to run, plus texting and card fees on what you use.
Static Front, Managed Back
The one most small shops should start on. A business that needs a real database and real logins, and does not yet need a server of its own.
$0 to $25 a month until you are past the free tiers.
Assembled From Tools
Live this week, and it has a ceiling. A business that needs something working on Friday, or one testing whether a process is even right before paying to build it.
$50 to $400 a month, and it climbs with every person you hire.
The Framework Build
When the public site and the app are one thing. A business whose marketing site, customer portal and internal tool should be a single product, or one that expects to hire developers.
$20 to $150 a month at small scale, more once traffic is real.
What You Own When It Is Done
The source code
In a repository in your name. Not a license to use it. The code.
The database
Yours, exportable, and it is a normal Postgres database that any developer in the world can read.
The accounts
The texting, the call tracking, the payment gateway and the hosting are opened in your business name, paid by you, from the start.
The relationship
We would like to keep running it for you. That should be because we are good at it, not because leaving is painful.
Two Things We Will Not Pretend
Repair data is a subscription you hold, not something we can include
The big labor time and wiring diagram libraries have no door we are allowed to walk through on your behalf. We can put a button in your screen that opens your account. We cannot sell you their data inside ours, and anybody who says they can is either wrong or reselling you a login.
Taking cards on day one is a conversation with a bank, not a checkbox
A payment gateway account is underwritten, in your business name, and it takes as long as it takes. We build the money side so it is ready. The account is yours to open and we will help you open it.
Asked Before Anybody Signs Anything
What does a custom CRM cost?
Can you just fix the software we already have?
How long before we can stop using our old system?
What happens to the customers and history we already have?
Do we have to change how we work?
Tell Us What Your Shop Does That the Software Will Not
That one thing is usually the whole conversation. Write it in a sentence and we will tell you honestly whether it needs a custom build or a better setup of something you already pay for.
Every screen on this site is a real desk we built, photographed with invented customers.