Insights & Resources
Migration

Upgrade to Drupal 10: Lessons From the First Months of Institutional Adoption

Drupal 10 shipped in December 2022. By April 2023, the early-adopter institutional sites had been in production for several months. This is what those first months taught about Drupal 10 in institutional production.

5 min readApril 19, 2023

Upgrade to Drupal 10: Lessons From the First Months of Institutional Adoption

Drupal 10 shipped on December 14, 2022 after the well-documented six-month delay. By April 2023, the early-adopter institutional sites had been in production for four months. This post is what those first months taught about Drupal 10 in institutional production: what worked smoothly, what surfaced friction, and what institutions still on Drupal 9 should know before scheduling their own upgrade.

We covered the prerelease context in Brace Yourself for the Drupal 10 Release and the upgrade matrix from any source version in Upgrade to Drupal 10 From Any Version. This post is about what was actually learned in early production.

What Worked Smoothly in Early Production

The headline result from the first months of Drupal 10 in institutional production: the upgrade-from-Drupal-9 path held up. For institutions on current Drupal 9 (9.4 or 9.5) with maintained contrib modules and PHP 8.1-ready hosting, the upgrade was the routine version bump the Drupal core team had promised.

Symfony 6 integration. The Symfony 4 to Symfony 6 jump was the largest dependency change in Drupal 10. In production, the core team's integration work held up. Custom modules with deep Symfony dependencies (a small fraction of institutional Drupal) needed updates, but the path was straightforward.

PHP 8.1 compatibility. Custom code written for PHP 7.4 generally worked with minor adjustments. Static analysis with PHPStan caught the issues before runtime. Hosting platforms that had moved to PHP 8.1 in late 2022 had no PHP-related Drupal 10 issues in early 2023.

CKEditor 5 transition. Content authored in CKEditor 4 generally migrated cleanly. The CKEditor 5 surface was different enough that institutional content authors needed brief retraining, but the underlying content rendered correctly. Institutional sites with deep CKEditor customization (custom plugins, custom toolbars) had more work; out-of-box CKEditor configurations worked smoothly.

Olivero theme. Institutions that adopted Olivero as the front-end theme reported clean WCAG 2.1 AA compliance and Layout Builder integration that worked as documented. For institutions with custom themes, Olivero became the reference for what a Drupal 10 theme should look like.

Claro administrative theme. Content authors reported Claro as a meaningful improvement over the legacy Seven theme. The administrative experience felt modern; the institutional content team complaints that had accumulated during the long Seven theme era largely resolved.

What Surfaced Friction

Not everything was clean. The friction points that institutional Drupal teams encountered:

Contrib module gaps in early 2023. A meaningful portion of contrib modules had not yet shipped Drupal 10-compatible releases by December 2022 or January 2023. Institutions that depended on niche contrib (specialized field types, integration modules with specific external services, legacy form builders) sometimes had to wait or sponsor contrib updates. By April 2023, the contrib gap had largely closed; by mid-2023, it was effectively gone.

Custom theme remediation. Custom themes built deep against Bartik (the Drupal 9 default theme) or against the pre-Drupal-10 theme APIs needed remediation. The work was straightforward but not zero. For institutions with substantial theme customization, this was the largest single piece of upgrade effort.

jQuery UI deprecation impact on legacy admin tooling. Institutional Drupal admin sites with custom administrative tooling that depended on jQuery UI components (date pickers, dialogs, sortable lists in custom modules) needed remediation. The replacement pattern (vanilla JavaScript or modern UI libraries) was clear but required custom code work.

CKEditor 5 plugin gap. Institutional sites with custom CKEditor 4 plugins (specialized embed handlers, custom button toolbars, custom content sanitization) had to rewrite those plugins for CKEditor 5's modular architecture. CKEditor 5 plugins are not source-compatible with CKEditor 4 plugins.

Search API and Solr integration. Institutions running Search API with Solr backends sometimes saw integration issues during the upgrade. The contrib modules caught up over the first quarter of 2023, but early adopters in December 2022 hit edge cases.

