Journal · 4 posts

Engineering

  1. 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.

  2. 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.

  3. 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.

  4. 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.