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.

Headless Drupal keeps the editors' tools and moves all rendering to the new front end
Drupal featureHeadless Drupal 11Basis
Permissions by role and content typeKept in the back endDrupal.org user guide
Content ModerationKept; draft previews need front-end wiringDrupal.org
Webform and Search APIKept; forms and facets rebuilt in the front endNext.js for Drupal guides
MultisiteKept; shared code, a database per siteDrupal.org
Theme, Layout Builder and Paragraphs outputRebuilt as front-end componentsDeploi's judgment
Menus and blocksFetched and rendered by the front endDeploi's judgment
No page read says Layout Builder output works headless out of the box.Sources: Drupal.org (Assigning Permissions to a Role, Content Moderation overview, Multisite Drupal); Kanopi Studios (Next.js for Drupal: Search API, Next.js for Drupal: Webform). As of 24 October 2026.

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.

Each option wins one condition, named in the fit row
CriterionDrupal 11 coupledHeadless Drupal 11SanityStrapi Community
HostingYour servers or a Drupal hostDrupal host plus front-end hostSanity hosts content; you host the front endYour servers and database
Content modelContent types in the adminSame as coupledSchema in JavaScript codeContent-type Builder in the admin
Rich text storageHTMLHTMLPortable Text (JSON)Blocks or Markdown field
FitOne site on Drupal 11.3 or a later 11.x release; marketers build pages in Drupal CanvasEditors live in Drupal's back officeContent reuse, Drupal 7, no PHPLeave Drupal, self-host the database
Sources: Drupal.org (Drupal CMS, Multisite Drupal, Drupal CMS project, Drupal Canvas); Sanity (The Drupal developer's introduction to Sanity.io); Sanity Docs (Hosting and deployment, Studio development); Strapi (CMS Pricing & Plans); Strapi Docs (Content-type Builder). As of 24 October 2026.

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).

No option on the list is free to run, because each needs hosting and someone to apply upgrades
CriterionDrupal 11 coupledHeadless Drupal 11SanityStrapi Community
License and subscriptionGPL, no license feesGPL, plus a second hostFree $0; Growth $15 per seat a monthMIT, free to self-host
Upgrade burdenA Drupal major every two yearsDrupal majors plus the front-end frameworkStudio updates; Sanity runs the storeStrapi releases on your servers
The upgrade row is Deploi's judgment from each vendor's release model. Hosting costs depend on your provider and are not published.Sources: Drupal.org (About Drupal, Release process overview); Sanity (Plans that scale with you, Sanity for Startups); Strapi (CMS Pricing & Plans, LICENSE (GitHub repository)). As of 24 October 2026.

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).

Of the three, only Drupal ships a generally available moderation workflow without an enterprise plan
CriterionDrupal 11, coupled or headlessSanityStrapi Community
Custom rolesYes, by role and content typeEnterprise onlyYes, free
Editorial workflowContent Moderation: Draft, Published, ArchivedDrafts; Scheduled drafts on Growth; Workflows in early accessDraft and Publish; Review Workflows on Enterprise
Sources: Drupal.org (Content Moderation overview); Sanity (Plans that scale with you); Sanity Docs (Roles and permissions, How early access works, Scheduled drafts); Strapi (CMS Pricing & Plans); Strapi Docs (Role-Based Access Control (RBAC)). As of 24 October 2026.

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.

  1. Drupal.org, JSON:API moduledrupal.org · checked 24 October 2026
  2. Drupal.org, Upgrading from Drupal 6 or Drupal 7: Overviewdrupal.org · checked 24 October 2026
  3. Drupal.org, Next.js project pagedrupal.org · checked 24 October 2026
  4. Drupal.org, JSON:API Viewsdrupal.org · checked 24 October 2026
  5. Drupal.org, GraphQLdrupal.org · checked 24 October 2026
  6. Drupal.org, Drupal CMSnew.drupal.org · checked 24 October 2026
  7. Drupal.org, Assigning Permissions to a Roledrupal.org · checked 24 October 2026
  8. Drupal.org, Content Moderation overviewdrupal.org · checked 24 October 2026
  9. Drupal.org, Multisite Drupaldrupal.org · checked 24 October 2026
  10. Drupal.org, About Drupaldrupal.org · checked 24 October 2026
  11. Drupal.org, Release process overviewdrupal.org · checked 24 October 2026
  12. Kanopi Studios, Next.js for Drupal: Search APInext-drupal.org · checked 24 October 2026
  13. Kanopi Studios, Next.js for Drupal: Webformnext-drupal.org · checked 24 October 2026
  14. Sanity, Plans that scale with yousanity.io · checked 24 October 2026
  15. Sanity, Sanity for Startupssanity.io · checked 24 October 2026
  16. Sanity Docs, Roles and permissionssanity.io · checked 24 October 2026
  17. Sanity, The Drupal developer's introduction to Sanity.iosanity.io · checked 24 October 2026
  18. Sanity Docs, How early access workssanity.io · checked 24 October 2026
  19. Sanity Docs, Scheduled draftssanity.io · checked 24 October 2026
  20. Sanity Docs, Hosting and deploymentsanity.io · checked 24 October 2026
  21. Strapi, CMS Pricing & Plansstrapi.io · checked 24 October 2026
  22. Strapi, LICENSE (GitHub repository)github.com · checked 24 October 2026
  23. Strapi Docs, Role-Based Access Control (RBAC)docs.strapi.io · checked 24 October 2026
  24. Strapi Docs, Content-type Builderdocs.strapi.io · checked 24 October 2026
  25. Sanity Docs, Studio developmentsanity.io · checked 24 October 2026
  26. Drupal.org, Drupal Canvasdrupal.org · checked 24 October 2026
  27. Drupal.org, Drupal CMS projectdrupal.org · checked 24 October 2026