What This Meant for Institutions Still on Drupal 9 in 2023

For institutions on Drupal 9 in mid-2023, the Drupal 10 upgrade picture was clearer than it had been in December 2022. The contrib gap had closed. The known friction points had documented mitigation patterns. The upgrade was a routine planned event, not a leap of faith.

The recommendation that crystallized in early 2023: institutions on Drupal 9 should plan the Drupal 10 upgrade as a deliberate, documented operational event scheduled within their next 6 to 12 months of capacity. Drupal 9 reached end-of-life in November 2023, which gave institutions a hard deadline. Institutions that scheduled the upgrade thoughtfully (accounting for theme remediation, custom code review, contrib audit, staging validation) had cleaner outcomes than institutions that compressed the upgrade into a final-month rush.

What Mature Drupal 10 Institutional Operations Required

The operational pattern that the early adopters demonstrated:

Drupal 9 currency before the upgrade. Drupal 9.4 or 9.5 was the right starting point. Sites on older Drupal 9 minor versions had additional remediation before the Drupal 10 upgrade could start.

Contrib audit and inventory. Every contrib module was inventoried, its Drupal 10 readiness checked, and a remediation path documented. Modules without Drupal 10 releases were either replaced, removed, or sponsored.

Custom code static analysis. PHPStan against the custom code base, with PHP 8.1 as the target. Issues remediated before the Drupal 10 upgrade started.

Theme remediation as a separate workstream. For institutions with custom themes, the theme remediation was scoped and executed as a workstream parallel to (or preceding) the core upgrade. Theme-and-core in the same change window was operationally fragile.

Authorization documentation. For government Drupal on AWS GovCloud or Azure Government, the upgrade was a documented event in the system security plan. The change-control evidence is part of the audit posture. We covered this pattern in AWS Shared Responsibility for Government.

Staging validation against production data sample. Staging environments hydrated with production-realistic content (de-identified where appropriate) caught the institution-specific issues that generic Drupal 10 testing did not.

Post-upgrade observation period. After the production upgrade, a documented observation window (typically two to four weeks) with elevated monitoring, fast rollback capability, and cross-team availability for issue triage.

For managed Drupal hosting engagements supporting government and higher-education Drupal workloads, this is the standard upgrade engagement shape. The discipline applies to every Drupal major version transition.

Frequently Asked Questions

Should institutions still on Drupal 9 in 2026 still upgrade to Drupal 10?

Yes, then plan the Drupal 11 upgrade. Drupal 9 is past end-of-life. Drupal 10 is the supported migration target from Drupal 9. Drupal 11 (released in 2024) is the supported migration target from Drupal 10. Skipping Drupal 10 is not a supported path.

What was the typical effort range for an institutional Drupal 9 to Drupal 10 upgrade?

For sites with light customization and current contrib: hours to days. For sites with custom themes, custom modules, and substantial CKEditor 4 customization: weeks. For institutions with multiple sites, the per-site effort drops as the upgrade pattern is standardized.

Did any early adopters regret upgrading to Drupal 10 in December 2022 or January 2023?

The institutions that regretted the timing were the ones that depended on contrib modules without Drupal 10 releases at launch. By Q2 2023, the contrib gap had closed, and the regret was largely about timing rather than the upgrade itself. Institutions that waited until Q2 2023 or later had a smoother experience.

What was the most common single source of post-upgrade issues?

Custom theme remediation done quickly under deadline pressure. Themes that had been working in Drupal 9 looked superficially like they worked in Drupal 10 but had subtle rendering issues, accessibility regressions, or layout breaks that surfaced over weeks of production use. The mitigation: budget the theme work as a real workstream, not an upgrade afterthought.

Ready to take ownership of your platform?

Stop managing vendors. Start operating a platform.

We assess your current environment, identify operational gaps, and outline what a managed engagement looks like for your organization.

No commitment requiredResponse within 1 business dayTrusted by 100+ institutionsWe will not spam your inbox