Skip to content
Back

Dawn - Online Store 2.0

We redefined the architecture of a Shopify theme, and created a scalable family of themes based on it.

Mar 2026 · 6 min read · github.com

Role
Frontend Engineer
Timeline
2020 – 2023
Impact
3M+ merchants
Stack
LiquidHTMLCSSJavaScript

When I joined the Flaghsip Themes team at Shopify in 2019, our catalogue was very different from today's.

Our nine first-party theme codebases were each built by a different group of developers, each leaning on a different mix of third-party libraries, each with its own approach (or non-approach) to accessibility. Debut, the default, was the best of the lot, and still nowhere near where we wanted it to be.

These were the main five problems we had:

Dawn was our answer to all five at once.

With Dawn we we changed what a Theme is, rather than just building a new one.

Dawn's principles

As we started outlining the plan, we wrote the constraints down: the theme code principles — web-native, server-rendered, no jQuery, no framework, no build step, progressively enhanced, accessible by default.

This became the contract every PR was reviewed against, including community ones. They're still the contract today.

To enforce the web-native approach and ensure we made the best possible use of the latest web browsers functionality, we started building the Theme with NO JAVASCRIPT. Yes, the first phase of the project was purely HTML/CSS/Liquid with no custom scripts.

On the Second Phase, we enhanced the baseline by adding the minimal amount of JavaScript to get that functionality there. In code reviews, we were encouraged to challenge the need for custom JS solutions and question every single line of code we were adding.

Ultimately, Dawn's principles held the line on our performance budget and helped us keep review velocity high across a (soon to be) public repo.

Dawn's product page with imagery, variant picker, quantity selector, and buy buttons.
The Dawn product page — the section I led end-to-end, including the quick buy flow.

A design system flexible enough to be other themes

The next phase of the project was extending customizeability and adding some polish to it.

This turned out to be one of the most interesting design problems on this project.

The Theme Editor experience allows for heavy customizeability.

When Merchants create their Shopify store, they want their brand to shine, not ours. We built Dawn around a very flexible design system rather than a fixed look.

Every key visual choice is configurable: radius, spacing, color, type, motion, shadow, and positioning all adapt to the merchant’s brand instead of forcing a fixed aesthetic.

I personally spent a lot of time pairing with designers on this — turning their decisions into configs that wouldn't collapse under the vast amount of merchant choice. Every combination had to still look intentional and polished, no matter which dials a merchant moved.

Then we realized something: if our design system is so flexible, we can carefully craft some default presets to cover a wide range of industries.

The Dawn family

The next step was turning these default presets into a family of themes. Using Dawn as the baseline. Each one keeping its underlying code structure but layering in a distinct visual language using the customization options we had just built.

A grid of the Dawn-derived themes — Crave, Colorblock, Taste, Ride, Origin, Sense, Refresh, Studio, Craft — each with its own visual language.

In 2022, we shipped 10+ new themes based off Dawn: Crave, Colorblock, Taste, Ride, Origin, Sense, Refresh, Studio and Craft.

All of them share the same codebase. We just wire up some different presets and the theme is ready.

For us, this allows us to offer a broad catalogue of themes without the constraints of maintaining multiple codebases we had before Online Store 2.0.

For merchants, because they share the same codebase, they can easily switch between any of our themes and keep their configuration; only the visual layer changes. A merchant moving from Sense to Studio keeps their hero, their featured collection, their FAQ accordion.

How I contributed

I've speant almost three years working on Dawn and made some relevant contributions to it:

What Dawn became

Dawn shipped not only as the default theme for any Shopify merchant, but it also became the reference theme for Online Store 2.0 — the architecture overhaul that finally landed sections everywhere, along with JSON templates, app blocks, and section groups across the whole ecosystem.

Dawn became the architectural baseline that hundreds of third-party theme developers used as a foundation for their own work, and it redefined the baseline for what a great theme looks and feels like.

Over 3 millions of Shopify merchants run Dawn or a Dawn-derived theme today, and the principles we wrote down in 2020 are still the contract for every PR that lands. The open-source code lives at Shopify/dawn.