Case study · Automotive
A 164-page site, cut to nine.
Ernie's Custom Shop had 164 pages, 9,102 vendor parts nobody searched for, two lead forms nobody filled in, and an outage that ran for eight days because the domain pointed at a server we had already retired. We rebuilt it as nine static pages on infrastructure where a rollback is one command, and wrote the diagnostic down so the outage cannot happen quietly again.
Built right, and kept running, on the same site. The rebuild is the entry product; catching the outage is the retainer.
The numbers
What changed.
- Pages
- 164 → 9
- Vendor parts removed from the index
- 9,102
- Pages shipping zero JavaScript
- 7 of 9
- Time to first byte
- 141 ms
- Rollback
- One command, no rebuild
- Outage found and closed
- 8 days
Measured 2026-07-30 against production. Traffic and call figures are deliberately absent: the analytics and call tracking only started reporting on the rebuilt site this month, and we will publish those numbers when there is a full period behind them.
The situation
The site had grown by accretion. A vendor catalog import put 9,102 parts online. Every service got a landing page, every build got a detail page, every town in the service area got a hub. None of it was wrong on its own. All of it was unmaintained, and the two things a customer actually came for, the hours and the phone number, sat four clicks deep.
A shop that quotes every job over the phone had two lead forms feeding a queue nobody checked. The pages existed to be complete, not to be used.
What we found before we built anything
The site was serving a 503 holding page to every visitor and to Googlebot, and had been for eight days.
Everything we could see on the server said it was fine. The release was published. Maintenance mode was off. The health check answered 200. The container was up.
The domain was the problem. The apex hostname was still an ingress rule on a Cloudflare tunnel we had retired, pointing at an old host that was serving a two-week-old holding page. Nothing on the live server was in the request path at all, which is why nothing on the live server looked broken.
The tell is now written into the repo README so the next person finds it in a minute instead of a week: while the site is being requested, the tunnel log shows nothing. A 503 from your own server appears in your own logs. A 503 from somewhere else cannot.
What we built
Nine HTML files. Home, services, gallery, contact, four legal pages, and a 404.
There is no form anywhere on the site. Every call to action is the phone, a text, or the contact page, because that is how the shop actually takes work.
Seven of the nine pages ship no JavaScript at all. The two that do carry one React island each: the gallery lightbox, and a live open-or-closed badge that reads the shop's clock in Central time rather than the visitor's.
How it runs now
A release is published into a dated directory and a symlink is moved. A rollback is the same move against yesterday's directory. A maintenance page is the same move against a holding directory. Seconds, no rebuild, no registry, nothing to pull.
It was not always that. Maintenance mode used to be a line in a Dockerfile, which meant coming back out of it required a build, a tag, and a server that could reach the internet to fetch the result. Once, the server could not. That is the mechanism behind the eight days.
What we removed on purpose
The catalog, the forms, the per-town pages and the rest are in git history, not in a backup nobody can find. Putting one back is reading the commit that took it out.
This is a floor, not a ceiling. The parts catalog is coming back when there is a reason for it to exist, in slices, rather than as 9,102 pages that arrived in one import and were never looked at again.
The copy has a standard
Every page is written against a checked-in voice document with a list of roughly sixty phrases that are not allowed on the site. No elevate your ride. No one-stop shop. No take your build to the next level.
The rule underneath the list: delete every sentence that would be equally true of any other off-road shop, then replace the vague benefit with a fact, a process, a specification, a limitation, or an action. It is a shorter site than it was, and every line of it is about this shop.
Where it starts
Show us where the growth is stuck.
Point us at the problem. We'll assess the whole picture, propose a practical next step, and follow up with a recommendation you can move on.
Work with usNot sure yet? Ask for a free digital audit
Prefer to talk? (847) 496-0013 · or email [email protected]