Is it fast?
Run this URL through Google's own tool. Read the mobile number first — desktop flatters everything — then read Largest Contentful Paint underneath it.
Run PageSpeed InsightsJudged against Core Web Vitals , published by Google.
I build and rebuild Shopify themes for DTC brands that have outgrown their theme, and for agencies who need senior implementation they can put their name on.
Everything on this site is a claim until you check it. This is not — it is a live page, and the standards it is built to are published by other people.
Run this URL through Google's own tool. Read the mobile number first — desktop flatters everything — then read Largest Contentful Paint underneath it.
Run PageSpeed InsightsJudged against Core Web Vitals , published by Google.
Run the automated third of it. Then do the part tools can't: put the mouse away and press Tab from the top. You should always see where you are, reach every control, and get out of anything you get into.
Run the WAVE checkerJudged against WCAG 2.1 AA , published by the W3C.
View source. The words are in the HTML, not assembled by JavaScript after the fact. Turn JavaScript off and the whole site still reads.
Ctrl+U — or right-click, View Page Source
Two checks on my own list. I would rather you found it than took it from me.
And here is what those tools say about this page right now. Read at build time — not typed, not a screenshot. If they get worse, they get worse here.
Measured on this page, 2026-09-12, with Lighthouse 13.4.1 (median of 3 runs, by LCP). Re-measured on every deploy. The accessibility row is label-content-name-mismatch.
A fast, accessible marketing site is a small thing next to a Shopify store with a catalogue, an app stack and a checkout. It shows I hold the standard where I control everything. It does not show what happens under commercial pressure on someone else's platform — and two of the checks can't run here at all, because there is no checkout on this page and no Liquid to profile. Which two, and why →
Every build goes through the same list before it ships. Not "looks good to me" — a written list, because I learned the hard way that you miss things otherwise.
Whether the theme can absorb a new section without a developer rewriting a template.
Whether the person who owns the store can change its content without a developer.
Whether the store is fast on the pages that carry real content, measured in numbers rather than impressions.
Whether accessibility is a measured state or a stated value.
Whether the handover is a document or a phone number.
Whether anyone costed the apps before installing them.
Whether testing is a defined stage or an afternoon.
Whether the riskiest thirty days are scoped or improvised.
Whether the exit exists, whether or not you use it.
Whether the checkout completes, not merely renders.
Needs a live store — this page cannot demonstrate it.
Whether the paths that carry money were walked or assumed.
Needs a live store — this page cannot demonstrate it.
Whether the tested browsers match the ones in your analytics.
Whether Liquid, scripts and third-party code delay the content the shopper actually came for.
Needs a live store — this page cannot demonstrate it.
The thresholds themselves — the specific numbers each check has to clear, and how I fix what fails — stay mine. The framework is public; the settings aren't.
If you run the store
$299 · credited against the work
Send me the URL and what's going wrong. I run the checks against it and tell you what I find, what it's costing you, and what it would take to fix — whether or not that's me.
Request the auditIf you place developers for clients
Free · one email
It's how to tell whether a Shopify developer knows what they're doing, written so you can run it on anyone — including me. Your client never has to know I exist.
Get the standardA DTC brand doing about $3M a year had a heavily customised premium theme that had stopped being maintainable — every platform update broke something, and checkout was losing 30% on mobile. I rebuilt the theme from scratch. Mobile load went from 8 seconds to under 2, conversion rate improved 22% in the first month, and bounce dropped 15%.
What the checks found →That is one store, one rebuild, one month of data, and the traffic mix in that month was not controlled for. A different store with different problems will move differently, or not at all.
Results vary.
A brand's design, built properly in Shopify — performance and conversion decisions made during the build, not retrofitted after it.
For stores that have outgrown a customised premium theme and are paying for it every time the platform updates.
Speed audits and the implementation that follows. Sometimes scoped hourly, because it is genuinely hard to price until I'm in the code.
Fixing the things on the path to checkout that are costing you sales.
The part that lives in the theme — structure, crawlability, the things a marketing agency hands over and nobody implements.
Built to convert a specific campaign, on the same theme rather than bolted alongside it.
You bring the project, I handle the technical implementation, your client never knows I exist unless you want them to.
I don't do branding, I don't do photography, and I don't do marketing sites that aren't stores. If a project needs those, you want someone else for that part — I'd rather say so now.
I take two to three projects at a time, because past that the quality of the checks above starts slipping. Right now I have room for one new project starting within the next month.
If the deciding question is the rate, we'll both waste the call. There are developers who will do it for a fraction of what I charge, and for some stores that is genuinely the right call.
If you want the work done exactly as specified, without discussion — I'll ask why, and sometimes I'll tell you the request will cost you conversions. Some people want a builder. That's a fair thing to want.
If you're an agency who needs to mark me up to make the numbers work — my rate is standing, not quoted per project, so there's no spread in it. That's deliberate, and it means the margin has to come from somewhere else.