What is a headless CMS?
A headless CMS is a content management system without a built-in website. Editors manage structured content in an admin, and your website, app or any other frontend fetches it through an API.
By the HelmCMS team · Reviewed against the HelmCMS codebase on October 29, 2026
Headless vs traditional CMS
A traditional CMS such as WordPress stores your content and also renders the website from its own themes. A headless CMS keeps only the first half: it stores and manages content, and hands it out as data. The “head”, the part visitors see, is whatever frontend you build.
| Traditional CMS | Headless CMS | |
|---|---|---|
| Who renders pages | The CMS, through themes and templates | Your frontend (Next.js, Astro, a mobile app, anything) |
| How content leaves the CMS | As finished HTML pages | As JSON through an API |
| Content shape | Mostly pages and posts with a big text body | Structured models you define: fields, relations, reusable blocks |
| Same content in many places | Hard; it is tied to one site's theme | Built in; every channel calls the same API |
| Who it suits | A single site run without developers | Teams with a frontend developer, or AI agents that build the frontend |
When a headless CMS is the right choice
- You build your site with a modern framework and want content editors to work without touching code.
- The same content feeds more than one place: a website, an app, a newsletter, a partner feed.
- You run many sites and want one system, one login and one way of working for all of them.
- You want AI agents to manage content through an API instead of clicking through a theme editor.
It is the wrong choice if nobody on the team can build or maintain a frontend and you need a complete website today. A traditional CMS with a theme is faster for that.
How content is structured
In a headless CMS you design content models before you write. A model is a list of typed fields, for example a “Recipe” with a title, a slug, a cover image, a list of ingredients and the steps. HelmCMS supports three kinds of model:
- Collections hold many entries, like blog posts or products. They can be sorted by date, kept in a manual order, or nested as a tree for menus.
- Singletons hold exactly one entry, like site settings or the home page.
- Blocks are reusable field sets that editors stack in any order inside a page, the building parts of a page builder.
Fields come in 16 types: text, long text, rich text, number, true/false, date, date and time, select, email, slug, JSON, media, relationship, group, repeatable array and blocks. Each can be required, unique, have a default, limits or a pattern.
How content reaches your site
The frontend asks the delivery API for published entries with a site API key. The answer is JSON with the entry's fields, media resolved to URLs with sizes and alt text, and related entries included up to the depth you ask for. Drafts never appear there; a separate preview key reads them for draft previews. When an editor publishes, a signed webhook tells your site to refresh the page.
The integrations guide shows the requests with Next.js and Astro examples.
In this topic
Admin: the HelmCMS content editor
A calm editor for drafts, versions and publishing
Content modeling without code or deploys
Models are data: change them without a deploy
Media library for every site
Uploads and URL imports into one library per site
Blog CMS for writers and their AI agents
Articles, authors and categories, drafted with AI