Themes
Custom Shopify themes
Themes written from scratch or rewritten on top of a paid one, with sections and blocks your team uses without calling me. The real deliverable is not the design: it is that you can build a new page next Tuesday.
What makes the difference two years later
Two themes can look identical on delivery day. On one, the client builds a landing page in twenty minutes; on the other, they ask for a quote every time they want to change a line of copy. The difference is in how the sections and blocks were split, and that does not show in the mockup.
My rule: one section per page intention, not per row of the design. Three text-and-image bands that differ only in which side the photo is on are one section with a setting, not three sections. And the other way round: one section with forty settings nobody understands is split just as badly.
What is always included
- Sections with sensible defaults, which look right before anything is configured.
- Capped blocks, because a carousel that accepts thirty blocks will end up with thirty.
- Copy in the settings, not in the code, and names in your team’s language.
- Images with declared dimensions and the main one loaded early, which is half of performance.
- Whatever repeats across pages in metaobjects: the client edits it once and it changes on 200 product pages.
Performance from the start
A fast theme is not achieved by optimising at the end. It is achieved by not introducing the problem: not loading the main image inside a carousel that boots with JavaScript, not walking entire collections in Liquid to calculate something that fits in a metafield, and not repainting the cart by hand when you can ask for the rendered section.
In projects there are three themes built this way, and on the code page are this site’s own numbers, measured against the deployed site.