Case 06 / 06Design systemWordPressWooCommerceDesign engineering

One framework. Three brands. One way to ship.

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.

Junciera Jiné · how one change shipsMeasure → change → break it → it falls → restore
Measured · productionPassFail · expectedPass · proven
1.85:13.08:11.85:13.08:1
Worst case on the running site — not read from the code.Changed, measured again. Green. That proves nothing yet.Broken on purpose. It falls — so the test is real.Restored. Now it counts.
1 of 2,450 checks · 85 test filesContrast · headline over photo · threshold 3:1
Client
Junciera Jiné
Scope
Design system · theme · plugin · distribution channel
01 — Challenge

The brief was a wine shop. The job was the first of many.

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.

02 — Diagnosis

Building isn’t the cost. Maintaining is.

Business

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.

User

Two users, and nobody separates them.

Whoever buys wine — on a phone, at night, on bad coverage. And whoever runs the shop — no PHP, afraid to touch anything.

System

In WordPress, the client’s theme freezes.

Improve something and it never reaches whoever already has it installed. Out of the box, nobody solves that.

03 — Decision

The opposite of comfortable: decide what belongs to the system before writing anything.

Ruled out

A custom theme per client

Every improvement is paid N times and drifts. Six months in there’s no system: there are six different websites.

Ruled out

A visual page builder

It hands control back and takes performance and coherence with it. The client doesn’t want to build. They want to sell wine.

Committed to

A parent framework, one child per client, and our own update channel

It forces the split between system and brand up front — and building the distribution pipe before there was anyone to distribute to.

04 — System

Three layers. The brand is the smallest one.

91%

of the code is never written again for the next client.

The principles that actually govern the code

01The why lives above the code.A decision without a dated comment isn’t a decision — it’s an accident. 542 dated blocks in the code today.
02If it hasn’t been broken on purpose, it isn’t tested.Every new test is broken by changing the code, checked to fail, and restored.
03Measure on the system that runs.Nothing is good because the code reads well. No measurement, no claim.
04What the panel decides isn’t written in code.A hand-written list is a decision stolen from whoever uses the site.
05Silence beats “various improvements”.The release notes a client reads are written by a person.
06The folder is named after the thing.A second name to remember costs afternoons.
05 — The scale problem

A decision isn’t finished until it reaches a site nobody logs into.

This is what almost nobody shows, and it is the heart of the case.

Distribution

Sites receive new versions by themselves.

Each one only what it has contracted. Revoking is immediate. Three invisible problems solved: announcing a version, delivering only what’s contracted, revoking.

Adoption

A client won’t update if they don’t know what they gain.

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.

Measurement

Which version runs on each site, without logging into any.

And site health checks of its own: the plugin warns, for instance, if a site’s error log can be downloaded from the internet.

06 — Results

Engineering numbers don’t replace business ones. Both go here.

Automated checks · 85 test files2,450Every one broken on purpose at least once. Measured 19–21 Oct 2026.
Measured on the running systemStartNow
Stylesheet served (gzip)173,743 B51,279 B
Client theme package (24 MB were test photos)29 MB1,218 KB
Third-party requests per page (2 returned errors)60
Headline over photo, worst case1.85:13.08:1

Before / after · screenshots in Spanish, as shipped

Home · mobile 375 · before
Copy in a blurred box ending at 316 px of 375.
Home · mobile 375 · after
On the veiled photo, aligned with the page.
Update card · before
“Plugin not found”.
Update card · after
What it is, which version, what changes.

Lighthouse · performance / accessibility / best practices / SEO

Desktop9092100100 Mobile75100100100

The mobile 75 is dominated by the server — 1.16 s of waiting — not by the theme. It’s said here, not hidden.

07 — Reflection

The method is the deliverable. The site is its first proof.

“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.

What I’d do differently

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.

Next case · 01 / 06 Vocento 13 brands, one conversion architecture

Projects

Open feed ↗
  1. 01 Vocento Case
  2. 02 CCN-CERT · ANA Case
  3. 03 Abhir · album launch Web
  4. 04 ULTRASWAN · wallpaper generator Case
  5. 05 Le Toy Factory Brand
  6. 06 Rusia IDK Editorial
  7. 07 Junciera Jiné Case
  8. 08 Sidertia Case
Me · Madrid—
You · ——

Open to new projects Product design, engineering and sound — end to end. Madrid · remote · hybrid · select projects
On rotation · 01 / 04 0:00 / 0:00
The beginning of the beginning Sam Gold

Contact

Book a call ↗
Start a conversation in