Drupal 11, released in late 2024, represents a clean break from legacy compatibility constraints that had accumulated over a decade. For teams building new projects, the upgrade path is simpler than it's ever been. For those maintaining existing sites, there's a clear migration story with excellent tooling support.
PHP 8.3 minimum — and all that comes with it
Drupal 11 drops support for PHP 8.1 entirely. The minimum is now PHP 8.2, with 8.3 as the recommended version. This means you can freely use enums, readonly properties, fibers, and the new array functions that make modern PHP genuinely pleasant to write.
In our projects we've already eliminated entire classes of defensive null-checking code thanks to first-class callable syntax and named arguments. The result is less code, and more importantly, code that reads like intent rather than plumbing.
CKEditor 5 is now the only editor
CKEditor 4 reached end-of-life in 2023. Drupal 11 removes it entirely. CKEditor 5 is the default, and it's substantially better: real-time collaborative editing, a plugin system that doesn't require loading an entirely different build, and an API that makes custom features genuinely maintainable.
For clients who need structured content editing, we now combine CKEditor 5 with custom block types rather than fighting with complex field widget configurations. The workflow is faster and the output is cleaner.
Symfony 7 under the hood
Drupal 11 runs on Symfony 7, the latest LTS release. The practical benefit for most Drupal developers is access to Symfony's improved autowiring, lazy services, and the ability to use modern Symfony component APIs directly. If you write custom modules that interact with the service container, you'll notice the performance improvement immediately.
Deprecated code is gone
Drupal 11 removed everything that was deprecated in Drupal 9 and 10. This is the headline for any team inheriting an old codebase: if your custom modules and contrib dependencies still use deprecated APIs, they will not work. The good news is that Drupal's deprecation checking tools (drupal-check, upgrade_status module) have been excellent for years — any responsible project should have run them before now.
Single Directory Components (SDC)
Introduced in Drupal 10.1 and now fully stable, Single Directory Components change how theme developers organize their work. Each component — a card, a hero, a navigation item — lives in its own directory with its Twig template, CSS, JavaScript, and schema file co-located. No more hunting across `/templates`, `/css`, and `/js` directories to understand what a component does.
We've been shipping SDC-based themes since 10.1 and the developer experience improvement is real. New team members onboard faster, and component isolation means changes don't cascade unexpectedly.
What about contributed modules?
The ecosystem is in good shape. The major infrastructure modules — Domain Access, Pathauto, Metatag, Webform, Redis, Simple Sitemap — all have stable Drupal 11 releases. A handful of less-maintained modules are still catching up, but the critical-path dependencies for typical agency projects are covered.
Should you upgrade now?
For greenfield projects: yes, start on Drupal 11. The developer experience is better, the performance is better, and you're not carrying legacy debt from day one.
For existing Drupal 9/10 sites: run upgrade_status, address deprecations, and plan a phased migration. The actual upgrade is straightforward once the codebase is clean. Most of our Drupal 10 client sites have been upgraded in a single sprint.
If you have questions about your specific project, reach out — we're happy to do a free technical assessment.