July 21, 2026 · Personal Thoughts· 4 min read
The Work That's Left
An AI agent builds almost all of my website now. Here's the honest account of what that actually leaves me doing, and why the scarce skill turned out to be knowing what to leave out.

An AI agent built almost all of this website. Not the words (the words are mine), but nearly everything else: the components, the migration scripts, the fussy TypeScript I didn't feel like typing out by hand. I only get my hands dirty when a change is small enough that doing it myself is faster, or when the agent can't quite work out what's wrong. I mention this because the honest version of "how I work now" is more useful than the version where I pretend nothing has changed, or the one where I pretend everything has.
So here's the honest version.
Where the agents actually help
I don't write much code anymore. That doesn't mean I've stopped working; if anything I work differently, and probably more. My days now go into reading, planning, testing, and documenting, more of each than back when I was the one typing everything out.
The loop looks like this. I propose a feature, then talk it through with my agent across several iterations, shaping and reshaping until everything sits the way I want it. Sometimes I get most of the way there, notice something I missed, and start the whole thing over. Having something to think *against* is genuinely useful; it beats a blank file and it's less lonely than a whiteboard. It's the old rubber duck debugging trick, where explaining a problem out loud is half of solving it, except this duck occasionally hands you a working draft.
The result is a strange compression of time. Work that would once have taken me a week, I can now stand up in a day, tests and documentation included. The mechanical middle, the boilerplate and the plumbing and the tricky first pass at a type, mostly takes care of itself. What's left is the part I actually wanted to do.
Confidently Wrong
Here's the thing nobody's automating away: the judgment.
An agent will happily generate a working component that is subtly wrong: inaccessible, over-engineered, structured in a way that will hurt in six months. It doesn't know that the modal it just built traps keyboard focus incorrectly, or that the abstraction it reached for is one you'll rip out the moment requirements shift. It has read everything and decided nothing. Deciding is still the job.
This is truer in frontend than people like to admit, because so much of frontend is taste applied to constraints. Which state belongs where. When a pattern earns its indirection and when it's just showing off. Whether an interface actually respects the person using it. None of that arrives for free in the output. You bring it, or it isn't there.
余白
This site is named for a Japanese idea, 余白 (yohaku), the space you deliberately leave empty. In design it's the margin, the pause, the room around a thing that lets it breathe. I've come to think it's the right frame for working with these tools, too.
Because the strange new problem isn't scarcity; it's abundance. An agent will generate as much as you ask for, and then some. It costs almost nothing to produce ten variations, five layers of abstraction, a feature no one requested. So the scarce skill is no longer *making* things. It's knowing what to leave out. What not to build. Where to stop.
That was always the hard part of good frontend. It's just louder now.
How I actually think about it
I don't feel replaced. I feel like the boring middle of the work got quieter, while the two ends got louder: understanding the problem, and judging whether the solution is any good. Those ends are where I wanted to spend my time anyway.
So the agents stay. They're in my editor, my terminal, my planning. But the decisions are still mine, the taste is still mine, and the responsibility for what ships is still mine. That feels like the right arrangement. Not a threat, not a miracle. Just a sharper set of tools, and the same question underneath as always: is this good, and how do you know?