Shopify Hydrogen vs MedusaJS in 2026 — when to pick which
I shipped Siella on Hydrogen and NIO on Medusa. Here is the honest decision tree for 2026 — catalogue complexity, per-transaction cost, custom logic, and the migration paths the sales deck skips.

The honest answer to Shopify Hydrogen vs MedusaJS in 2026 is that the framework is the last decision you should make, not the first. I've shipped both in production — Siella Beauty on Shopify Hydrogen, and the commerce backbone of NIO's regional EV platform on MedusaJS — and the projects that went sideways were never the ones that picked the "wrong" tech. They were the ones that picked headless commerce at all when a plain Shopify theme would have shipped in a third of the time. So before the decision tree, the disqualifier: if you can't name something your storefront needs that a Shopify 2.0 theme can't do, stop reading and go build the theme. Headless is a cost you take on to buy something specific. This article is about knowing what you're buying.
Both tools are mature now. Hydrogen ships quarterly, runs on React Router v7 and Shopify's Oxygen edge runtime, and is in production at brands like Allbirds and Gymshark — it is no longer early-adopter tech. MedusaJS v2 has a Cloud offering with flat monthly tiers and zero GMV fees sitting next to the self-host path. The frameworks are both fine. The fit is what varies.
Who owns the catalogue? The question under the question
Forget "headless vs traditional" framing for a second. The real fork is where your product data and business logic live, and who is allowed to change them.
With Hydrogen, Shopify owns the commerce engine. Products, inventory, checkout, discounts, taxes, and fraud all live in the Shopify admin your team already knows. Hydrogen is *only* the storefront — a React app on the edge that reads from the Storefront API and replaces the slow Liquid theme with something fast. You are renting a battle-tested backend and building a custom front door.
With Medusa, you own the engine. It's an open-source Node.js commerce core you deploy yourself — your database, your pricing logic, your checkout, your rules. There is no platform between you and the data. That's the whole point, and also the whole cost.
This is the line that decides most projects:
Pick Hydrogen when Shopify's commerce model fits your business and you only need to fix the storefront. Pick Medusa when your business logic doesn't fit any SaaS commerce model, and the cost of bending it to fit exceeds the cost of owning the engine.

Where Hydrogen wins: Siella Beauty
Siella Beauty is the clean case. A beauty brand with a few hundred SKUs, standard variants (shade, size), Shopify Payments, a marketing team that lives in the Shopify admin, and a Shopify app stack they didn't want to give up. They didn't have a commerce-logic problem. They had a *speed and brand* problem — the theme was slow and looked like every other theme. Shopify Hydrogen on Oxygen fixed exactly that and nothing else. Orders, inventory, and discounts never left Shopify. The team's daily workflow didn't change. We rebuilt the one slow part.
That's the Hydrogen sweet spot: a standard-ish catalogue, a team already on Shopify, and a problem that is fundamentally about the front end.
Where Medusa wins: NIO and Geely
NIO is the other case. A regional EV platform isn't a product grid — it's a vehicle configurator with trims, regional pricing across markets, accessory bundles, availability logic, and a checkout that doesn't resemble "add to cart, pay." None of that fits Shopify's product model without a wall of apps and metafield hacks fighting each other. We needed MedusaJS precisely because we needed to own pricing and product modelling end to end, sync inventory from a Laravel service, and build a checkout that matched how cars are actually sold. The same logic drove the Geely UAE build — regional rules a hosted platform won't bend to.
Medusa wins when the catalogue is *weird*: complex variants, B2B pricing tiers, marketplace logic, subscriptions, or a checkout that needs custom steps. The moment you're writing more code to fight Shopify's model than you'd write to own it, Medusa is cheaper — in engineering time, not licence fees.
Per-transaction cost: the number nobody puts on the slide
Here's the part the sales deck skips. Shopify charges a platform fee on every order — and on a non-Shopify-Payments gateway, an extra transaction fee on top. Hydrogen does not escape that. Going headless with Hydrogen keeps you fully inside Shopify's billing; you still pay the per-transaction cut on every sale, forever, scaling linearly with revenue.
Medusa has no per-transaction fee. Self-hosted, you pay for infrastructure plus your payment provider's processing fee, and that's it. Medusa Cloud adds a managed tier but still takes zero percent of GMV.
So the cost crossover is real, but it's not where people assume:
- Low and mid GMV: Shopify's fee is noise next to the engineering cost of running your own backend. Hydrogen — or honestly, just a theme — wins on total cost.
- High GMV with a standard catalogue: the per-transaction fee can grow into a number that pays a full-time engineer. This is the one case where teams migrate *off* Shopify purely for the platform tax — and it's rarer than Medusa vendors imply, because high-GMV stores usually also lean on Shopify's fraud, tax, and app ecosystem.
- Any GMV with weird logic: ownership wins regardless of fees, because you couldn't build the thing on Shopify at all.
Don't migrate to dodge a fee unless you've done the arithmetic *including* the salary of whoever now owns your checkout, your PCI surface, and your 2am incident.

