Writing
Notes on building for the web — 3D and WebGL, design systems, leading engineering teams, and the trade-offs behind them.
Get in touch-
August 23, 2026A trailer for Cadence, made by an agent for $6.13
OpenMontage runs video production as a pipeline an agent drives. It found thirty stock clips of real life, generated three more, picked the music by measuring it, and hand-wrote the Remotion composition. Thirty seconds, $6.13, no screenshots in it.
-
August 18, 2026Cadence: I stopped scattering my life across apps and built one
Notes in two apps, a new habit tracker every month, trips planned wherever I happened to be sitting. So I described the app I actually wanted, Claude built it, and thirty trackers now live in one place on my own disk.
-
August 15, 2026Warpath: the aim preview is a second physics engine
A medieval Peggle built in Phaser and Matter, with 48 boards drawn as pictures, a spacing guarantee the tests hold to, and a shot predictor that runs the real solver in a headless world rather than approximating it.
-
August 14, 2026The Mac sleep timer Apple deleted, and how to get it back
macOS quietly dropped its sleep timer in Ventura. Here is what replaced it, why the Terminal fix falls short, and the free menu bar app that brings it back.
-
August 13, 2026I made a horror game about IT support, and the monster is the documentation
Halworth XP is a browser horror game that is entirely an IT support desk. Thirty shifts, 75 tickets, four endings, and a help article that reads perfectly while telling you to do the wrong thing.
-
August 13, 2026Building Island Doodle Adventure: a multiplayer drawing game in React Three Fiber
A real-time draw-and-guess party game on a floating 3D island, built with React Three Fiber and Firebase — and the cold starts that cost more than the rendering.
-
August 9, 2026The Cooler: what happens when tic-tac-toe stops being the win condition
A roguelike deckbuilder that scores every three-in-a-row as a three-card poker hand. Built in Phaser and TypeScript, tuned by a headless balance harness, with no image assets anywhere.
-
August 5, 2026Using Claude Code without burning tokens
Opus to plan, Sonnet to build, Haiku for the errands — plus effort levels, context hygiene, and a skills tutorial. The dials that actually move the bill.
-
July 5, 2026Eleven years of JavaScript, from jQuery to React Native
What each era actually solved — jQuery, Backbone, CoffeeScript, Angular, React, React Native — and the handful of lessons that outlived all of them.
-
June 18, 2026What a company-wide UI library actually costs
Building the components is the fifth of the work nobody warns you about. Standards, Storybook, a coverage floor, and adoption.
-
July 28, 2026Baby Care: Dad's on Duty — shipping an isometric three.js game with no build step
Vanilla three.js, a procedurally generated house, co-op multiplayer and a global leaderboard — with no bundler anywhere.
-
January 14, 2024Using PocketBase.io as your backend for your next project
PocketBase gives you an embedded database, real-time subscriptions, authentication and a REST API in a single Go binary.
-
March 1, 2023 · ExternalBuilding Performant Websites with Astro 2.0's Next-Gen Frontend Architecture
A guide to Astro 2.0's islands architecture and what it changes about shipping JavaScript to the browser.