Headless commerce is an architecture where the storefront your customers see (the "head") is separated from the commerce engine that runs your catalog, cart, checkout, and orders. The two halves talk to each other through an API instead of being welded together in one codebase. That separation is the whole idea, and it is why the model is called "headless": you can remove the default front end and attach your own.
The promise is freedom. Your developers can build any experience they want, from a bespoke website to a native mobile app, an in-store kiosk, or a smart-TV app, all pulling from the same products and running the same checkout. The cost is that you now own and maintain that front end yourself. This guide explains how headless commerce works, how it differs from traditional and composable setups, when it is worth the trade-off, and where Cartly fits.
Traditional (monolithic) vs headless
In a traditional platform, the front end and the back end ship as one system. The theme, the templates, the cart, and the admin are all part of the same application. This is simple and fast to launch: you pick a theme, edit it, and you are live. The limitation is that your front end is bound to the platform's rendering: you build within its theme language and its rules, and deep changes to how pages are produced are often off-limits.
In a headless setup, the commerce engine exposes its data and operations through an API (usually REST, GraphQL, or both). The front end is a separate application you build and host, calling that API for products, collections, cart, and checkout. Nothing about the customer experience is dictated by the back end; it only supplies data and processes transactions.
At a glance
| Aspect | Traditional | Headless |
| Front end | Coupled to the platform theme | Separate app you build |
| Launch speed | Fast, pick a theme | Slower, build from scratch |
| Design freedom | Within the theme system | Unlimited |
| Channels | Mainly the web store | Web, app, kiosk, or IoT |
| Who maintains the front end | The platform | You |
| Best for | Most merchants | Teams with specific front-end needs |
How a headless storefront works in practice
The mechanics are simpler than the buzzwords suggest. When a shopper opens a headless store, a typical request flows like this:
- The browser or app loads your front end, a separate application hosted on your own infrastructure or a CDN.
- That front end calls the commerce API for what it needs: a product, a collection, search results, the current cart.
- The commerce engine returns structured data (usually JSON), and your front end renders it however you designed.
- At checkout, the front end sends the cart and customer details to the API, which runs pricing, tax, discounts, and payment, then creates the order.
The engine does not render pages; it answers questions and processes transactions. Everything the customer sees is yours to shape. Front ends are commonly built as statically generated sites (pre-rendered for speed), server-side-rendered apps (fresh HTML per request), or edge-rendered hybrids. Each is a different way to keep pages fast while pulling live commerce data.
Why teams go headless
The reasons are practical, not fashionable. Teams reach for headless when the default storefront stops being enough for what the business needs to do:
- Front-end freedom. Build exactly the experience you want with modern frameworks like React, Vue, or Svelte instead of a platform's theme language.
- Omnichannel from one back end. Web, mobile app, kiosk, marketplace, and IoT surfaces all read the same catalog and share one checkout, so inventory and orders stay consistent.
- Performance. A purpose-built front end, often statically generated or edge-rendered, can hit speeds a general theme system struggles to match, which helps both conversion and SEO.
- Independent release cycles. Front-end and back-end teams ship on their own schedules. A redesign does not touch the commerce engine, and an engine upgrade does not break the site.
- Best-of-breed stack. Pair the commerce API with a separate CMS, search, or personalization service, and swap any one of them without rebuilding everything.
In the wild, this is why a content-heavy brand pairs a marketing CMS with a commerce API, why a retailer with both a mobile app and physical stores wants one catalog behind every screen, and why a large-catalog seller invests in a front end tuned for raw speed. The common thread is that the front end is doing real work the business depends on, not just listing products.
The costs of going headless
Going headless trades one set of problems for another. What you gain in freedom you pay for in responsibility:
- You build and own the front end. Everything a theme gave you for free (product pages, cart UI, search, account pages) is now yours to design and maintain.
- More moving parts. A separate front end, its hosting, a build pipeline, and the API integration are all yours to run and monitor.
- Front-end concerns become your job. SEO, accessibility, content preview, and page speed are no longer handled for you; your team owns them.
- Higher upfront cost and time. You need front-end engineers and a longer build before launch. For a small catalog, that investment rarely pays back.
A useful rule: go headless when the front end is a competitive advantage you cannot express any other way. If a good theme would serve your customers just as well, a traditional storefront gets you there faster and cheaper.
Does headless commerce hurt SEO?
Headless is neutral for SEO on its own, but it shifts the responsibility onto your team. A monolithic platform ships server-rendered, crawlable pages by default. A headless front end can match or beat that, as long as you render HTML the crawler can read rather than shipping an empty shell that only fills in after JavaScript runs. In practice that means server-side rendering or static generation for anything you want indexed, plus the fundamentals you would own on any stack: clean URLs, canonical tags, structured data, fast Core Web Vitals, and correct redirects when you migrate. Skip those and a headless build can rank worse than the theme it replaced; do them well and it can be the fastest, best-optimized storefront you have ever run.
Headless vs composable vs MACH
These terms overlap and are often used loosely. Headless is specifically about decoupling the front end from the commerce engine. Composable goes further: it assembles your whole stack from independent, swappable services (commerce, CMS, search, payments), each chosen on its own merits. MACH stands for Microservices, API-first, Cloud-native, and Headless, the set of principles behind composable architecture. The practical distinction: all composable commerce is headless, but not all headless commerce is fully composable. You can go headless against a single commerce platform's API and add composable pieces later.
How to tell if you are ready for headless
Headless tends to pay off when several of these are true:
- You have, or can hire, front-end engineers who will own the storefront.
- Your brand or conversion strategy needs an experience a theme cannot deliver.
- You sell across several channels (web, app, in-store) that should share one back end.
- Performance at scale is a measurable business priority, not a nice-to-have.
- You want to combine best-of-breed services rather than accept one vendor's bundle.
If none of these apply, a fast, flexible traditional storefront is usually the better call, and you can move to headless later without throwing away your catalog and orders.
Where Cartly fits
Cartly is built so you do not have to choose headless or traditional up front. You get a fast, themed storefront out of the box and a full API underneath, so you can start simple and go headless only when it earns its keep.
- A complete Storefront API. REST and GraphQL endpoints expose catalog, collections, cart, and checkout, so you can build a custom front end, a mobile app, or any other surface against the same engine.
- No forced replatform. Launch on a built-in theme today; attach a headless front end to the same store later without migrating your data.
- Git-native themes. Even on the built-in storefront, you can work in a real Git workflow (branches, pull requests, CI/CD) instead of a locked web editor.
- Checkout you can program. Checkout Functions let you write custom discount, validation, delivery, and payment logic that runs no matter which front end calls it.
- Reliable by design. Checkout runs on a durable workflow engine so authorized payments reliably become orders (Cartly's "Zero Lost Orders" principle), whether the request comes from a theme or your own headless app.
The bottom line
Headless commerce decouples the storefront from the commerce engine so you can build any front end you want against one catalog and checkout. It buys freedom and omnichannel reach at the price of complexity and front-end ownership. That is a strong trade for teams with specific experience needs, and overkill for stores a good theme would serve. The practical move is a platform that lets you start traditional and go headless on your own timeline. For the wider picture, read What Is an Ecommerce Platform, or see how Cartly stacks up in our Shopify alternative comparison.