I wanted to understand the whole stack a store runs on — not the marketing layer, the actual one. So I built a Shopify theme from an empty directory: the section schema, the Liquid templates, the cart logic, the checkout hand-off. All of it, by hand.

It’s the kind of thing you can’t really learn from a slide. You feel every decision — where the data lives, what renders on the server, what has to wait for the client, and exactly how much of a page’s weight is stuff nobody asked for.

The rule: nothing the page doesn’t need

I gave myself one constraint — a strict performance budget — and let it settle every argument. Every script, font and image had to earn its place against the load time. It’s remarkable how much of a “normal” store turns out to be optional once you make speed non-negotiable.

Fast is a feature you have to defend on every commit.

Why bother, as a PM?

Because I make sharper calls when I’ve felt the trade-offs myself. Knowing what’s cheap and what’s expensive on a storefront changes how I scope, how I estimate, and how much I trust an “it’s basically free” in a planning meeting. Building the thing is still the best way I know to understand it.