A traditional CMS ships content and presentation together. A headless CMS stores content and serves it over an API, leaving the front end entirely to you. The decision shapes cost, publishing speed and hiring for years, so it deserves more thought than a framework preference.
What headless actually changes
Headless removes the template layer from the CMS. Editors work in a structured interface, and content is delivered as JSON to whatever consumes it: a website, a mobile app, a kiosk, a partner integration.
- One content source feeding several channels
- Front-end technology chosen independently of the CMS
- Content modelled as structured fields rather than pages of markup
- Deployment of the site decoupled from CMS upgrades
Where traditional platforms still win
If you publish to one website, need editors to see a live preview, and rely on a plugin ecosystem for search, forms and commerce, a traditional CMS will get you there faster and cheaper. The integrated preview alone saves significant editorial friction.
Headless projects carry a hidden cost: everything the plugin ecosystem gave you for free must now be built or bought, including preview, redirects, sitemaps, forms and search.
Questions that settle the decision
- Do you publish to more than one channel today, or only plan to?
- Will editors accept previewing in a separate environment?
- Do you have front-end capacity to own the presentation layer long term?
- Is your content genuinely structured, or is it long-form pages?
A middle path
Many teams do best with a traditional CMS exposing a content API for the few places that need it. You keep editorial comfort and gain reuse where it matters, without committing the whole stack to a rebuild.
Choose headless when multi-channel delivery is a present requirement, not a future maybe. Anything else is paying today for flexibility you may never use.
Where to start
Model your content types on paper before choosing a platform. If the model is genuinely structured and reused in more than one place, headless earns its keep. If it is a set of pages, it does not.


