An opinionated, hand-picked selection of Drupal content from around the web. No marketing, no ads, just thoughtful articles written by humans, for humans.

Inspired by PHPReads.

Converting hooks to OO methods made easy

| Joachim's blog

Rector is an opensource tool that parses code into a syntax tree and makes automated changes based on predefined rulesets. 

Joachim recounts how he used Rector to convert older procedural hooks into new Object Oriented hook implementations and how he cleaned up the code so it conforms to Drupal Code Standards.

Building a Page Layout: Canvas vs Display Builder (Part 1)

| HOOK_DEV_ALTER()

In this first part of a series on Drupal page building solutions, Andi Rüther compares how to build a page layout with Drupal Canvas vs Drupal Display Builder.

Dynamic type expressions in Drupal config schema

| Matt Glaman

Drupal's Config API supports variable placeholders inside square brackets -- think views.field.[table]-[field] or block.settings.[%parent.plugin]. In this in-depth article Matt Glaman explains the internal mechanics and available tokens, and lays out three different usage patterns.

How Drupal's chained fast backend keeps APCu cache consistent across your web servers

| Matt Glaman

Drupal's cache.backend.chainedfast cache backend improves performance on servers with APCu installed, even when you're balancing traffic across multiple web servers. Learn more about the possibilities and dangers of using the chained-fast backend.

Drupal 12 switches to Argon2id

| Dries Buytaert

Drupal 12 will switch from bcrypt to the Argon2id hashing algorithm to protect stored passwords. Dries explains how and why this helps harden all new Drupal sites.

Change Record: The 'version' value in .info.yml files must be a string

As of D11.4, the version value in .info.yml files must be a string as using numeric literals can lead to all sorts of problems.

Help us reach Drupal 12's second release window in August

Gábor recaps the Drupal 12 release windows for 2026, including the 12.0.0 target release date, and highlights which of the highest priorities still need help. This includes supporting PHPUnit 12 and ESLint 9, removing deprecated modules/packages, and excluding test files from standard releases.

Drupal 11: Making Interactive Elements With HTMX

| Hash Bang Code

HTMX is a platform agnostic framework that lets you add AJAX calls and CSS transitions without writing JavaScript code. You can add it to your custom module or theme where it combines with (or replaces) your traditional custom JS.

In this article Phil demonstrates how to use HTMX stand-alone and how to integrate it into your custom theme or module.

Understanding Drupal: A Complete Guide to Caching Layers is now published!

| Matt Glaman

Matt Glaman announces his new book, Understanding Drupal: A Complete Guide to Caching Layers, published after a long delay. 

 

Deploying to Private Servers via WireGuard from GitHub Actions

| Lullabot

Lullabot's deployment processes combine both privately and publicly accessible services and resources. 

Zequi Vazquez describes how they automate deployments to an internal Debian server using WireGuard VPN, an HMAC-authenticated webhook, and a centralized GitHub Actions workflow without exposing their server to the public internet.