Skip to main content
Home

Main navigation

  • Home
  • Updates
  • About me
User account menu
  • Log in

Breadcrumb

  1. Home

What Drupal 11.3.0 Means to Me: A Multi-Hat Perspective

By joehahn , 5 January 2026
drupal logo

Drupal 11.3.0 is out, and like many of us who manage Drupal sites, I don't just wear one hat. Depending on the hour of the day, I might be writing a module, tweaking CSS, or SSH-ing into a server to figure out why the disk is full.

Here is what the 11.3.0 feature list means to me when I put on my three different hats.

1. As a Backend Developer

"Finally, my .theme file isn't a dumping ground anymore."

  • Themes now support OOP Hooks: This is arguably the biggest quality-of-life improvement for developers who touch themes. Historically, our .theme files were 2,000-line monsters of procedural code (function mytheme_preprocess_node...).
    • What it means: I can now organize theme logic into clean, autoloaded classes inside src/Hook. I can have a class just for node preprocessing and another for form alterations, using PHP Attributes (#[Hook('preprocess_node')]) just like I do in custom modules. It makes the theme logic testable and readable.
  • Content Export (YAML) & CLI Tool:
    • What it means: The new content:export command is a game changer for the "Default Content" workflow. Previously, if I wanted to spin up a new site with a specific set of "demo" nodes or taxonomy terms, I had to rely on contrib modules or hacky scripts. Now, I can export a node and its dependencies (images, tags) to YAML with a native command. This is perfect for the scenario you mentioned: importing specific content from an external source into a fresh build without a full migration pipeline.
  • PHP 8.4 Support:
    • What it means: While 8.3 is the floor, 8.4 is the ceiling. It’s a signal to start auditing my custom code for 8.4 deprecations now, so I’m not scrambling next year.

2. As a Frontend Developer

"Less JavaScript, more HTML."

  • Native HTMX: You asked: "What is HTMX?"
    • HTMX is a library that allows you to access modern browser features (like AJAX, CSS Transitions, WebSockets) directly in HTML, rather than writing custom JavaScript.
    • What it means: Instead of writing a complex React component or a jQuery AJAX handler just to update a list of search results, you can add an attribute like hx-get="/search-results" to a button. When clicked, Drupal sends back HTML (not JSON), and HTMX swaps it into the page.
    • The benefit: Drupal Core is using this to replace old jQuery AJAX code. For us, it means we can build dynamic, "app-like" interfaces using Twig and HTML attributes, drastically reducing the amount of JavaScript we have to write and maintain.
  • CKEditor Autocomplete:
    • What it means: Editors can now type @ or standard link triggers to search for internal content inside the editor. It sounds small, but it stops clients from copying and pasting absolute URLs (which break on dev/stage sites) and forces them to use proper Entity References.
  • Navigation Module (The "New Toolbar"):
    • What it means: The vertical, collapsible sidebar is finally replacing the double-horizontal-bar "Toolbar" we've had since Drupal 7. It’s cleaner, mobile-friendly, and supports sub-menus better. It might take muscle memory retraining, but it frees up vertical pixel space for the actual site design.

3. As a Systems Admin / DevOps

"Security granularity and clearer boundaries."

  • Hosting support in Windows is deprecated:
    • This refers to hosting production sites directly on Windows Server (IIS). It does not mean you can't use Windows for development. If you use WSL (Windows Subsystem for Linux) or DDEV (which uses Docker containers running Linux), you are 100% fine. This is basically Drupal saying, "Please stop running production PHP on IIS; we can't test it, and it's not worth the headache."
  • New Permissions:
    • "Administer node published status": This is huge for workflows. I can finally let an Event Coordinator publish/unpublish pages without giving them the "Administer Nodes" permission (which basically lets them delete the whole site). It adheres to the Principle of Least Privilege.
    • "Rebuild node access permissions": This is a heavy database operation. Separating this into its own permission means I can let a senior editor fix permission glitches without making them a full Administrator.
  • Promoted to Frontpage Defaults to Unchecked:
    • What it means: A small but delightful fix. I no longer have to explain to clients why their "Privacy Policy" is appearing on the homepage blog feed because they forgot to uncheck a box that should never have been checked in the first place.
  • General Performance Boost:
    • What it means: Database and cache optimizations are always welcome. It means my existing hardware can handle a bit more traffic before I have to upscale the server, which saves money.

Tags

  • Drupal

Recent content

  • Error Handling for Humans: My Algorithm for Avoiding the Flu
    15 hours 37 minutes ago
  • Beyond VLC and Blender: My Essential (and Lesser Known) Free App Toolkit
    20 hours 32 minutes ago
  • What Drupal 11.3.0 Means to Me: A Multi-Hat Perspective
    1 day ago

Monthly archive

  • August 2025 (1)
  • September 2025 (7)
  • October 2025 (3)
  • December 2025 (1)
  • January 2026 (3)
Powered by Drupal