Blog
Read the latest posts from my blog.
Anil Dash on Codeless
The next meaningful breakthrough that has emerged in AI‑assisted software development is orchestrating fleets of coding bots that can build entire fe...
Raphael Amorim on Monozukuri and Software Development
[AI prioritizes] time over quality. To achieve quality, a programmer needs to have experienced what is being built. Software development follows the...
Details Make the Design
I was poking around on Detail, getting some inspiration when it occurred to me that the small details really do make a big difference. I know that's ...
Signs of AI Writing Checklist
Wikipedia has a good page about the Signs of AI Writing. When I mentioned that we should try to educate others about writing (rather than slamming th...
Why I Chose Tauri for My Text Adventure Game
When I started designing Head in the Cloud, a horror text-adventure game, I figured C would be the natural language of choice. There is a romanticism...
Summary of the HTTP Archive 2025 Web Almanac
The HTTP Archive's 2025 Web Almanac is important but huge at 15 chapters. I've summed up each chapter so you can get gist without having to spend hou...
Conviviality as the Antidote to Enshittification
A website to destroy all websites argues that friendliness is the cure for enshittification (the process where online platforms degrade in quality ov...
Don't Forget About JavaScript Iterators
In Stop turning everything into arrays (and do less work instead) Matt Smith argues that modern JavaScript developers often default to converting dat...
Code Review at AI-Scale
Traditional Code Review Is Dead. What Comes Next? makes the case that humans won't be able to keep up with code reviews when AI is at scale. It concl...
AI-Ready Frontend Architecture
To get the most out of AI it makes sense to architect your frontend in a well-known and predictable way. I've been thinking about what an AI-ready fr...