Most agencies will tell you headless Shopify means Hydrogen. That answer serves the agency and the platform before it serves you.
Shopify built Hydrogen to accelerate headless adoption. It's well engineered, and Oxygen hosting is free on almost every plan. We read free hosting as distribution as much as generosity: Shopify's incentive is to keep headless builds inside its ecosystem. That's not a criticism. It's how platforms work. None of this makes Hydrogen bad; it makes the default advice unexamined.
We build headless storefronts on Shopify and Centra, with Next.js or Hydrogen at the front. Shipping both taught us that the framework debate is the wrong conversation. A framework is a delivery mechanism. Storefront quality is decided in the layer above it, and that layer is what this post is about.
What the Storefront API Gives You
Shopify's Storefront API is GraphQL and framework-agnostic. It exposes products, collections, cart and customer data. Query it from React, Vue, Svelte or plain TypeScript. Shopify says so itself, even if the docs steer every example toward Hydrogen.
Hydrogen is one consumer of that API. It's React plus Remix with Shopify primitives baked in: cart hooks, variant state, analytics. Oxygen deploys it across 285+ points of presence. For a team starting from zero on a pure Shopify backend, that's a good offer.
But headless itself needs none of it. A decoupled frontend. Full control over rendering. Sanity for content, Algolia for search, whatever Shopify doesn't support natively. Commerce on surfaces Shopify never planned for. All of that takes the Storefront API and a frontend team that knows what it's doing. Nothing more.
Where Hydrogen Fits
Hydrogen earns its place when most of these hold: Shopify is the only backend and will stay that way; time-to-market is tight; nobody wants to own hosting; the experience is commerce-first rather than editorial-first.
The early speed is real. Cart and variant state are solved problems you don't rebuild, and Oxygen deletes a whole category of infrastructure decisions. The cost arrives later, as maintenance cadence, and that's the part the case studies skip.
The Limitations Nobody Writes About
Most agencies writing about Hydrogen have staked their practice on it. Three things they leave out.
Breaking changes on a quarterly schedule
Hydrogen versions itself against the Storefront API's calver cycle, calendar-based versioning that cuts a new API version every three months. When Shopify breaks the Storefront API or Customer Account API, and it does, Hydrogen components need redesigning. Every headless build depends on the Storefront API, so some of this is unavoidable. Hydrogen adds Remix and its own churn on top. A Hydrogen storefront is a subscription to that cadence, not a set-and-forget asset. We haven't kept a version-by-version log of the breaks, so we won't fake one here. The pattern is enough: budget framework maintenance as a quarterly line item.
All-or-nothing decoupling
Hydrogen decouples the whole frontend or nothing. You can't lift the product page into headless while the rest stays on Liquid, Shopify's template language. Progressive migration, one page type at a time, is the sane path for an established brand. It requires a framework that can live alongside Liquid, and Hydrogen can't.
The app ecosystem gap
Many Shopify apps assume a Liquid theme. Reviews, wishlists and loyalty become custom engineering instead of a plugin install. So do gift cards and bundles. That's a headless tax rather than a Hydrogen tax, and nearly every early scope underestimates it. Each rebuilt widget is small. Every one of them is yours to maintain, forever.
When the Custom Stack Wins
The stack we ship: Next.js on the frontend with the Storefront API for commerce, Sanity or Storyblok for content, deployed on Vercel. Three advantages carry the decision.
Rendering control at catalog scale. Incremental Static Regeneration, Next.js's way of statically generating pages and revalidating them on demand, matters at thousands of SKUs. Without it you rebuild the whole site to update one price, or render every page on demand and give the speed back. ISR regenerates the one page that changed.
Composability. When Shopify shares the stack with a PIM for product data or an ERP for stock and orders, Hydrogen's primitives fight you. They assume Shopify owns the truth about everything.
A real editorial layer. For fashion and lifestyle brands the content is half the product. Structured content in Sanity, with live preview and fields the brand designed, is a different class of tool from Shopify metafields.
The brands that come to us fit this profile: fashion labels, many markets, strong editorial identity. That's why our Shopify work usually lands on the custom stack. It's a fact about our clients before it's a verdict on Hydrogen.
The Layer Above the Framework
Skilled developers ship fast storefronts on either stack. The framework sets your maintenance bill and your migration options. It doesn't decide product quality. Quality is decided by how search works, how merchandising happens, how the content model is structured and how pricing behaves across markets. That layer is portable.
We learned this on Centra first, across 20+ builds since 2015. Nudie Jeans runs 54 markets on one Centra instance; at that scale the market and pricelist logic is the product, and no framework ships it. So we maintain our own commerce engine, @aino, above the framework layer. It owns cart state, market and pricelist context and checkout orchestration. Our AI layer works the same way: Discovery search, merchandising and translation tooling run above the framework.
When a brand wins with headless, it's because they rebuilt their commerce logic more deliberately than the monolith allowed. The framework removed the ceiling. It didn't build anything.
How We Choose
The framework question comes last. First we ask:
- Is Shopify the only backend, or is there a PIM, ERP or second platform in the stack?
- Is the CMS a publishing tool or a product description field?
- Who maintains this after launch? A lean team should take Oxygen's zero-infrastructure model.
- Do existing Liquid pages need to stay live through the migration?
Then the call is short. Hydrogen when the brand is Shopify-native and direct-to-consumer, wants a performant storefront fast, and has light CMS needs. Custom stack when the brand has a strong editorial identity, runs many markets with hairy pricing and localization, or keeps Shopify next to other backend systems.
Where this goes: the frameworks keep converging on the same ideas of server rendering, streaming and edge deployment, while the differentiation moves up the stack. Shopify's own Winter 2026 release points there. It shipped Dev MCP, Model Context Protocol tooling that connects AI coding agents to the platform, rather than another framework. Centra has no public MCP tooling today. The platforms are now competing above the framework too.
The Question Worth Asking
What does your team have to maintain, and what does your brand have to evolve? Hydrogen is well funded and will keep improving; its quarterly cadence is its risk profile. A custom stack costs more scaffolding up front and buys a longer runway before you hit the framework's ceiling.
Neither is categorically better. The teams that get this wrong picked the framework first, Hydrogen because it was the obvious answer or Next.js because it was familiar, and worked forward from the tool instead of backward from the product.
Work backward from those two questions. The framework is what falls out.