Blog

I write about DevOps, WordPress hosting, cloud infrastructure, and web development. Here you'll find technical deep-dives, practical guides, and lessons learned from building and scaling production systems.

Scroll

Articles

  1. WordPress 7.0 ships the AI Client. The Abilities API and MCP Adapter are what plugin developers should learn first.

    WordPress 7.0 ships May 20 with the AI Client front and center. But the Abilities API has been in core since November 2025, and the MCP Adapter is what makes WordPress callable by external AI agents. Both deserve your attention before you write your first wp_ai_client_prompt() call.

    2507 words
  2. The Open Cloud Alliantie is real. Seven Dutch providers just made sovereignty a procurement conversation.

    Seven Dutch providers launched the Open Cloud Alliantie on April 1, 2026. The real impact is not technological. It changes what Dutch buyers can say in cloud procurement documents.

    2366 words
  3. Why most Kubernetes backup strategies don't survive real disaster recovery

    Most production Kubernetes clusters have a backup strategy that has never been exercised against the disaster it is meant to handle. What separates the teams who survive a DR event from the teams who don't is operational discipline, not tooling choice.

    2497 words
  4. Kubernetes 1.36 quietly buried one of the worst RBAC patterns in production

    Fine-grained kubelet API authorization graduated to GA in Kubernetes 1.36. The release notes call it 'more precise access control.' What it actually does is retire nodes/proxy as one of the worst RBAC patterns in production: a single permission that monitoring tools demanded by default, that bypassed audit logging and admission control, and that public research showed could be turned into a node-level RCE with a GET request alone.

    1630 words
  5. Why I'm leaving GitHub for Forgejo

    I moved my code from GitHub to a self-hosted Forgejo. Not because of the outages, but because of who owns what runs on top of them. The Dutch government just made the same call.

    3306 words
  6. copy.fail (CVE-2026-31431): a small Linux kernel bug with an unusually big blast radius

    copy.fail is a Linux kernel local privilege escalation disclosed on 29 April 2026. It works on nearly every modern distribution, leaves no on-disk trace, and slips past Kubernetes' default seccomp. Why it matters and what to do.

    1631 words
  7. HashiCorp Vault vs OpenBao: a thorough comparison for platform teams

    Two secrets managers, one shared codebase, two very different licenses. A deep, practical comparison of HashiCorp Vault and OpenBao for platform engineers picking between them.

    4605 words
  8. Symfony at 20: what the quiet framework got right

    Symfony turned twenty in October 2025. While Laravel captured developer mindshare, Symfony quietly won the architecture layer: the components that half the PHP ecosystem depends on without realizing it.

    1685 words
  9. WordPress Playground + MCP: AI coding agents meet a disposable WordPress environment

    The @wp-playground/mcp package connects Claude Code and Gemini CLI to browser-based WordPress instances via the Model Context Protocol. You describe a plugin, the agent builds it. No Docker, no local PHP. Here is what works, what doesn't, and why it matters.

    1611 words
  10. WordPress 7.0's real-time collaboration: what managed hosts need to prepare

    WordPress 7.0's real-time collaboration changes the load profile of every multi-user editing session. HTTP polling at one-second intervals, a new database table, and disabled post caches during active edits. Here's what hosting operators need to prepare before RTC ships.

    1797 words

Pagination

  1. Previous page
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. Next page

Search this site

Start typing to search, or browse the knowledge base and blog.