26 posts

Journal

Everything I've written here, newest first.

2026 13 posts

  1. FlowDrop 12 min

    FlowDrop Workflow Specification 1.0: Why a Workflow Engine Needs a Spec

    FlowDrop now has a published, implementation-independent workflow specification: 386 rules with permanent identifiers, conformance fixtures, and a clear answer to absent versus null in JSON. Why we pulled the rules out of the Drupal module, and what a written spec fixes that a test suite cannot.

  2. Engineering 14 min

    The Upgrade Path Is a Product Decision

    Atelier is built for people who have never heard of Drupal and will never open a terminal. That single fact turns 'it upgrades itself' into a veto over the dependency list — and a refactor where I had to say no to modules we wanted, delete code we were proud of, and start reading other people's roadmaps.

  3. Drupal 5 min

    What Started as a Bugfix: Revision Graph 4.0.0

    One ring drawn in the wrong place. Chasing it turned into a rewrite — because Drupal stores no parent pointer for revisions, and "parent" means three different things on a translated node.

  4. Engineering 17 min

    The LLM Read Every Register. The Answer Was a Smell.

    I gave an AI agent full access to a broken robot. It ran better experiments than I would have, ruled out six causes by measurement, and then wrote 'definitively exonerated' about a part it had no way to inspect. Every correction came from something I knew and it structurally could not — and one of its confident errors nearly went out in a warranty claim.

  5. Engineering 7 min

    Your llms.txt Isn't Being Ignored — Your Analytics Just Can't See It

    A recurring claim: 'I added llms.txt and nothing reads it — zero hits.' Almost every time, the zero comes from checking the wrong instrument. Client-side analytics is structurally blind to a plaintext file fetched by a bot. Here's why, and where the real answer lives.

  6. Musing 1 min

    The Bet Ships: Atelier Is Live

    A few weeks ago I wrote that I was betting a new product on an unfashionable foundation. It just launched. This is the short, happy note before the longer ones.

  7. Musing 5 min

    Am I Building on Sand? Betting a New Product on an Unfashionable Foundation

    A reflection on whether it makes sense to build a brand-new product on a mature platform the hype cycle has moved past – and why the answer depends entirely on whether that platform is your audience or your engine.

  8. Engineering 7 min

    Why I Don't Trust the Submit Button Toggle

    The day I stopped writing classList.toggle('enabled') around an async submit and started deriving the button's state from the form. A walk through why toggle is a weaker promise than set — and why even set is wrong, just more slowly.

  9. Musing 8 min

    Every Time Travel Movie Has the Same Fatal Flaw Nobody Talks About

    Step into a time machine, punch in a date, and you won't arrive in the past — you'll materialise in empty space. Here's the flaw every time travel story ignores, and why it makes the real version far more interesting.

  10. FlowDrop 8 min

    Why One Big AI Skill Is Slower Than Many Small Ones

    I ran the same multi-step AI workflow two ways — as one large skill and as a chain of small focused skills. The difference was staggering: 10 minutes vs. an hour. Here's why, and what it tells us about how workflows should be designed.

  11. Musing 2 min

    Are Micro PHP Packages Becoming Obsolete in the AI Era?

    A reflection on how AI code generation is changing the value proposition of small, single-purpose open-source packages, and what that means for the future of the PHP ecosystem.

  12. Drupal 4 min

    Winning the Drupal AI Hackathon – Play to Impact 2026

    Winning the Drupal AI Hackathon – Play to Impact 2026

  13. Drupal 4 min

    AI Agents for Content Editors

    Winning the Drupal AI Hackathon – Play to Impact 2026 - Part 2

2025 3 posts

  1. FlowDrop 3 min

    Configurable Workflows Are the Future — Why I Built FlowDrop

    Why configurable, in‑house workflows beat external orchestrators—and how FlowDrop’s visual editor lets teams own execution while moving fast.

  2. Drupal 4 min

    Visualizing Your Content's Evolution: A Content Creator's Guide to Revision Graph in Drupal

    Utilizing "Revision Graph" in Drupal to visualize Content's revision history

  3. Project management 3 min

    Competence, Capacity, Capability: The Secret Formula for Getting Things Done

    Avoid missed deadlines and uncompleted tasks. Explore how the 3 “C”s—competence, capacity, and capability—can help you master the art of task delegation.

2024 7 posts

  1. Project management 2 min

    Paisa Vasool - Satisfaction for realising Earned Value

    Explains how striving for 'Paisa Vasool' feeling from your customers can help increase customer satisfaction and improve your business

  2. Project management 2 min

    Performing Relative Estimations in projects

    Relative estimation sizes tasks against each other instead of in hours: what it is, why it holds up better, and how to run it with a team.

  3. Project management 3 min

    Calculating planned value for EVM

    Calculating planned value (PV) in "Earned Value Management" with S-curve method

  4. Project management 3 min

    Project Decomposition

    Use project decomposition to effective manage web development project

  5. Project management 3 min

    Maximising Project Efficiency using EVM

    Utilizing "Earned Value Management" for Website Development Projects

  6. Web design 2 min

    Corporate Component Library Considerations

    What a component library needs in an enterprise: brand alignment, governance, accessibility and room for many teams.

  7. Web design 3 min

    Design Systems vs Component Library

    A design system is the rulebook for how a product looks and behaves; a component library is the code that follows it. Where each starts and stops.

2023 1 post

  1. Web design 3 min

    The Importance of Semantics in Component Libraries

    Why naming components by meaning rather than looks makes a component library clearer, more accessible and easier to maintain.

2016 2 posts

  1. Legacy 2 min

    Setting up Drupal project and fabric

    Adding fabalicious to a Drupal project and wiring it into a git-flow branching setup.

  2. Legacy 3 min

    Drupal meets Fabric

    Managing several Drupal instances across servers with fabalicious, a deployment script built on Python Fabric.