Drupal 11 is not a cosmetic upgrade. Released in mid-2024, it raises the PHP floor to 8.3, requires Symfony 6.4 LTS (with 7.x support coming), removes every API that was deprecated in Drupal 9 and 10, introduces Single Directory Components, ships Recipes, and firmly points the project toward a more modern, approachable future. This is the most complete Drupal 11 reference guide available outside the official documentation.

1. PHP & Symfony Requirements

Drupal 11 requires PHP 8.3 as the minimum. PHP 8.1 and 8.2 are not supported. This is a deliberate signal from the project: modern language features are now first-class citizens in Drupal core code, not optional extras.

On the Symfony side, Drupal 11 ships with Symfony 6.4 LTS components. Symfony 7.x compatibility is in progress and expected to land in a minor release. What this means practically: many Symfony DI, routing, and event dispatcher patterns you know from Symfony 6+ work identically in Drupal 11.

Database requirements have also tightened: MySQL 8.0+, MariaDB 10.6+, PostgreSQL 16+, or SQLite 3.45+.

2. Removed APIs & Modules

Drupal 11 is a clean slate for deprecated code. The major removals:

  • jQuery UI โ€” entirely removed from core. Replaced by native browser APIs and accessible custom components.
  • CKEditor 4 โ€” removed. CKEditor 5 is now the only supported rich-text editor.
  • Aggregator module โ€” removed from core (available as contrib).
  • Claro & Olivero โ€” still in core; Stark removed for contrib.
  • Symfony 4/5 deprecations โ€” any code using deprecated Symfony APIs from those versions will fail.
  • Procedural hooks with deprecated signatures โ€” modules using old hook patterns must be updated.

3. Single Directory Components (SDC)

SDC is the most significant developer experience improvement in Drupal's recent history. A component is now a self-contained directory containing a Twig template, a CSS file, a JS file, and a YAML definition โ€” all co-located:

web/modules/custom/my_module/components/alert-box/
  โ”œโ”€โ”€ alert-box.component.yml
  โ”œโ”€โ”€ alert-box.twig
  โ”œโ”€โ”€ alert-box.css
  โ””โ”€โ”€ alert-box.js

Components are registered automatically, can define typed props via JSON Schema in the YAML, and can be used directly in Twig templates with include or embed. The Experience Builder (Canvas) initiative is built entirely on top of SDC.

4. Drupal Recipes

Recipes are configuration packages that install modules, set up content types, create fields, configure views, and apply permissions in one command:

php core/scripts/drupal recipe recipes/core/editorial_workflow

Unlike Distributions, Recipes are composable โ€” you can apply multiple recipes to a site without conflicts. They are the technical foundation for Drupal CMS (Starshot), which ships as a set of curated recipes on top of vanilla Drupal.

5. CKEditor 5 as the Only Editor

CKEditor 4 was EOL in December 2023. Drupal 11 ships CKEditor 5 exclusively. The migration from CKEditor 4 to 5 is the single most common pain point in Drupal 11 upgrades we've handled. Key changes:

  • Plugin architecture is entirely different โ€” CKEditor 4 plugins require complete rewrites
  • Toolbar configuration is JSON-based and incompatible with CKEditor 4 configs
  • The Drupal media embed integration was redesigned to use CKEditor 5's native widget API
  • Custom styles and formatting options are now configured via the Drupal UI, not PHP code

6. Performance Improvements

Drupal 11 ships several core performance improvements:

  • Auto Page Cache โ€” smarter cache invalidation with fewer full rebuilds
  • Improved BigPipe streaming for authenticated sessions
  • Reduced memory footprint through removed legacy code
  • Better OPcache utilisation under PHP 8.3 with JIT tracing

In our benchmarks on migrated production sites, Drupal 11 consistently delivers 15โ€“25% faster time-to-first-byte compared to the same site on Drupal 10 with equivalent caching configuration.

7. Developer Experience Changes

Beyond the headline features, several DX improvements accumulate into a noticeably better workflow:

  • OOP-style hook declarations using PHP attributes (#[Hook('node_presave')])
  • Improved error messages and deprecation notices with actionable suggestions
  • Standardised JSON:API behaviour aligned with the specification
  • Better TypeScript support in Drupal's admin JavaScript layer

If you haven't migrated from Drupal 10 yet, now is the right time. Drupal 10 security support continues until mid-2025, but the ecosystem momentum โ€” modules, themes, hosting tooling โ€” is accelerating on Drupal 11.