Every fix made N times is the ceiling on the number of clients.
A small studio’s cost isn’t in building. It’s in maintaining.
A client site isn’t delivered. It’s maintained. What makes that possible isn’t the design: it’s that every decision leaves its why in writing, and every test has been broken on purpose at least once.
A natural-wine winery in Peñaranda de Duero with an online shop. But the real commission wasn’t a shop: it was the first of several. Whatever got decided here, the next clients would inherit.
That changes the problem. A website is built once. A system that websites hang from has to be changeable afterwards — with live clients inside, without visiting them one by one.
A small studio’s cost isn’t in building. It’s in maintaining.
Whoever buys wine — on a phone, at night, on bad coverage. And whoever runs the shop — no PHP, afraid to touch anything.
Improve something and it never reaches whoever already has it installed. Out of the box, nobody solves that.
Every improvement is paid N times and drifts. Six months in there’s no system: there are six different websites.
It hands control back and takes performance and coherence with it. The client doesn’t want to build. They want to sell wine.
It forces the split between system and brand up front — and building the distribution pipe before there was anyone to distribute to.
Grids, type, motion, the shop, the filters, the settings panel.
Its typography, its own pages, its copy.
Data, email, consent, metrics, site health.
of the code is never written again for the next client.
This is what almost nobody shows, and it is the heart of the case.
Stops it if wrongNo dated why → it’s an accident, not a decision.
Stops it if wrongStill green when broken → it tested nothing.
Stops it if wrongNotes written by a person — or no notes.
Stops it if wrongOnly what each site has contracted. Revoked → at once.
Stops it if wrongIts version is visible without logging in.
Each one only what it has contracted. Revoking is immediate. Three invisible problems solved: announcing a version, delivering only what’s contracted, revoking.
Every release carries notes written by hand, from their side — “the sales summary doesn’t slow down even with thousands of orders” — never generated from the history.
And site health checks of its own: the plugin warns, for instance, if a site’s error log can be downloaded from the internet.
The mobile 75 is dominated by the server — 1.16 s of waiting — not by the theme. It’s said here, not hidden.
“A passing test proves nothing until you’ve broken it.”
It comes from a real slip in this project: a test that stayed green while the code it guarded was gone. Since then, breaking it is a step, not a virtue.
Edge caching gets left to the end and moves the needle most: 1.16 s of waiting weighs more than 500 KB of CSS. Measure it on day one.
Name every folder after the thing it deploys from minute zero. Fixing it later meant moving 532 files.
Client photos don’t live in the theme. 24 MB of test material got into the folder that ships and took two weeks to leave.