Headless commerce has been the default answer to every architecture question for long enough that the interesting question is no longer what is it but when is it wrong. Nobody in the ecosystem publishes that, because everybody in the ecosystem sells the yes.
We build headless storefronts on MedusaJS, and we also keep clients on Magento and Shopify when that is the better answer. This is the framework we use to tell those situations apart, and an honest placement of Medusa.js among the alternatives.
Version note: this article targets Medusa 2.x (2.17 at the time of writing). Medusa 2.0 was a substantial architectural break from v1 — treat any v1-era article or tutorial you find as historical.
What Headless Actually Changes
Stripped of the marketing, headless means the commerce engine and the storefront are separate applications communicating over an API. Everything else — composable, MACH, API-first — is a claim about how far that separation goes.
What it genuinely buys you:
- Front-end freedom. No theme system to fight, no template language to work around.
- Multiple channels from one backend. Web, app, kiosk, marketplace, and now agent interfaces, all served by the same commerce logic.
- Independent deployment. The storefront ships without touching the commerce engine, and vice versa.
- Component replacement. Swap search, or the CMS, or payments, without a replatform.
What it costs you, and this is the part the pitch skips:
- Two applications to run instead of one — separate hosting, deploys, monitoring, dependency upgrades and security patching.
- Everything the monolith gave you free, rebuilt: SEO output, sitemaps, structured data, previewable content, redirects, error pages.
- A merchandising team who can no longer change things themselves, unless you deliberately build for them.
- Front-end engineering as a permanent requirement, not a launch project.
The most expensive headless failure mode is not technical. It is a marketing team that could edit a landing page on Monday and now files a ticket for it. Budget for the authoring experience or you have moved the cost, not removed it.
The Four Requirements That Justify It
In our experience, one of these has to be genuinely true. Not aspirationally true — actually true, this year.
1. More Than One Front End, Really
A web storefront plus a native app, or several brand storefronts sharing one catalogue and one order pipeline, or a B2B portal alongside a D2C shop. If there is exactly one storefront and no funded plan for a second, the primary justification for headless does not apply to you.
2. Commercial Logic the Platform Cannot Express
Pricing that depends on contract terms, configurable products with real engineering constraints, quote-to-order workflows, multi-entity tax, complex fulfilment routing. When your commercial rules are your competitive advantage, a platform that constrains them is charging you in the wrong currency.
3. A Front-End Experience That Is the Product
Configurators, guided selling, heavy interactivity, an experience that has to feel like an application rather than a catalogue. If your storefront's job is to show products and take payment, a good theme does that faster and cheaper.
4. Platform Economics That Have Turned
Enterprise commerce licences reach six figures annually and scale with your growth rather than your usage. At sufficient volume, that line item alone funds an engineering team. This is a real and increasingly common reason to move, and it is a finance decision rather than a technical one.
When We Say No
We turn down headless projects for these reasons, regularly:
- One storefront, conventional catalogue, standard commercial rules. Shopify or Magento will serve you better and cost less.
- No in-house front-end capability and no plan to acquire any. You will be dependent on an agency for every content change, forever.
- Performance is the motivation. A slow site is almost never slow because it is a monolith. It is slow because of what was built on it — we set that out in detail for Magento front ends, and the logic transfers.
- The team is small. Headless multiplies operational surface. Below a certain team size that surface is the whole roadmap.
- It is a resume decision. Uncharitable, and it happens. Architecture chosen for interest rather than requirement is the most expensive kind.
Where MedusaJS Fits
If the framework says headless, the next question is which engine. Medusa.js is a Node.js and TypeScript commerce engine, open source, modular, self-hostable, with an official Next.js starter and a managed cloud offering.
It fits well when:
- Your team already writes TypeScript. This is the single strongest argument. The commerce engine is in the same language as the storefront, so one team can work across both — and hiring for it means hiring Node developers, not specialists.
- You want to own and modify the commerce logic. Medusa's module system is designed to be extended, and you can read the source when something surprises you.
- Licence cost is part of the motivation. No per-order fee, no revenue share.
- B2B is central. Company accounts, quotes and approval flows are well-served, and this is where open-source engines most often beat SaaS platforms.
It fits badly when:
- You need a large third-party app ecosystem. Shopify's app store is a genuine advantage that no open-source engine matches. If your business runs on off-the-shelf integrations, that matters more than architecture.
- Your team is PHP-first. Adopting a Node backend means either retraining or hiring — a real cost that belongs in the comparison.
- You want vendor accountability above all. Open source means you own the operational risk. Medusa Cloud mitigates this; it does not eliminate it.
- Your catalogue is enormous and your timeline is short. Large-catalogue performance is an area to validate against your own data early rather than assume.
Prove it before you commit. Load your real catalogue into a Medusa 2.x instance and run your worst query patterns against it. A week spent here is the cheapest insurance available on a project this size.
The Honest Comparison
The realistic shortlist for a mid-market or enterprise headless build:
- MedusaJS — Node/TypeScript, open source, modular, self-host or managed. Best when your team is JavaScript-native and you want to own the logic.
- Commercetools — the enterprise incumbent. Mature, well-supported, and priced accordingly. Best when procurement wants a vendor to hold accountable and the licence is affordable at your volume.
- Saleor — Python/Django, GraphQL-first, open source. Best when your team is Python-native.
- Shopify Plus headless (Hydrogen) — keeps the app ecosystem and the managed backend while replacing the storefront. Often the pragmatic answer, and consistently under-considered because it is not architecturally pure.
- Staying on your monolith and rebuilding the front end. The option nobody puts on the shortlist and the correct answer more often than any of the above.
Compare them on the boring axes: what your team can hire for, what the three-year total cost looks like, who is accountable when it breaks at 3am, and how quickly you could reverse the decision. Feature matrices converge; those four do not.
Sequencing a Migration
If you do move, do not do it as a cutover. The pattern that works:
- Prove the engine against your real catalogue, pricing rules and order volume — a spike, not a project.
- Build the new storefront against the old backend first, if your current platform has a usable API. You de-risk the visible half without touching commerce.
- Migrate one market, one brand or one channel. Learn on something you could roll back.
- Move the commerce engine last, once the storefront is stable and the team knows the new stack.
- Keep the old system readable for months afterwards. Order history and finance queries do not stop at cutover.
The migration mechanics — redirects, data QA, integration rebuilds — are largely platform-independent; our 40-point replatforming checklist applies almost unchanged.
Our MedusaJS practice and Medusa development team do this work, and our wider platform selection practice exists to answer the question before it — including the times we recommend staying exactly where you are.
Frequently asked questions
Is headless commerce faster than a traditional platform?
Not inherently. A well-built headless storefront can be very fast, and so can a well-built themed one. Sites are usually slow because of what has been added to them, not because of where the templates render. Performance alone is a poor reason to go headless.
What is MedusaJS, and how does it differ from Shopify?
Medusa.js is an open-source commerce engine built in Node.js and TypeScript that you host and extend yourself, exposing an API rather than a storefront. Shopify is a managed platform with a large app ecosystem. Medusa trades that ecosystem and managed accountability for full control of the commerce logic and no per-order fees.
How much does a headless commerce build cost?
Materially more than a themed build, because you are commissioning two applications instead of one and rebuilding what the monolith provided free — SEO output, previewable content, redirects, authoring tools. Budget for the storefront, the engine work, the integrations and a permanent front-end capability afterwards.
Can we go headless without replatforming?
Often, and it is the most underused option available. If your current platform exposes a usable API, build the new storefront against it first. You get the front-end freedom, you defer the risky half, and you can stop if it is not working.
Which is better, MedusaJS or Commercetools?
They suit different buyers. Commercetools is the enterprise choice when procurement wants a vendor to hold accountable and the licence is affordable at your volume. MedusaJS suits teams who are JavaScript-native, want to own and modify the commerce logic, and would rather spend the licence budget on engineers.
Run the Framework With Us
Tell us your channels, your commercial rules and your team's languages, and we will tell you whether headless is justified — and which engine, if it is. We say stay on what you have more often than the framework's reputation suggests. Talk to our team; we reply within a business day.
