Drupal 9: What the Nearly 20-Year-Old CMS Is Bringing Next
Drupal has been around for almost two decades now, and its next major release, Drupal 9, is on the horizon. In this episode of the Smashing Podcast, host Drew McLellan sits down with Angie Byron, a Drupal core committer and employee at Acquia, to unpack what’s changing and why this release is designed to be an easier upgrade than ever before.
The Guest: Angie Byron
Byron is well-known in the Drupal community as a longtime core committer. She currently works at Acquia, the company that builds commercial software and services around the open-source CMS. For this conversation, she walks through the major shifts coming with Drupal 9 and what they mean for the thousands of sites currently running Drupal 8.
You can follow Byron on Twitter or check out her personal website for more of her work. For full details on the release, the official Drupal site and its Drupal 9 overview page are the go-to resources.
A Smoother Upgrade Path
Historically, moving between major versions of Drupal has been a painful process. That’s not the case with Drupal 9, and that’s by design. Instead of piling on a bunch of brand-new features, Drupal 9 is primarily about cleaning house: removing deprecated code and updating the underlying dependencies, including the Symfony framework and Twig templates.
What does that mean for site owners? For anyone on Drupal 8, the upgrade path is essentially a minor version bump rather than a full rebuild. The key selling point is that if your site is already up to date with the latest Drupal 8 release and you haven’t been relying on deprecated functions, you can move to Drupal 9 without a major rewrite. This is a deliberate strategy to make sure the community doesn’t get stuck on an old version for years, as happened with Drupal 7.
Breaking Old Habits
The Drupal project is also taking a hard line on deprecated code. In the past, deprecated features would linger forever for backward compatibility. With Drupal 9, anything marked as deprecated in Drupal 8 is being removed, giving developers a clear incentive to keep their code tidy. This is a shift toward a more predictable release cadence: Drupal 8’s feature additions have been frozen, and all new development is now aimed at Drupal 10 and beyond.
That doesn’t mean Drupal is standing still. While Drupal 9 is primarily a modernization release, there are some notable improvements coming, particularly in the area of administrative tools. For example, the new workspaces module and better layout builder enhancements are aimed at making complex content management easier. The idea is to give content editors a more intuitive experience while keeping the platform stable under the hood.
Weekly Update
Aside from the main interview, the podcast also highlights some recent articles from Smashing Magazine that are worth your time:
- “How To Feel More Energized Even When You’re Stuck At A Desk All Day” by Suzanne Scacca
- “Equivalent Experiences: What Are They?” by Eric Bailey
- “How To Create Better Angular Templates With Pug” by Zara Cooper
- “How To Run The Right Kind Of Research Study With The Double-Diamond Model” by Steve Bromley
- “Mirage JS Deep Dive: Understanding Factories, Fixtures And Serializers (Part 2)” by Kelvin Omereshone
Drupal 9: A Major Release That’s Designed Not To Feel Like One
Drupal has a reputation problem. For many web designers and developers, their mental model of the project is based on what it was like 10, 15, or even 20 years ago. As Angie Byron, Senior Director of Product and Community Development at Acquia and a Drupal core maintainer for nearly 12 years, explains, the reality today is quite different. What was once a niche tool for technical users is now a full-featured content management framework used to power roughly one in 35 websites worldwide, from government portals and university sub-sites to cruise ship schedules and media outlets.
Byron describes Drupal as a "content management framework," which sets it apart from simpler systems like WordPress or static site generators. While WordPress excels as a blogging platform, and a custom framework like Symfony makes sense for highly bespoke applications, Drupal is designed to sit in the middle. It offers a user interface for site builders who want to create content and configure features by clicking through forms, but it also exposes a powerful API for developers who need to extend it. The system ships with a library of roughly 10,000 to 12,000 contributed modules, allowing users to bolt on features like forums, e-commerce, or five-star reviews without stitching multiple third-party services together.
What Actually Changes in Drupal 9
The headline news for Drupal 9 (released on June 3rd) is deliberately underwhelming for existing Drupal 8 users. Unlike previous major version jumps—which Byron affectionately describes as painful, costly upgrade processes—this release is built on the same foundation. For the past five years, the team has been effectively developing Drupal 9 inside Drupal 8. Through a semantic versioning process that delivered minor releases every six months (8.1, 8.2, and so on), new features and APIs were added in backwards-compatible ways.
Drupal 9's job is to do the cleansing. It cuts out all the deprecated code that was marked over the 8.x cycle, updates to the latest long-term support versions of underlying dependencies (think Symfony, PHP, and MySQL), and raises system requirements to enforce the use of versions that still have security support. Byron notes that the code reduction between 8.9 and 9 is roughly a 12% drop, but otherwise they are effectively identical. The benefit is a "clean slate" that will have security cover for years to come.
For those jumping from older versions like Drupal 7, the delta is far more substantial. Drupal 8 brought object-oriented PHP, mobile-friendly experiences, built-in configuration management, and the Views module for creating dynamic content lists. Subsequent minor releases piled on tools like a media library, workflow management, and drag-and-drop layout building.
Structured Content By Default
A defining characteristic of Drupal is its commitment to structured content. Rather than pasting a photo gallery feature wholesale, Drupal users build it from base components. You create a content type called "Photo," attach fields for the image file, caption, and dimensions, and then create a View to display a collection of those photos in whatever format you choose—be it a grid, two columns, or a custom card layout.
Because content is abstracted into entities and fields rather than baked into the HTML presentation layer, Drupal works as a true headless CMS. The built-in JSON:API support allows the same backend to power a website, a React single-page application, a mobile app, or a mall kiosk. Byron points out that you can even throw away the theme layer entirely if you only need the JSON output. Features like a granular users-permissions-roles system are still enforced by Drupal, ensuring that access controls apply to the data before it reaches any API consumer.
This structured approach also enforces a separation of concerns on the front end. Drupal uses the Twig templating language (a concept similar to Smarty from the Drupal 6 era) for its default theming. Twig is designed to keep HTML files free of complex business logic, which happens in modules behind the scenes. This separation helps developers because Twig also provides automatic escaping of variables, lowering the risk of accidentally introducing cross-site scripting vulnerabilities by printing user data like a username directly into a template.
The Authoring Experience and the Deployment Story
When asked if Drupal can compete with the authoring polish of services like Squarespace, Byron is candid: "We're definitely not at a Squarespace level." Squarespace is not building structured content in the same way—it offers self-contained pages with full control over HTML. Drupal's respect for structured content means it lacks a complete "take over the page" in-place editing experience. However, significant progress has been made via user research (conducted in real usability labs with eye tracking since 2008). This has led to a smoother admin theme, in-place field editing for content authors, a settings tray for quick configuration changes, and drag-and-drop capabilities in the layout builder.
For developers, the platform handles one of the hardest parts of CMS work: site deployment. In Drupal 8 and 9, the configuration management system stores every bit of configuration—from the site name to an email template—in a central system. This can be exported as YAML files and migrated between environments. This allows for git-based workflows where developers can git diff configuration changes, review them, and import them atomically, mitigating the "multiple database versions" problem that plagues other systems.
Upgrading and Cleaning House
The upgrade process from Drupal 8 to 9 is straightforward, depending on maintenance habits. If you consistently updated to every minor point release, you have likely already done the work. If you lag behind, comprehensive tools exist to help. There is an upgrade status dashboard on drupal.org that shows whether contributed modules are ready. Automated static analysis tools—including a PHP linter with a Drupal-specific wrapper called Drupal Rector—scan custom code for deprecated functions and, in many cases with Rector, automatically apply fixes. Byron reports that roughly 50% of contributed projects are either compatible already or require only a one- or two-line change that the tooling can handle.
Moving from Drupal 7 or WordPress is a larger effort. The generic Migrate API in Drupal 8 cares not about the source or destination. Plugins exist that map WordPress data sources into Drupal structures, but any site’s custom functionality will need manual mapping to a newer module. For the Drupal 7-to-9 path, Acquia is building the Migration Accelerator, a React-based tool that reads old Drupal 7 data and creates the equivalent Drupal 8/9 data with a tree of required modules. Drupal 7's core end-of-life is slated for November next year, though this date is under review due to COVID. To soften the deadline, Acquia—among other companies—offers extended commercial support for Drupal 7 to at least 2024.
Looking Ahead Without Breaking Things
Drupal 9 is moving toward a more modern developer experience. Byron highlights an initiative to modernize the JavaScript, moving away from the legacy jQuery codebase toward contemporary ECMAScript. Part of this involves revamping the admin interface to use a set of shared components (potentially React-based), which would allow third-party modules to reuse the same UI building blocks rather than reinventing the wheel. This would also expand the platform's ability to serve as a headless backend; the Contenta distribution already exists to get decoupled builds running quickly.
The balancing act between innovation and stability remains a core design principle. The project avoids following fads in its core code by testing new ideas in the contributed module space first. For example, JSON:API was prototyped as a contrib module—allowing for fast iteration—and was only moved into core after proving its viability and gaining community buy-in. Even then, it is still just a module. If the community decides to shift direction in the future, these pieces can be moved back to contributed in a graceful retirement, meaning the core software is never waiting on one particular dependency to stay relevant.



