
I discovered yesterday that they’ve come up with a word for what I’ve been doing with AI: Vibe Coding. It was coined by Andrej Karpathy, a co-founder of OpenAI. On Groundhog Day(!) of this year, he posted this to X:
“There’s a new kind of coding I call “vibe coding”, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It’s possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. Also I just talk to Composer with SuperWhisper so I barely even touch the keyboard. I ask for the dumbest things like “decrease the padding on the sidebar by half” because I’m too lazy to find it. I “Accept All” always, I don’t read the diffs anymore. When I get error messages I just copy paste them in with no comment, usually that fixes it. The code grows beyond my usual comprehension, I’d have to really read through it for a while. Sometimes the LLMs can’t fix a bug so I just work around it or ask for random changes until it goes away. It’s not too bad for throwaway weekend projects, but still quite amusing. I’m building a project or webapp, but it’s not really coding – I just see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works.”
Yup. That pretty much describes it. I’ve actually been doing this a lot every single day. I’ve found that I really enjoy it to the point that I’ll vibe code instead of watching television or playing video games. Will that enthusiasm last? No clue, but for now, it’s a whole lot of fun.
And lest people think this whole vibe coding thing doesn’t teach you anything, I can definitely refute that. As I’ve been doing this, I’m becoming more and more comfortable working in Swift (the iOS coding language), figuring out how best to interact with Claude (my AI coding companion of choice) to get the best results. Yesterday, I learned how to use Terminal on a Mac to upload files to git and github, so my backup process is more reliable. I’m definitely learning, though it feels more like learning language by immersion than by a book.
I’ve found a few things work best for me:
- I only get so many chances to ask Claude questions within a certain amount of time before he tells me I can’t ask anything else for a few hours. To combat that, I’ve gotten much better at asking multiple questions at once. True, this might make me go through that data even faster. I’m not sure. But it’s felt to me like I get more done out of each session by doing it this way.
- It’s really important to get the back end of your app set up right before you start adding on bells and whistles. I jumped the gun my first time through, and I discovered later on that I’d really made a knot for myself that I had a hard time untying. It was easier in the end to just start over.
- Take multiple breaks to ask the AI to analyze your app as a whole and look for weaknesses or things that need to be fixed. I’ve found telling it to follow “best practices,” “industry standards,” and “make it easy to keep up to date” is key. It’s been helpful to let AI get very meta about the project. Instead of always just telling it to do things, giving it the chance to make suggestions and find holes that need fixing can do wonders. (And it makes sense. Claude knows way more about designing apps than I do.)
- Just fix one thing at a time as you’re working through the multiple queries you’ve asked AI at once. DO NOT try to make it do multiple things too quickly. You get bogged down in error messages, and it takes forever to get out of them.
- Don’t assume AI is going to always get things right. The more specific you can be, the more accurate it will be, but it still makes random mistakes. It’s up to you as the thinking human in the equation to be on the lookout for them.
- Work with AI to debug your software, feeding it the logs that happen as you’re using your app.
- Don’t get discouraged. When I’m feeling down, it helps to talk to Claude about what I’m doing and what I need to do. He’s always so positive. (Sometimes to a fault.)
- Don’t be afraid to just ask it to give you complete files to copy and paste. Sometimes its directions can get pretty murky. In fact, sometimes it seems to me its directions are just plain wrong, though that might be because I don’t know what I’m talking about. In any case, asking for the complete files almost always fixes this. (Though it does go through your data faster).
All in all, it’s a fun hobby at the moment. We’ll see if I can finish this app. If that happens, then maybe there’s the potential for it to be something more. I’ve got a number of apps I’d really like to build . . .