Commerce · · 4 min read
Headless is not automatically better. A clear comparison of Medusa.js and Shopify, the costs people underestimate, and a simple way to decide.
Headless commerce has become a default recommendation in some agency circles. It should not be. Separating the storefront from the commerce engine gives you control, and control has a cost. The useful question is not whether headless is better. It is whether your business has problems that a hosted platform cannot solve without a fight.
This piece compares two honest options: Shopify, the hosted platform most merchants know, and Medusa.js, an open-source commerce engine built on Node.js and TypeScript that you host and extend yourself. Both are good. They are good at different things.
What headless actually means
A traditional platform ships the shop front and the back office as one product. Themes, checkout, catalogue and orders live together. In a headless setup, the commerce engine exposes products, carts, orders and customers through an API, and a separate front end, often built with Next.js, renders the experience. You can add other front ends too: a mobile app, an in-store kiosk, a WhatsApp ordering flow, a B2B portal.
Shopify can run headless as well, through its Storefront API and the Hydrogen framework. Medusa is headless by design and has no theme layer at all. So the real comparison is between a hosted platform with a headless option and an open engine you own end to end.
When Shopify is the better call
For most direct-to-consumer brands starting out, Shopify is the right answer. It is hard to beat on time to launch and on the effort of keeping a store running.
- Your catalogue is standard: products, variants, collections and discounts.
- You sell in one or a few markets, and the built-in checkout supports your payment providers.
- Your team wants to run the store without a developer on call.
- The app ecosystem already covers reviews, subscriptions, loyalty and shipping for your region.
- You would rather pay a platform fee than carry hosting, security patches and upgrades.
Shopify takes care of PCI compliance for its checkout, absorbs traffic spikes without your involvement and ships features you did not have to build. Those are real advantages, and they compound over years. If your requirements fit inside the platform, a well-designed theme with careful performance work will serve you better than a custom build.
When Medusa.js makes sense
Medusa earns its place when the business model itself is the product and the platform's assumptions start to get in the way. A few patterns come up repeatedly.
Complex pricing and B2B rules
Customer-specific price lists, quote-to-order flows, approval chains, credit terms and minimum order quantities are awkward on hosted platforms. In Medusa, these become modules and workflows in your own codebase, written in TypeScript and tested like any other software.
Multi-region operations with local rules
Selling across India, the Gulf and Europe means different currencies, tax regimes, payment providers and fulfilment partners. Medusa supports regions, currencies and pluggable payment and fulfilment providers, so you can integrate a local gateway or a regional courier without waiting for someone to publish an app.
Commerce inside a larger system
If orders must flow into an ERP, stock lives in a warehouse system and customers also use a mobile app, the commerce engine is one service among several. Owning it means you decide how data moves, where it is stored and how it is versioned.
Marketplaces and unusual models
Rentals, bookings, multi-vendor marketplaces and subscriptions with custom logic often need data models a hosted platform does not offer. With an open engine you extend the schema, rather than layering workarounds through apps and metafields.
The costs people underestimate
Headless is a commitment, not a setting. Before choosing it, be clear about what you are taking on.
- Hosting and operations. You run the server, database, search index and file storage, and you own uptime.
- Security and compliance. A hosted payment provider keeps card data off your servers, but the rest of the stack is your responsibility.
- Upgrades. Open-source frameworks move. Someone has to read the changelog, update dependencies and test.
- Merchandising tools. Features a merchant expects, such as previews, content scheduling and a promotions interface, may need a headless CMS or custom admin work.
- A team that stays. A custom storefront without an engineering owner decays quickly.
If no one on your side can name who will maintain the stack in two years, you are not ready for headless.
A simple way to decide
Write down the five things your store must do that are specific to your business. Test each against the hosted platform: natively, through a reputable app, or only through custom code. If every item lands in the first two columns, choose Shopify and spend the saved budget on design, content and performance. If two or more items need custom logic that touches checkout, pricing or order flow, an engine like Medusa will likely cost less over time than fighting the platform.
There is also a middle path. Start on Shopify, keep your product data clean and design the front end so it could later move to a headless architecture. Many businesses never need to make that move. Those that do will find it far easier with tidy data and a clear integration map.
Performance is not the deciding factor
A common argument for headless is speed. A well-built Next.js storefront can be very fast, but so can a carefully built theme. Speed comes from image handling, script discipline and how much third-party code you load, not from the architecture label. Choose headless for control over business logic, not for a Lighthouse score.
At Foxbeta we build on both, and we will say plainly when the hosted route is the better investment. The right platform is the one your team can run well after launch.
About the author
The engineers and designers at Foxbeta, a product studio in Imphal, Manipur, building software for clients in India, the Gulf, Europe, the USA and Australia. We write about the decisions we see clients face, based on the work we do every week.