- Role
- UX Engineer
- Timeline
- Feb – May 2020
- Impact
- 65K+ merchants
- Stack
- LiquidHTMLCSSJavaScript
Express is a single-page Shopify theme for food and beverage merchants. The entire storefront on one scroll, with one-click "Add to cart" and a persistent cart drawer.
From a hackathon to 65K+ merchant stores
In early 2020, restaurants everywhere were shutting their dining rooms and scrambling to take orders online. About a month into the pandemic, Shopify ran one of its regular Hack Days, and four of us in the Themes team spent just a bit over 36 hours building a theme aimed precisely at that moment. We called it Project Presto.
At the time, we were maintaining nine separate theme codebases, and sister teams were deep in the work to build what would eventually become Online Store 2.0 — JSON templates, sections everywhere, app blocks, etc. None of that had landed yet.
We decided to use this opportunity not only to help merchants who needed us, but also to experiment with our vision for the future of Shopify Themes. We picked a deliberately narrow brief: lean, ultra fast and accessible. A theme simple enough that merchants could set up the whole thing in an afternoon, with a clean architecture that any developer on the team could onboard quickly.
The target audience gave us the excuse to be laser focused on the most important parts: a pizza place doesn't need complex collection pages with filters, lots of different sections or even additional pages. So we left them out.
The core insight was that food and beverage commerce is menu-shaped. The menu is the catalog and the product page. You scroll, you tap the product, you quickly add it to cart, the cart drawer opens, you keep scrolling until you're ready to checkout.

Removing every page turned out to be a measurable win:
- No complex flow. One page, one scroll. The flow from "looking at the catalog" to "product is in cart" never breaks.
- Cart-first by default. A persistent cart drawer that follows the page meant adding "and a side of fries" stopped being a separate flow, allowing these themes to convert more and faster.
- Fast, by construction. With no second page to load, the only performance budget that mattered was contained within one HTML document. Easy to monitor and track possible downgrades in code review.

So we built the thing. By the weekend, we had a working prototype that we recorded a demo video for and shared in Slack. People started messaging us, asking if we would build the theme for real. Leadership loved it.
A few months later, we shipped Project Presto to the Theme Store as Express. By the end of 2020, 65,000+ food and beverage merchants worldwide were using it to take orders.

What I learned
Express was the first time I worked on a product at Shopify that went from prototype to production-ready in such a short amount of time.
The biggest lesson was that constraint is a feature, not a bug. We didn't have time, we didn't have all the new platform primitives. What we had was a very specific need — thousands of restaurant owners whose dining room had just closed — and a very specific target from a technical and business perspective. Every design and development question were made in aligment with these goals.
Sometimes, a small and opinionated mini project is a great place to test ideas before a much bigger one ships. While other teams were building the foundations of Online Store 2.0, Express became a quiet sandbox for the Themes team to experiment what a lean, fast and web-native with no third-party dependencies Shopify theme could be like.
Lighthouse green out of the box, nearing max scores. A lot of these principles like vanilla JS, web-components, progressive enhancements, and well-defined performance budgets helped us shape Dawn the following year.
Ultimately, Express was our first successful test for the future of Themes at Shopify.