Case 03 · BespokeIn progress · invented brands
A theme from a blank page.
I am building my own process for Shopify themes from a blank page: agents build, checks prove, and each run teaches the next.
- Starter theme
- None
- Staging
- On my machine
- Price check
- Every theme
- Assembled theme
- 69 pages green
- Card rebuilds
- 13 of 14
The process, step by step
One miss became a check on every theme.
A front panel of three modules joined by patch cables: me, a local storefront running on my machine, and a store. My brief for an invented brand fills in: three colours, the type, a few lines, and travels to the storefront, whose page screen is blank. Agents draw a product page part by part; the header, gallery, variants and footer cards in the library light as the same parts go in. Four checks light blue: all pass. Yet the price on the page reads £0.00, in red. A fifth check pops in, the price check: with the bug put back it fails, 23 of 40, then it passes. I press my V key; the theme travels to the store, its home tiles unfold, the same page appears, and the preview lamp lights.
The ask
A bespoke theme is built for one brand: no Dawn, no other starter theme, no copied theme code. I am building my own process for making one, and I rehearse it on invented brands, among them a rope maker and a bookbinder, before I offer it to a merchant.
Each theme had to carry its brand's colours and type in its settings, with nine page templates, sections a merchant can edit, and a cart that adds, changes, removes and reaches checkout.
How it runs
The agents build on lsf, local-storefront, a package published by 0xtlt. It renders a Shopify theme on my machine from the store's data, written as files. It needs no store, no login and no token, and it gives the same page on every run.
That makes it a free staging environment. It is faster, since a page takes milliseconds instead of a trip to Shopify, and secure, since it answers only on my machine. The checks run on every change, including the cart, accessibility and phone widths, which the password-protected store preview could not run unattended.
Because the work already runs as a theme, shipping it to a store is one step. What lsf cannot show (apps, the theme editor, the real checkout) still gets an unpublished preview on a store.
Overnight, agents also build the parts a theme is made of, such as a header, filters, a gallery and a cart drawer, and write each one up as a card another agent can rebuild it from. Those cards are the start of a library.
How it is proved
A theme goes through a gate before anyone looks at it: a fixed run of checks, and every one must pass.
- Shopify's theme check.
- Every page rendered with no Liquid error.
- Every price on the page compared with the store's data.
- No tap target under 44 px and no sideways scroll, at 1440, 390 and 360 px wide.
- Accessibility, with every menu, drawer and dialog opened.
The gate seals its result, so an agent cannot claim a pass it did not get. Then a fresh reviewing agent looks and the builder fixes: on the second theme, 22 defects, then 11, then 7, each round fixed in full.
Ten components built this way were assembled into one theme. It passed every check on 69 pages, and three reviewing agents, shown the pages blind, preferred it on all six views to the same base theme with only a header added.
What it learns, and where it goes
The first theme showed a price as £0.00, and every check passed it: a Liquid filter applied in the wrong order, invisible to theme check and to lsf's strict mode. Only a look at the page caught it.
The next run wrote a check that compares every price on the page with the store's data, and proved it: with the bug put back, 23 of 40 prices failed; restored, all 40 passed. It now runs on every theme.
That is how the process learns. Each run is graded, and the next is checked for the lessons it was given. Over four runs, rebuilding a component from its card alone went from two a run to all fourteen, and 13 of the 14 behaved like the originals.
From here it is a plan, not a result: experiments and research that improve the process itself, each one held against real work from real asks. The reviewers now mark the brand's identity as the weakest part, so that is where the next gain lies.
The aim: features and entire stores from scratch, real sites rebuilt with the same feel and better code, a library of components that adapt to any brand, and a new identity I can propose to a merchant as a rebrand.
This site went through the same process. Agents built five versions and an agent compared them blind; I picked between real renders of each section; a phone check ran at 360 px; and nothing was kept without my look.
Bring me your next change.
My first reply is questions, not a quote.