Topic

When a Headless Architecture Makes Sense

Insights/ Web Architecture & Platforms / Architecture Decisions

05 Dec 2023 - 08 min read

When a Headless Architecture Makes Sense
Listen to article00:00 / 10:01

What "headless" actually means (and what it doesn't)

In a traditional CMS-driven site, the same system handles content storage, content editing, page templating and HTML rendering. WordPress with a theme is the canonical example. The editor logs in, writes a post, and the same system that stored the post produces the HTML the visitor sees.

A headless architecture breaks that into two systems: a content layer (a CMS or content API) that stores, validates and serves structured content, and a separate frontend (a Next.js app, a mobile app, an in-store screen) that fetches the content and renders it however it needs to. The CMS is "headless" because it has no head, no rendering layer of its own.

What headless is not: a magical solution to slow websites, a way out of vendor lock-in, or a guarantee of better SEO. Done well, it can support all three. Done badly, it can make all three worse than the monolithic CMS it replaced.

The decision question for a real project is narrower than the marketing version: does the value of decoupling content from presentation justify maintaining two systems instead of one. The pillar context for that choice sits inside the architecture-choice article; this article is the focused decision frame for the headless option specifically.

When headless actually pays for itself

Three project shapes consistently make headless the right call rather than a fashionable one.

The first is multi-channel content reuse. The same content has to render on a website, a mobile app, a partner integration, an in-store kiosk, an email template. Putting that content in a CMS that produces HTML for one of those channels and then trying to syndicate to the others is painful. Putting it in a content API and letting each channel render it natively is what headless was built for.

The second is a content team that needs a real CMS, working with a frontend that has to do something a CMS theme cannot. The editors want structured content models, drafts, scheduling, role-based permissions, multilingual workflows. The frontend has to be a fully custom React or Vue application with interactive features, server-rendered content with personalisation, complex routing. A monolithic CMS can serve one of those well; headless lets both run on tools that are good at their respective jobs.

The third is a multilingual content hub at scale. One source of truth for content, several locales, with the same frontend rendering each locale's version. Done in a monolith, this becomes a long story about translation plugins, theme overrides and slug management. Done headless with a CMS that takes localisation seriously, it becomes a structured field on each content entry.

In all three cases, the cost of running two systems is justified by what the decoupling actually unlocks. The mistake is to invoke the same justifications for projects that do not have any of these shapes.

When headless is overkill

Equally, three project shapes consistently make headless the wrong tool, even when the team would prefer to use it.

A single-channel website with simple, mostly stable content. Marketing pages, a blog, a contact page, maybe a small product catalogue. The content does not feed any other channel. The editors are fine with WordPress or a similar monolithic CMS. A custom frontend buys very little, and the team ends up maintaining a frontend codebase to render content that the CMS could have rendered itself with a competent theme.

A content team that wants WYSIWYG and live preview. Headless setups can be configured to support draft previews, but it requires deliberate work: a preview environment, a draft mode in the frontend, a way for editors to see exactly how their changes will render. Skipping that work produces editors who write content into a structured form and only see how it looks after publishing, which most non-technical editors hate. The right answer for that team is often a monolithic CMS or a hybrid CMS with first-class preview, not headless without preview.

A small team without frontend engineering capacity. Headless implies someone owns the frontend application: deployment, dependencies, framework upgrades, performance, accessibility. A team that cannot maintain a custom frontend in the long run should not adopt an architecture that requires one. The right call is a monolithic CMS where the maintainer is the CMS vendor and a theme.

The pattern is the same: headless without one of the three "right call" shapes is paying for capabilities the project will not use, with operational overhead the team will resent within the year.

What you take on operationally

A headless setup is two systems. That sounds obvious until launch week. Five operational realities decide whether the team is happy with the choice in eighteen months.

Two deployment pipelines. The CMS (or a managed CMS) ships on its own cadence; the frontend ships on its own cadence. Coordinated changes (a new content type that the frontend needs to render) require coordinating two releases. Designing for that from day one, with backward-compatible content models and additive frontend changes, prevents most of the pain.

Cache and revalidation. The frontend caches content for performance. When an editor publishes a change, the cache has to invalidate or revalidate. Webhooks, on-demand revalidation, ISR, edge cache purges: this is real engineering, not a checkbox. Skipping it produces a CMS where editors publish and then watch their changes not appear for hours.

Preview and drafts. Editors expect to see what they are about to publish. The frontend has to support a draft mode that renders unpublished content for authenticated previewers, with the same layout as production. This is non-trivial and frequently scoped out, then resented.

Image and asset pipeline. The CMS stores images; the frontend serves them. Optimisation (responsive sizes, modern formats, CDN delivery) lives somewhere, and that somewhere is part of the integration design. Many CMS vendors offer this; using their pipeline is usually cheaper than building one.

Two failure surfaces. The CMS can be down; the frontend can be down; the connection between them can be down. Each failure mode needs handling. A frontend that crashes when the CMS is unreachable is a frontend that pages someone every time the CMS deploys. Static generation or stale-while-revalidate caching at the frontend buys real resilience here.

These are not exotic; they are the price of admission. Teams that go headless without budgeting for them end up rebuilding the same five capabilities eighteen months in.

The vendor question

The headless ecosystem splits into three rough categories, and each carries a different long-term commitment.

Managed SaaS CMS (Contentful, Sanity, Storyblok, Prismic, Hygraph). Strength: low operational burden, real editorial UX, predictable upgrade path. Weakness: vendor lock-in is real (proprietary content APIs, proprietary editing tools, escape hatches that work in theory and bleed in practice), and the pricing scales with usage. Right fit when the editorial workflow needs are demanding and the long-term commitment to the vendor is acceptable.

Open-source self-hosted CMS (Strapi, Directus, Payload, Keystone). Strength: data ownership, no per-seat vendor pricing, customisation. Weakness: someone has to operate the CMS (hosting, backups, upgrades, security patches), and the editorial polish often lags the SaaS competitors. Right fit when the team has operations capacity and the project's content model is unusual enough to benefit from custom field types or admin views.

WordPress (or other monolithic CMS) used headless. The CMS runs as before, editors work in the familiar UI, but the frontend pulls content via the REST or GraphQL API instead of using the WordPress theme. Strength: the editorial team keeps a tool they know, the engineering team gets a custom frontend. Weakness: the CMS was not designed primarily as a content API, and edge cases around revisions, multilingual content, and ACF-style fields can become integration debt. Right fit when there is an existing WordPress investment and a real reason to keep editors there.

The "right" headless vendor depends on the editorial team, the operations capacity and the time horizon. The wrong choice is to pick the most fashionable one without naming who is going to maintain it three years from now.

Final takeaway

Headless is a real capability with a real cost. It is the right choice when the project genuinely needs multi-channel content reuse, a real CMS paired with a custom frontend, or a serious multilingual hub. It is the wrong choice for single-channel sites with stable content, for editorial teams that need WYSIWYG, and for small teams without the frontend capacity to maintain the second system. The decision is rarely about whether headless is "modern"; it is about whether the value the decoupling unlocks justifies the two systems that come with it.

The wider context, including how the headless choice connects to other architecture and decomposition decisions, is collected in the web architecture and platforms insights cluster. And when the question moves from "should we go headless" to "we have decided to, and we now need someone to design the content model, the frontend, the cache strategy and the integration without rebuilding it eighteen months in", that is exactly what my web application development practice is built around.

- Haja Faniry

Related services

Web Application Development

Custom web application development for companies, startups and international organisations.

Custom Digital Platforms for NGOs & Organisations

Development of digital platforms and data systems for NGOs, research institutions and international organisations.

Technical SEO & Web Performance

Technical SEO and web performance optimisation services to improve website visibility, speed and search engine ranking.

Previous Post
How to Design a Scalable Web Platform
Next Post
Monolith vs Modular Architecture for Modern Web Projects
When a Headless Architecture Makes Sense | Haja Faniry