Compare
Should a Drupal site go headless with Drupal or move to another CMS?
Short answer
Headless Drupal 11 wins when editors depend on Drupal's back office, because headless Drupal keeps per-content-type permissions and Content Moderation (Drupal.org user guide; Drupal.org, Content Moderation, October 2026). A hosted content management system (CMS) such as Sanity wins when content serves several sites and apps, because it stores Portable Text, not HTML (Sanity's Drupal guide, October 2026).
- Coupled page building
- Drupal Canvas in Drupal CMS 2.0Drupal CMS 2.0 lists visual page building with Drupal Canvas for marketers, so page building alone is no reason to go headlessSource: Drupal.org (Drupal CMS)
- Drupal's headless API
- JSON:API in core, zero configurationGraphQL is a contributed module for Drupal 10 and 11; JSON:API Views exposes each Views display as a resourceSources: Drupal.org (JSON:API module, JSON:API Views, GraphQL)
- Next.js for Drupal
- Works with Drupal 10 and 11A Kanopi Studios project listed on drupal.org, with iframe previews of drafts and revisions and a multi-site preview for one Drupal feeding several sitesSource: Drupal.org (Next.js project page)
- Sanity custom roles
- Enterprise only, as of October 2026Growth costs $15 per seat a month, billed monthly, with five fixed roles; Drupal and Strapi Community set permissions per content type for freeSources: Sanity (Plans that scale with you, Sanity for Startups); Sanity Docs (Roles and permissions); Strapi Docs (Role-Based Access Control (RBAC))
Deploi’s call
Go headless on Drupal 11 when your editors live in Drupal's back office; move the content to Sanity when they don't. Headless Drupal doubles the stack, and that only pays when the back office is the reason you stay.
PickGo headless on Drupal 11 when
- Only the front end needs to change, so the content model, URLs and editor training stay in Drupal and the headless build is front-end work alone.
- Editors rely on per-content-type permissions, Content Moderation or Webform, because headless Drupal keeps all three while Sanity reserves custom roles for Enterprise as of October 2026.
- Your team keeps PHP and Drupal skills in house to run the back end through each two-year major release.
AlternativeMove the content to Sanity instead when
- The site is on Drupal 7, so every path is a rebuild and a second Drupal back end buys nothing.
- The reason to go headless is content reuse across sites, apps or brands, so rich text stored as Portable Text rather than HTML pays back.
- Five fixed roles on Sanity's Growth plan cover your editors, or Enterprise is in budget, as of October 2026.
- Nobody wants to run a PHP back end beside a JavaScript front end, so a hosted content management system (CMS) without a PHP back end fits better.
What does going headless with Drupal involve?
Going headless with Drupal means running two systems: Drupal stays as the back end that stores and serves content, and you build and host a separate JavaScript front end that renders it.
- The Drupal half. It keeps Drupal's release cadence, a new major version every two years, in even years (Drupal.org release process, October 2026). Whether to upgrade Drupal 10 or leave Drupal is a decision of its own.
- The front-end half. It is a new JavaScript codebase with its own hosting, framework upgrades and developers, so the headless stack costs more to staff than a coupled Drupal site.
- The editors. They keep working in Drupal's back office, and the front end fetches their content through Drupal's application programming interface (API).
Whether any organization should go headless is the headless versus traditional content management system (CMS) question; the choice here starts once a Drupal team has settled on a decoupled front end.
How does a headless Drupal back end serve content to the front end?
A headless Drupal back end serves content through Drupal core's JSON:API module or a contributed GraphQL module, each an application programming interface (API), and a front-end toolkit such as Next.js for Drupal reads it. Four pieces do the work, as of October 2026:
- JSON:API, in core. Drupal.org calls it "zero-configuration required" and opinionated, and it handles create, read, update and delete (CRUD) operations on a site's content (Drupal.org, JSON:API module, October 2026). Business rules such as account creation and login are not part of it.
- GraphQL, contributed. The GraphQL module lets you "craft and expose a GraphQL schema for Drupal 10 and 11" (Drupal.org, GraphQL, October 2026).
- JSON:API Views. It creates a JSON:API resource for each Views display, so existing listings reach the front end (Drupal.org, JSON:API Views, October 2026).
- Next.js for Drupal. A Kanopi Studios project listed on drupal.org that works with Drupal 10 and 11, previews drafts and revisions in an iframe, and offers multi-site preview for "write once, publish everywhere" (Drupal.org, Next.js, October 2026).
Next.js for Drupal is a Kanopi Studios project, not a Drupal Association or Vercel product; the Sanity and Next.js integration is Sanity's own toolkit for the same job.
What do you keep, and what do you rebuild, when Drupal goes headless?
Headless Drupal keeps the back office and rebuilds everything a visitor sees, which the front end fetches through Drupal's application programming interface (API). Our view of Drupal rests on its documentation and public sources, so kept rows rest on drupal.org and the Next.js for Drupal guides, and rebuilt rows are Deploi's judgment.
| Drupal feature | Headless Drupal 11 | Basis |
|---|---|---|
| Permissions by role and content type | Kept in the back end | Drupal.org user guide |
| Content Moderation | Kept; draft previews need front-end wiring | Drupal.org |
| Webform and Search API | Kept; forms and facets rebuilt in the front end | Next.js for Drupal guides |
| Multisite | Kept; shared code, a database per site | Drupal.org |
| Theme, Layout Builder and Paragraphs output | Rebuilt as front-end components | Deploi's judgment |
| Menus and blocks | Fetched and rendered by the front end | Deploi's judgment |
Each kept integration needs an extra module: Webform REST (representational state transfer) for forms and JSON:API Search API for search (Next.js for Drupal, Webform; Search API, October 2026).
When is a new CMS a better move than headless Drupal?
A new content management system (CMS) beats headless Drupal when the Drupal back office isn't the reason you stay: on Drupal 7, when content must serve several channels, or when nobody wants to run PHP beside JavaScript. Drupal 7 is the clearest case: drupal.org says "an update can't simply be applied to an existing Drupal 6/7 site", content migrates into a new site, and the theme must be rebuilt (Drupal.org migration overview, October 2026). A headless Drupal 11 build is a rebuild either way, so the back end is open.
- Content serves several channels. Drupal stores rich text as HTML; Sanity stores it as Portable Text, a JSON rich text format that apps and other sites render without parsing HTML (Sanity's Drupal guide, October 2026).
- One language for the whole stack. Headless Drupal keeps a PHP back end beside a JavaScript front end. Sanity hosts the content store, and Sanity Studio is an open-source React application (Sanity Docs, Hosting and deployment, October 2026), so one JavaScript team covers both halves.
- Editors want to work together. Sanity's guide says Studio gives "real-time collaborative editing out of the box" (Sanity's Drupal guide, October 2026).
The Drupal to Sanity playbook covers the move itself.
Which options belong on the shortlist for a Drupal site going headless?
Four options belong on the shortlist: Drupal 11 coupled, headless Drupal 11, Sanity and Strapi Community. Each wins one condition, shown in the fit row. Every cell except the fit row, which is Deploi's judgment, rests on vendor pages read 24 October 2026. The two Drupal columns share a back end and differ only in who renders pages. Sanity and Strapi both replace the back end, and differ on who hosts the database: Sanity hosts it, and Strapi runs on yours. Read the fit row first, because it decides.
| Criterion | Drupal 11 coupled | Headless Drupal 11 | Sanity | Strapi Community |
|---|---|---|---|---|
| Hosting | Your servers or a Drupal host | Drupal host plus front-end host | Sanity hosts content; you host the front end | Your servers and database |
| Content model | Content types in the admin | Same as coupled | Schema in JavaScript code | Content-type Builder in the admin |
| Rich text storage | HTML | HTML | Portable Text (JSON) | Blocks or Markdown field |
| Fit | One site on Drupal 11.3 or a later 11.x release; marketers build pages in Drupal Canvas | Editors live in Drupal's back office | Content reuse, Drupal 7, no PHP | Leave Drupal, self-host the database |
What does each option cost to license and to keep current?
Drupal and Strapi Community charge no license fees, Sanity charges per seat on its paid plans, and every option except Sanity leaves back-end upgrades to you. Drupal core has no license fees and is distributed under the General Public License (GPL) (Drupal.org, About, October 2026). Strapi Community is free under the permissive MIT (Massachusetts Institute of Technology) License, which covers its Community Edition code outside the ee/ directory (Strapi pricing; Strapi license, October 2026). Sanity's Free plan is $0 and Growth is $15 per seat a month, billed monthly, as of October 2026 (Sanity pricing; Sanity for Startups, October 2026).
| Criterion | Drupal 11 coupled | Headless Drupal 11 | Sanity | Strapi Community |
|---|---|---|---|---|
| License and subscription | GPL, no license fees | GPL, plus a second host | Free $0; Growth $15 per seat a month | MIT, free to self-host |
| Upgrade burden | A Drupal major every two years | Drupal majors plus the front-end framework | Studio updates; Sanity runs the store | Strapi releases on your servers |
Which shortlisted options give editors per-content-type permissions and moderation?
Drupal gives editors per-content-type permissions and a moderation workflow in core, Strapi Community gives the permissions free but not the workflow, and Sanity reserves custom roles for its Enterprise plan, as of October 2026. Drupal's user guide lists node permissions per content type, such as "Recipe: Create new content" (Drupal.org user guide, October 2026). Strapi's role-based access control is a "Free feature" with create, read, update, delete and publish rights for each content type, while Review Workflows is an Enterprise feature (Strapi Docs, role-based access control; Strapi pricing, October 2026). Sanity's Growth plan gives five fixed roles that reach every dataset, so none stops at a content type (Sanity Docs, Roles; Sanity pricing, October 2026).
| Criterion | Drupal 11, coupled or headless | Sanity | Strapi Community |
|---|---|---|---|
| Custom roles | Yes, by role and content type | Enterprise only | Yes, free |
| Editorial workflow | Content Moderation: Draft, Published, Archived | Drafts; Scheduled drafts on Growth; Workflows in early access | Draft and Publish; Review Workflows on Enterprise |
Roles and permissions in Sanity explains what the five fixed roles can and cannot do.
Where is Sanity not the pick for a Drupal team?
Sanity is not the pick for a Drupal team going headless when policy requires a self-hosted content database, when editors need per-content-type permissions without an Enterprise budget, or when nobody will own a JavaScript codebase. Sanity hosts the Content Lake, and only Sanity Studio can be self-hosted (Sanity's Drupal guide, October 2026; Sanity Docs, Studio development, October 2026), so a self-hosting rule takes Sanity off the list before features matter.
For a feature-by-feature view, see Sanity against Drupal, row by row, Sanity against Strapi, and whether to pick an open-source or a hosted headless content management system (CMS).
Deploi’s point of view
- Where we disagree
- The common pitch sells headless Drupal as the safe middle path: keep the CMS you know and get a modern front end. It isn't a middle path. You take on the whole cost of a new JavaScript front end and keep every Drupal major upgrade, one every two years. When the reason for going headless is content reuse or editor experience, you've already paid for the front end, and moving the content is the smaller step left. The opposite claim, that Drupal is hard to run headless, is out of date too: JSON:API is in core and needs no configuration.
- What we'd tell you to do first
- List the Drupal back-office features your editors actually use each week: permissions by content type, moderation states, Webform, Search API facets, multisite. A long list is the case for headless Drupal. A short list means those features aren't why you stay, and the back end is open.
- Where we would push back
- A team going headless only so marketers can build pages should try Drupal CMS 2.0 with Drupal Canvas on its coupled site first. Splitting the stack to get a page builder adds a front end you then have to staff.
When this answer changes
- Drupal.org publishes an end-of-life date for Drupal 11
- Next.js for Drupal drops support for Drupal 10 or 11, or Kanopi Studios stops maintaining it
- Sanity offers custom roles below Enterprise, or changes the Growth price of $15 per seat a month
- Sanity Workflows leaves early access
- Strapi moves role-based access control or Review Workflows to a different plan
Sources
Every source opened and checked on 25 October 2026.
- Drupal.org, JSON:API module
- Drupal.org, Upgrading from Drupal 6 or Drupal 7: Overview
- Drupal.org, Next.js project page
- Drupal.org, JSON:API Views
- Drupal.org, GraphQL
- Drupal.org, Drupal CMS
- Drupal.org, Assigning Permissions to a Role
- Drupal.org, Content Moderation overview
- Drupal.org, Multisite Drupal
- Drupal.org, About Drupal
- Drupal.org, Release process overview
- Kanopi Studios, Next.js for Drupal: Search API
- Kanopi Studios, Next.js for Drupal: Webform
- Sanity, Plans that scale with you
- Sanity, Sanity for Startups
- Sanity Docs, Roles and permissions
- Sanity, The Drupal developer's introduction to Sanity.io
- Sanity Docs, How early access works
- Sanity Docs, Scheduled drafts
- Sanity Docs, Hosting and deployment
- Strapi, CMS Pricing & Plans
- Strapi, LICENSE (GitHub repository)
- Strapi Docs, Role-Based Access Control (RBAC)
- Strapi Docs, Content-type Builder
- Sanity Docs, Studio development
- Drupal.org, Drupal Canvas
- Drupal.org, Drupal CMS project