The team test decides this more than the tech
A self-hosted Medusa store is infrastructure you now run. Database, deployments, monitoring, security patches, payment-failure handling, the lot. If you don't have someone who owns that — or budget for a fractional CTO who does — Medusa's ownership is a liability, not a feature. Shopify runs all of that for you; that's most of what the fee buys.
Honest team heuristics:
- No dedicated engineer, small team: Shopify theme first, Hydrogen only if you have a real front-end performance or brand problem. Medusa is the wrong answer.
- A capable product team, standard commerce: Hydrogen. You get a custom storefront, and Shopify carries the operational weight.
- An engineering team that can run a backend, non-standard commerce: Medusa. You'll use the ownership and you can carry the ops.
B2B and custom logic in 2026
Two things shifted the calculus recently.
Hydrogen's native B2B
Hydrogen now has real B2B support — company accounts, contextual pricing, customer-specific catalogues — baked into the framework, so a chunk of work that used to force a move to Medusa now stays on Shopify. If your B2B needs are "pricing per company and a separate catalogue," Hydrogen can do it in 2026.
Medusa's arbitrary logic
Medusa's edge is *arbitrary* logic. Its v2 module system means you model commerce primitives yourself and wire in AI features, external services, and custom workflows as first-class parts of the engine — not as webhooks bolted onto a closed platform. When the logic is genuinely yours, that's the difference between building a product and fighting one.
Migration paths nobody mentions
The directions you can actually move, from real projects:
- Theme → Hydrogen is the easy one. Same Shopify backend, you swap the storefront. Low risk, reversible, and the migration I recommend most often.
- Theme → Medusa is a *replatform*, not a migration. New backend, data migration, new checkout, new ops. Budget for it like a rebuild, because it is one. See how I scope this honestly in the 48-hour scope.
- Hydrogen → Medusa is doable because your storefront is already a decoupled React app reading from an API — you're swapping the API behind it. The front end survives; the backend, data, and checkout do not. This is the path the Hydrogen pitch never mentions, and it's the strongest argument for starting headless even on Shopify: you keep your exit open.
- Medusa → Shopify is the painful direction. You're moving from a model you own to one you must conform to. Possible, rarely worth it.
The strategic read: starting on Hydrogen buys you a decoupled storefront *and* an exit ramp to Medusa later, at the cost of Shopify's ongoing fee. Starting on Medusa buys ownership now, at the cost of running it. Starting on a theme buys speed-to-market and keeps every door open. Most clients I scope should start on the theme.

My decision tree: which one to pick
The decision tree, compressed:
- Can a Shopify 2.0 theme do it? Then do that. Most stores are here.
- Theme can't, but Shopify's commerce model fits and you mostly have a front-end problem? Hydrogen.
- Shopify's model doesn't fit your catalogue, pricing, or checkout, and you have engineers to run a backend? Medusa.
- High GMV, standard catalogue, and the platform fee now exceeds an engineer's salary? Run the TCO math, then probably Medusa — but slowly.
I shipped Siella on Hydrogen and NIO on Medusa for reasons that had almost nothing to do with which framework was "better." They had different businesses. Pick for your business, not the benchmark. If you want the version of this aimed at your actual catalogue, that's what the commerce engagement and the scope call are for.
FAQ
Is Shopify Hydrogen still worth it in 2026?
Yes, for the right project. Hydrogen in 2026 runs on React Router v7 and Oxygen, ships quarterly, has real B2B support, and is in production at brands like Allbirds and Gymshark. It's a credible default for a Shopify-native custom storefront when you have a front-end or brand problem — not a commerce-logic one. If you don't have either problem, a theme is the smarter call.
Does going headless with Hydrogen avoid Shopify's transaction fees?
No. Hydrogen is only the storefront; checkout and billing stay inside Shopify, so you pay the same per-transaction platform fee you'd pay on a theme. The only way to escape Shopify's per-order cut is to leave the Shopify commerce engine entirely — which means Medusa or another self-owned backend, with all the operational cost that implies.
When should I pick MedusaJS over Shopify?
Pick MedusaJS when your catalogue or checkout doesn't fit Shopify's model — complex variants, B2B tiers, regional pricing, subscriptions, marketplace logic — and you have engineers who can run a backend. I used Medusa for NIO's EV configurator and regional pricing because none of it fit a hosted commerce model without a wall of fighting apps. If your commerce is standard, Medusa's ownership is mostly liability.
Can I migrate from Hydrogen to Medusa later?
Yes, and it's one of Hydrogen's underrated advantages. Because a Hydrogen storefront is already a decoupled React app reading from an API, moving to Medusa means swapping the API behind a front end that largely survives. The backend, data, and checkout still need rebuilding, but you're not starting from zero — which is exactly why starting headless on Shopify keeps your exit open.
Do I even need headless commerce?
Most stores don't. A Shopify 2.0 theme is faster to ship, cheaper to run, and good enough for the majority of catalogues. Go headless only when you can name a specific thing the theme can't do — a performance ceiling, a brand requirement, or commerce logic that doesn't fit the platform. If you can't name it, build the theme.
How much does a headless commerce build cost?
It varies with catalogue and logic complexity far more than with the framework. A Hydrogen storefront over an existing Shopify backend is the cheapest headless path because the engine already exists. A Medusa replatform is a full backend build and should be budgeted like a rebuild, not a re-skin. I scope both transparently up front — see [how I scope in 48 hours](/insights/48-hour-scope) — so the number reflects your actual requirements, not a template price.
Technologies
Have something like this in mind?
Start a project→

