03 / Blog

Notes on building things.

Architecture, AI workflows and the code behind them, with the diagrams I drew to get there.

  1. 2026.10.12ArtCraft: Adobe-style apps, rebuilt in Rust.Seven free, MIT/Apache-licensed apps that aim at Photoshop, Illustrator, Premiere and the rest, written in Rust with AI agents and running on the desktop or in a browser tab. What it is as of 2026.10, what clean-room means, and how honest the readiness numbers are.→
  2. 2026.10.12Easing: why some motion feels right.Two boxes cross the same distance in the same time and one of them feels alive. A short, practical tour of easing functions: what the curve means, which one to reach for, and how to write any of them in CSS today.→
  3. 2026.10.12Claude Haiku 5.5 vs 4.5, in plain English.Anthropic's new small model costs a tenth as much per token on most requests, reads five times more at once and jumps from 1 in 6 to about 3 in 4 on desktop tasks. What changed from Haiku 4.5, what the benchmark numbers actually mean, and what breaks when you switch.→
  4. 2026.10.11e2e: the agent clicks once, then replays.TesterArmy's open-source e2e framework lets you write a test step in plain English. An agent drives it once, the step is recorded when a later check passes, and every run after that is a replay with no model calls. What it does, as of 2026.10, and where the catch is.→
  5. 2026.10.11JPEG XL in Chrome: same photo, fewer bytes.Chrome 155 decodes JPEG XL. What the format buys you, how to repack the JPEGs you already have without losing a pixel, and the four lines of HTML that let you ship it today with a safe fallback. As of 2026.10.→
  6. 2026.10.10Grill me: let your agent ask before it codes.Most bad agent code is the right code for the wrong plan. Matt Pocock's /grill-me skill is two lines long and adds no knowledge at all: it changes when the agent acts. Here is how the design-tree interview works, why it works, and when not to use it.→
  7. 2026.10.09Vite+ 1.0: one CLI instead of six tools.VoidZero shipped Vite+ 1.0 on 2026.09.28: one free command, vp, and one vite-plus dependency in place of Vite, Vitest, ESLint, Prettier, tsup and Turbo. What it is as of 2026.10, what runs underneath, and what it doesn't do yet.→
  8. 2026.10.09React <ViewTransition>: wrap it, then start a transition.React 19.3 made <ViewTransition> stable, and Next.js 16.4 ships it. Wrapping an element is only half of it: nothing animates until the update is a Transition. What triggers it, the four kinds of animation React picks, what the browser actually does, and the pitfalls that make it silently do nothing.→
  9. 2026.10.08Does this code need to exist?Ponytail is an agent skill that makes AI coders walk a seven-rung ladder before they write anything: does it need to exist, is it already here, does the language or the browser do it. The ladder works just as well without the tool. Here is each rung, with code.→
  10. 2026.10.07A coding agent is just a loop.Strip a coding agent down and you find a while loop, a few tools and a chat that keeps growing. A tour of that loop, using Pi, the open-source agent that ships with four tools and a prompt under 1,000 tokens, as the specimen.→
  11. 2026.10.06Claude Code mods are middleware for your agent.Claude Code now loads mods: plugins made of your own JavaScript or TypeScript that run inside the agent. Every hook gets ($, e, next), the same shape as Express and Koa middleware. What a mod is, the three things a hook can do, how to make a guard fail closed, and what you are trusting when you install one.→