Hacks for Drupal developers
Learn, build and ship better Drupal: practical hacks for Drupal developers.
Browse by topics
Fundamentals
How Drupal thinks: nodes, entities, fields, blocks, Views, users and permissions, and the request lifecycle that ties them together.
Modules
Custom module development: routes, controllers, forms, blocks, menus and permissions, written the way core writes them.
Hooks
Procedural hooks, OOP #[Hook] attributes, event subscribers and alter hooks: changing what Drupal does without touching core.
Entities
The Entity API, field types, bundles, entity queries, typed data and custom entities that scale past the first thousand rows.
Theming
Twig templates, render arrays, preprocess functions, libraries, single directory components and starterkit themes.
Caching
Cache tags, contexts and max-age, the render cache, Dynamic Page Cache and BigPipe, and why the page you changed still looks old.
Architecture
Services, dependency injection, the plugin system, design patterns and the Symfony components underneath it all.
Upgrades
Moving between major versions: deprecations, Upgrade Status, Drupal Rector and keeping a site current from 9 to 10 to 11.
Migration
The Migrate API, source and process plugins, Drupal 7 to modern Drupal, and imports from CSV, JSON and other platforms.
Configuration
Configuration management, config schema, Config Split, overrides and the State API, and deploying config without surprises.
APIs
JSON:API, REST, GraphQL and decoupled front ends, plus the HTTP client for talking to everything else.
Performance
Profiling, database queries, Redis, Varnish, CDNs, queues and cron: find the slow part, then prove the fix worked.
Get new posts by email
We send one email when a new post is published. No spam.