I had been thinking of writing a completely different blog post, but just a while ago I got sidetracked by Andrej Karpathy’s post on vibe coding at a hackathon. It is a great time to be alive when LLMs are changing technology forever, and one of the most famous researchers in AI is trying it out like the rest of us developers.
My vibe coding experience
Even before the term was invented in a tweet I had almost stopped writing code by hand. I let LLMs write at least 90% of any code I commit, and use LLM advice for the writing the rest. Here is a graphical representation of all the vibe coding I did in the last few months (thanks to Windsurf).
In the last few months I have vibe coded and launched some small websites, like
- A stackoverflow for coding prompts
- A gift searching site
- A browser-based game for kids
- A Totoro comic maker (I did this before OpenAI created the ‘Ghibli storm’)
I have also been working on a full-stack web app for a startup, among other things.
What is delightful about vibe coding
The beginning
Some people cannot start writing on an empty page. I think I am one of them. Vibe coding gives you a huge headstart - at least for web apps and websites. If you use small, concise prompts for each step of your project, you will almost always get working code.
Getting unstuck
Of course every project runs into issues. Every day. I have found that LLMs are better at debugging than you alone. At least you don’t need to wade through half of the internet to find the best answer for you.
API integration
Nothing on the web can be done reliably without using third-party APIs. The leading vibe coding environments do a decent job on this front as well. Choosing the right API also used to be a challenge. Again, LLM-based tools like Perplexity and Claude save you time and keep you moving faster.
Coming up with new approaches
Many times I have been pleasantly surprised by the way LLMs generate code for a task. Specially when it is not what I thought, but something better. Yes, this has happened many times with me. Which is why I often ask the LLM to write some code even though I also know one way of doing it. I guess there are always multiple ways of programming to solve the same problem. It is also probably because I am not a great programmer - most of my initial ideas are sub-optimal.
What needs to get better
Framework version changes
Sometimes the AI tools are not able to keep up with changes in software frameworks. I think this problem should go away when the vibe coding tools become more agentic.
UI improvements
The only tool which I have been seen create decent UIs is v0. There must be others too. But I am not happy with the kind of UI created by vibe coding IDEs today. Given that the basic purpose of all apps is to help humans, better UIs are a necessity. Humans judge by looks far too much.
Rust support
I have recently started trying to vibe code in Rust, and that has been quite rocky. I am waiting for this to improve, because I believe Rust is a far easier language for machines to understand. Unless that is exactly why it is not the best thing for LLMs, which are more human than traditional computer algorithms.
What next
I am waiting for this novelty around vibe coding to wear off. When this becomes the ’new normal’ and we don’t even notice it, we no longer might have to sit at a desk and do programming. Maybe we’ll be on a call with an AI agent who is doing the job, while we get to do better things in life.