Vibe-coding: Break things faster!

In my youth, I briefly flirted with a full-stack engineering career. Though I’ve settled happily into product design, I still nurture a hobbyist’s interest in coding. I also design in the app-building space. So, motivated by love and duty, last month I dusted off my coding skills to spend a heady few days with conversational coding tools Cursor, Lovable, and GitHub Copilot.

Conversational coding (also known as "vibe-coding," coined by OpenAI researcher Andrej Karpathy) allows users to design an app with AI help.

It’s coding, fast and loose—great for rapid prototyping. The results are pleasant but cheap, without scalability or structural integrity. But it’s early days, and there’s a lot of money incentivizing folks to smooth out those kinks.

So I’m here today to say that, within minutes, you too can have a half-assed app!

My weekend engineering

On Friday, I created an app to rank my favorite local restaurants. By Saturday afternoon, I had made another app to check out the local surf conditions. And by Sunday, in an absolute fit of gluttony, I created a third tiny interactive RPG game. It was a breezy experience.

To create each app, I repeated and tweaked this process:

  • I spent a few minutes writing down what I wanted from the app, creating 3-5 sentences outlining the purpose, criteria, and general scope.

  • Then I jumped over to Chat GPT and asked it to turn that into a product spec doc. I breezed through this and adjusted as necessary.

  • I used this document as a basis for feeding information into the builders. That got me 75% of the way there each time.

  • I spent the next few hours editing to hone the results.

Each builder took conversational prompts and made an educated guess, producing a rapid "wow" moment. The app you envisioned is right here in your hands, and all it took was five minutes!

But that fun moment has some big catches. What vibe-coding could not offer me (or users in general) was solid guidance on best practices or guidance on refining results. The importance of this cannot be understated.

  • Best practices: Building a personal project is fun and games. However, when dealing with sensitive data, large databases, complex frameworks, etc., users could quickly encounter massive issues. Concretely, it's difficult to handle fundamental tasks like tracing dependencies across multiple files or choosing solid architecture to accommodate scaling.

  • Refining outcomes: My experience was that the easy wow of initial creation quickly devolved into a few hours of intense haggling to get the app to the finish line. Still, a sizeable improvement over the days would have taken me to code the app from scratch.

Conclusions

Conversational coding is, at best, a tool for rapid prototyping. It should not be relied upon as a developer; it cracks under that pressure pretty quickly.

Despite the cheapness of vibe-coding results, I keep thinking about it. It's fun as all get out. It's a quick dopamine hit. And folks are interested—Cursor reported 40,000 paying users last year, and it's driving growth at Github. So even if it has some big holes, it seems reasonable to anticipate that our users might demand it soon.

As to the actual platforms themselves:

  • Cursor: This one produced the quickest full-stack results, with the fewest errors. I’ll definitely be testing it out more.

  • Lovable: Gave the most visually pleasing results with its use of the CSS framework Tailwind.

    Special callout to Lovable’s conversational error handling. Even though refining outcomes was a generally tedious process, I enjoyed feeling like I was really pulling my weight in problem-solving, even though I was often just copying/pasting error logs.

  • Copilot: Most useful inside existing dev environments for snippet generation and autocomplete. This is the one I will carry forward into my coding practice. ⭐️

Questions I am asking:

  • Should B2B builders invest in what could be just a trendy moment? Or should we wait to see what our users actually want?

  • Do our users want to sprint the first three-quarters of a marathon with conversational code? Or could a template get them there just as quickly?

📚 Links:
Kevin Roose | Not a Coder? With A.I., Just Having an Idea Can Be Enough.
David Hoang | Too legit to Git
Benj Edwards | Will the future of software development run on vibes?