I’ve been doing a ton of vibe coding. A ton. I have a fairly large app that I’ve built with significant functionality. For my money it is as production ready as many things out there.
I've been really following two modes - make it as robust as possible vs just make the thing already.
For making it as robust as possible I have some patterns that I'm finding productive.
I've been really following two modes - make it as robust as possible vs just make the thing already.
For making it as robust as possible I have some patterns that I'm finding productive.
- Lots of automated tests, in particular for API endpoints, and views. The larger app I have running now has over 380 pytest tests, all passing.
- Creating design documents in markdown.
- When a knotty problem comes up that clause can’t solve I get it to write up what it’s tried, and what it thinks the problem is. Then I send that to a different LLM. Then I send that report back to Claude and that usually helps.
- git. Always git.
- I use warp as my terminal and it has a chat mode. Warp's chat mode can write fantastic commit messages. I use that.
- For my larger projects, I get Claude to write user facing api docs. Claude then uses those docs when creating new features.
- Regularly pruning. I'll get Claude to review the codebase with strict instructions to look for duplication and anti patterns. This works well.
- I setup a docker container for running dangerously skip permissions for more fun throw away projects. That's been a blast.
One thing I’ve been reflecting on is the enhance sense of FONO - fear of not Operating. The damn things can do so much and I have so many ideas and yet I don’t have an agent that can just head off and work on things for me. So I feel like I should be making time every day to do attend to Claude code, but I don’t have that time. That will change as modalities of agents improve but it’s an interesting moment and an interesting sense of time slipping through my fingers.
GPT-5 is also a beast.