Skip to main content
Cache tags vs cache contexts: the mental model that ends “why won't my block update?”
drupal

Cache tags vs cache contexts: the mental model that ends “why won't my block update?”

The single most misunderstood corner of Drupal, and the root of ~90% of 'stale content' and 'user B sees user A's data' bugs. The one-line model: stale = a missing cache tag, leaking = a missing cache context. How they bubble, why max-age:0 quietly poisons a whole page, and the debug header that finds the culprit in seconds.

2026-08-03 / 04 min
A green backup dashboard is a lie until you've restored it — so I restored this blog
engineering

A green backup dashboard is a lie until you've restored it — so I restored this blog

~82% of disaster-recovery setups are never tested. So I actually restored this blog cold into a throwaway container: 23MB dump in ~1s, fresh DB up in ~12s, restore in 3s, verified 47 articles back. The real lesson wasn't the sub-minute RTO — it was that the dump doesn't contain the secrets and config that actually make the site run.

2026-08-03 / 04 min
When the founder burns out: Jellyfin's leadership exodus and your homelab's bus factor
tooling

When the founder burns out: Jellyfin's leadership exodus and your homelab's bus factor

Three core Jellyfin people, including the founder, stepped away in one week of July — mostly burnout, told fairly. The project isn't dying, despite the headlines. But it's a clean look at the bus factor of volunteer FOSS, and the unglamorous things a self-hoster should actually do about it.

2026-07-29 / 05 min
Docker 29 quietly changed two defaults — the reinstall will surprise you, not the upgrade
engineering

Docker 29 quietly changed two defaults — the reinstall will surprise you, not the upgrade

Docker Engine 29 (out since November, security-patched to 29.6.2 in July) makes the containerd image store the default for fresh installs and adds an experimental nftables backend. On a single Coolify VPS the danger isn't upgrading in place — it's a from-scratch rebuild, and one firewall switch you should not flip on prod.

2026-07-29 / 04 min
Anthropic's $1.5B copyright settlement: what it actually means for devs (and what it doesn't)
ai

Anthropic's $1.5B copyright settlement: what it actually means for devs (and what it doesn't)

Final approval landed July 20. Training on legally-acquired books was ruled fair use; acquiring pirated copies was not. But the ruling says nothing about model outputs and creates no forward license — so for a dev using Claude to write code, it changes nothing in either direction. Separating the headline from the law.

2026-07-29 / 04 min
Stop sending email from your VPS — I checked my own DNS and even I got it wrong
engineering

Stop sending email from your VPS — I checked my own DNS and even I got it wrong

Gmail and Outlook now hard-bounce unauthenticated mail instead of junking it. Sending straight from a VPS is a reputation treadmill you lose. The fix is to relay but keep your own SPF/DKIM/DMARC — which is exactly where I found my own footgun: a live 'v=spf1 -all' with no relay include, my newsletter surviving on DKIM alone. Here's what each record does and how to not do what I did.

2026-07-27 / 05 min
My VPS bill jumped and OVH isn't the villain — your next gaming PC is
engineering

My VPS bill jumped and OVH isn't the villain — your next gaming PC is

My OVH renewal came in ~45% higher, and for once the host isn't being greedy: the world's affordable RAM is being fed to AI accelerators. Why DRAM contract prices nearly doubled, why 'just switch to Hetzner' doesn't help, why it won't ease before 2027 — and the actual tuning that made my 4GB box need less memory instead.

2026-07-27 / 04 min
AI feels faster. A careful study says it made experts slower. I went looking in my own week.
ai

AI feels faster. A careful study says it made experts slower. I went looking in my own week.

METR ran a proper randomised trial: experienced devs felt AI made them 20% faster; the stopwatch said 19% slower. I use Claude Code daily and would have bet the same way they did. What the study actually measured, the nuance that stops it being 'AI is useless', and the uncomfortable thing I caught myself doing on code I know cold.

2026-07-27 / 05 min
The EU AI Act grows teeth on August 2nd. Here's what actually changes for a Belgian dev.
ai

The EU AI Act grows teeth on August 2nd. Here's what actually changes for a Belgian dev.

The panic says every European developer needs a compliance officer by Sunday. I read the regulation instead. Using Claude Code to write code? Nothing changes for you. Shipping an LLM feature? Smaller than you fear. The €35M headline? Not even the right number. An honest split of hype from what a solo dev must actually care about.

2026-07-27 / 05 min
hook_ is dying (slowly) and I started rewriting my .module files anyway
drupal

hook_ is dying (slowly) and I started rewriting my .module files anyway

Attribute hooks have been stable since Drupal 11.1, so I converted this blog's SEO module from a procedural .module file to a #[Hook] class. The catch nobody mentions: procedural hooks aren't actually deprecated yet and won't be removed before Drupal 13, around 2028. What's worth doing now, what isn't, and the LegacyHook trap that quietly fires your hook twice.

2026-07-24 / 05 min
Subscribe to Engineering