• Magic Beans
  • Posts
  • Vibecoding in 2025: The Promise and Perils of Programming with AI

Vibecoding in 2025: The Promise and Perils of Programming with AI

How AI-Powered Development is Transforming Creativity, Code, and the Developer Experience

Hey everyone, it’s Cosmo.

Vibecoding is the single biggest revolution in software development I’ve witnessed in my lifetime.

Throughout my career, I’ve relied on talented software developers to bring my tech ideas to life—from Flash games and iOS apps to immersive VR experiences. Yet, there’s always been a frustrating gap between my imagination and my coding skills. Despite dabbling in HTML, CSS, C++, C#, Python, and Swift, I’ve never fully mastered any language. Thanks to AI-driven vibecoding, I might never need to.

Over the past month, I’ve collaborated with AI to build a web app using Cursor, and its radically reshaped my vision of software development. I’ll share more specifics about the app later, but first, I want to offer insights into the hands-on experience of building and deploying an app entirely with AI.

Cursor, a fork of Microsoft’s VS Code, is a fully featured IDE and among the more technical vibecoding options available. If you prefer something more plug-and-play, Bolt or Lovable might be better starting points. But for those craving total control—and all the complexity it entails—Cursor absolutely shines.

My Vibecoding Workflow

When starting a project, I usually ask ChatGPT (or a similar LLM) to craft a detailed prompt for my app idea. I then feed that prompt into Cursor and watch as it magically transforms my concept into (hopefully working) code.

You can use most major LLMs inside Cursor, and I primarily use Claude 3.7, with occasional support from Gemini 2.5 Pro. Claude feels more dependable, while Gemini generates ambitious but often overcomplicated plans. OpenAI’s recently released GPT-4.1 also shows impressive speed based on my early tests.

I recommend creating a .cursorrules file—custom guidelines tailored to your project and tech stack—which helps steer the AI toward optimal results.

The Good

Cursor’s Agent mode is astonishingly powerful. It doesn’t just write code—it runs terminal commands, resolves linter errors, pushes commits to GitHub, searches through documentation, and integrates APIs effortlessly. I spend most of my time in Cursor using this dynamic Agent mode.

Watching the AI "think" through problems is equal parts mesmerizing and eerie. The speed and accuracy at which LLMs analyze and synthesize information surpass human capability by miles. The AI’s spontaneous "aha!" moments when solving tricky problems are particularly amusing.

Cursor's knack for quickly researching and integrating APIs is especially impressive. Additionally, I appreciate the tidy summaries it provides after each code update.

The Bad

Vibecoding is not without its headaches. Code regularly breaks, and solutions frequently regress, sometimes undoing hours of tedious work. The AI confidently claims to fix issues it hasn't actually resolved.

Moreover, relying so heavily on AI-generated code leaves me mostly in the dark about what’s happening under the hood. Ironically, simple fixes might be faster if I handled them myself.

Despite recent performance gains, vibecoding still demands patience as you wait and repeatedly test to verify if changes took effect. Like other AI-assisted processes, I sometimes feel my own critical thinking and coding skills atrophying.

The Immense Opportunity

While some dismiss vibecoding as a gimmick or lazy shortcut, I see it as an evolutionary leap in human creativity. As tools like Cursor and LLMs advance, more creators can finally build the apps and games they've dreamed of.

Sure, the market might overflow with subpar apps—but it will also empower countless new creators, myself included, to bring novel and beautiful experiences into the world. AI – at least for me – isn’t replacing human creativity; it's amplifying it.

Magic Beans of the Week

Thank you for reading. Till next week! 😊

Best,
Cosmo