Three weeks ago I started a desktop app. Since then: 169 commits, about 48,000 lines in src/, and I typed very little of it myself. Claude Code did. I steered, tested and, more than anything, said no.
That last part surprised me. I expected the bottleneck to be the model getting things wrong. It wasn't. The bottleneck was me letting too much in.
When code is cheap, everything looks worth building
Here's what nobody warned me about. When a feature costs you a sentence and ten minutes, the question "is this worth building?" quietly stops being asked. Everything is worth building, because nothing costs anything.
So I built everything.
Between October 13 and 19 I shipped 29 releases in 7 days. Version 0.7 to 1.9. Every idea went straight in, every release had something new. It felt amazing. It also made the app loud. New windows popped up on top of the terminal. The dock filled with icons. The first-start screen asked "How much do you want to see?" before people had seen anything at all.
Nothing was broken. It was just too much, and I couldn't see it while I was the one adding things.
The no's that made it better
Looking back through my commits, the changes I'm proudest of are mostly removals or restraint:
- "New windows never cover Claude." Every new window now finds free space instead of opening on top of the terminal you're working in. One rule, no new features.
- New features go into a "More" menu, not the dock. The dock is for the five things you use every hour.
- The "How much do you want to see?" question is gone. You start calm, and you find more when you look for it.
- The stats card ("Vibe Wrapped") lost its AI-style gradients and got a calm, printed look instead.
- The phone connection lost one of its two tunnel options. Two choices meant two things to explain.
- No account, no sign-up, no Discord server. Questions go to GitHub issues.
- One bigger tested release at a time instead of 30 a week. Feature freeze a few days before.
None of these needed much code. All of them needed someone to say "no, not like that".
The model is great at "yes"
Claude Code is extremely good at doing what you ask. That's the problem. Ask for a toggle and you get a well-built toggle with tests. It won't tell you that nobody will ever find it between all the other toggles.
So these are the questions I try to ask now, before saying "build it":
- Who opens this, and how often?
- What does it push off the screen?
- Would I notice if it were missing?
If I can't answer the first one with a real person, it waits. Ideas that people actually ask for in GitHub issues (with a 👍) go into the next release. The rest stays an idea.
Taste is the job now
I don't think "AI will replace developers" or "AI is just autocomplete" describes what I'm doing. It feels more like being an editor with an infinitely fast writer. The writer never gets tired and never pushes back. The editor has to.
And editing is hard in a new way. You're not judging whether the code works. Usually it does. You're judging whether it should exist.
What this doesn't prove
This is one solo project with no team, no users to negotiate with and no deadline except my own. In a team, "no" is spread over code review, product people and design. I'm doing all of it alone, so maybe I just feel it more.
Question
If you build with an agent most of the day: what's the hardest part of your job now?
A) checking the code is actually right
B) deciding what to build at all
C) keeping the codebase understandable for future me
D) something else, tell me
And what's the last thing you said no to?
(The app is VibeDesk, a calm desktop for running several Claude Code sessions on Windows. Wishes go in its GitHub issues.)
Top comments (0)