DEV Community

Dyami Connell
Dyami Connell

Posted on

Vibe Coding Is Genuinely Incredible (But Let's Talk About the Business Model Problem Too)

The future of software development has arrived, and it looks nothing like what we expected. Instead of meticulously typing every semicolon and debugging stack traces at 2am, a growing wave of developers — and even non-developers — are building real, functional, deployed applications by simply describing what they want. This is vibe coding, and if you haven't tried it yet, your mind is about to be thoroughly blown.

But here's the thing: as someone who has been deeply impressed by these tools, I also think we need to have an honest conversation about the business practices surrounding them. Because being a fan of the technology doesn't mean we should be uncritical cheerleaders for every decision these companies make. The best developer communities hold their tools accountable, and that's exactly what we're going to do today.


What Even Is Vibe Coding?

The term "vibe coding" was coined by Andrej Karpathy earlier in 2025 and it immediately resonated with a massive audience because it perfectly captures a real phenomenon. The idea is beautifully simple: you describe your application in natural language, the AI builds it, you iterate by describing what you want changed, and you largely ignore the underlying code. You go by the vibe of what you're building.

This sounds like heresy to classically trained engineers. But the results are genuinely hard to argue with.

Tools like Lovable, Bolt.new, Cursor, and v0 by Vercel have made it possible to go from zero to a deployed, functional web application in under an hour without writing a single line of code yourself. For prototyping, for MVPs, for solo founders, for designers who want to test an idea — this is transformative.

Here's a classic example of the kind of prompt that might generate an entire application:

Build me a full-stack task management app with:
- User authentication
- A dashboard showing tasks by priority
- The ability to assign due dates and tags
- A clean, minimal UI using shadcn components
- Supabase as the backend
Deploy it and give me the live URL.
Enter fullscreen mode Exit fullscreen mode

That prompt, in Lovable, will genuinely produce something functional. Not a mockup. Not a wireframe. A real, deployed application with authentication, a database, and a live URL. That's wild. That's the technology we've always dreamed about.


Why Lovable Specifically Stands Out

Let me be direct: Lovable (formerly GPT Engineer) is genuinely one of the most impressive pieces of software I have encountered in years of working in tech. The quality of the generated code, the way it handles multi-file projects, its understanding of modern React patterns, its Supabase integration, its ability to take screenshots and fix visual bugs — it's exceptional.

The product experience of iterating on an application by just talking to it is addictive. You find yourself thinking about problems differently. Instead of asking "how do I implement this?" you ask "what do I actually want this to do?" That cognitive shift is valuable even if you go back to writing code manually afterward.

The generated code isn't garbage either. It produces typed TypeScript, follows component architecture patterns, uses proper hooks, and integrates with real services. Developers can actually look at what was generated and learn from it:

// Example of the kind of typed, structured code Lovable generates
interface Task {
  id: string;
  title: string;
  priority: 'low' | 'medium' | 'high';
  dueDate: Date | null;
  tags: string[];
  completed: boolean;
}

const useTaskManager = () => {
  const [tasks, setTasks] = useState<Task[]>([]);

  const addTask = async (newTask: Omit<Task, 'id'>) => {
    const { data, error } = await supabase
      .from('tasks')
      .insert([{ ...newTask, id: crypto.randomUUID() }])
      .select();

    if (error) throw error;
    setTasks(prev => [...prev, data[0]]);
  };

  return { tasks, addTask };
};
Enter fullscreen mode Exit fullscreen mode

That's clean. That's readable. That's something a junior developer could extend and learn from. The tool is genuinely good, and I want to be clear about that before moving into criticism.


The Credits Problem: When Deceptive Design Erodes Trust

Now we need to talk about the part that genuinely angers me, because I think it's important and the developer community shouldn't just shrug it off.

I lost $400 in credits on Lovable. Not because I misused the platform. Not because I made a purchase mistake I understood at the time. Because the credits expired, and the expiration policy was not communicated clearly, prominently, or repeatedly. By the time I noticed, the credits were simply gone.

This is not a minor UX quibble. This is a pattern in SaaS pricing that has a name: dark patterns. Specifically, this falls into the category of hidden costs and terms — a design approach where the unfavorable conditions of a purchase are technically disclosed but buried, minimized, or otherwise obscured so that a normal, reasonable user would not notice them until it was too late.

Let's think about this from a pure product ethics standpoint:

ETHICAL CREDIT SYSTEM DESIGN:
✅ Expiration date shown prominently at purchase
✅ Remaining credits visible on every session
✅ Email warnings at 30 days, 7 days, 1 day before expiry
✅ In-app banner notifications as expiry approaches
✅ Option to extend or convert credits before loss
✅ Clear, plain-language terms in the checkout flow

WHAT ACTUALLY HAPPENED:
❌ Expiration buried in terms or fine print
❌ No prominent dashboard warning
❌ No proactive email sequence about expiring credits
❌ Credits silently vanished
❌ $400 gone with no recourse
Enter fullscreen mode Exit fullscreen mode

The frustrating irony is that this doesn't even make good business sense. Lovable is a genuinely excellent product. If someone spends $400 with you and has a great experience, they will almost certainly spend more. They will tell their developer friends. They will write articles like this one recommending the platform. But when you silently drain $400 from someone's account? You lose not just that customer's future spend, but their advocacy, their trust, and — yes — you turn what would have been a glowing recommendation into a mixed review with a warning label attached.

Loyalty is earned. And you cannot earn loyalty through deception, even if it's technically legal deception buried in terms of service.


How Vibe Coding Fits Into a Real Development Workflow

Despite the frustration, I want to pivot back to something constructive, because vibe coding genuinely deserves a place in the modern developer's toolkit. The question isn't "should I use these tools?" — it's "where do they fit?"

Here's how I've seen the most effective developers integrate vibe coding:

1. Rapid Prototyping and Validation
Before writing a single line of production code, spin up a vibe-coded prototype to validate the concept with real users. This can replace weeks of design and development with hours.

2. Boilerplate Elimination
Auth systems, CRUD interfaces, admin panels, landing pages — all of this can be vibe-coded and then refined by hand. Let the AI handle the scaffolding, let the engineer handle the differentiation.

3. Learning by Reading Generated Code
For newer developers, vibe coding tools can be powerful learning accelerators. Generate a working example, then read through it and understand why each piece works.

# A practical vibe coding workflow
1. Describe your full application concept to Lovable/Bolt
2. Get a deployed prototype in under an hour
3. Download or connect to the GitHub repo
4. Review the generated code structure
5. Identify what needs custom logic vs what's fine as-is
6. Hand-code only the truly differentiated pieces
7. Use the AI tool for continued iteration on standard features
Enter fullscreen mode Exit fullscreen mode

4. Solo Founders and Indie Hackers
If you're building alone, vibe coding can effectively give you the output of a small team for the standard, repeatable parts of your application. This is a genuine competitive advantage for early-stage products.


What We Should Demand From AI Development Tools

The technology is exciting. The business practices sometimes aren't. As a developer community, we have both the voice and the leverage to push back. Here's what fair, developer-respecting AI tools should look like:

  • Transparent pricing with zero hidden gotchas. If credits expire, that should be impossible to miss at the point of purchase and throughout usage.
  • Proactive communication about usage and limits. We should never discover something has expired. We should be warned aggressively before it happens.
  • Credit extensions or rollover policies. Unused credits that vanish are a consumer trust killer. Offer to roll them over, apply them to a subscription, or at minimum give significant notice.
  • Responsive support for pricing disputes. When a customer comes to you having lost significant money due to unclear terms, treating them well costs you almost nothing and retains a customer. Treating them poorly is a PR disaster in slow motion.

The best developer tools win long-term through genuine product quality and community trust — not through extracting maximum value from confusion. Stripe, Vercel, Supabase, GitHub — the developer tools that have achieved true loyalty did so by being transparent, generous, and developer-first in their thinking.


Conclusion: Vibe Coding Is the Future, But We Deserve Better Business Practices

Here's where I land after all of this: vibe coding is real, it's impressive, and it's going to fundamentally change who can build software and how fast they can build it. Lovable is one of the best implementations of this technology available today, and the core product genuinely deserves the excitement it has generated in the community.

And also: losing $400 to unexplained, unexpired, silently disappearing credits is not okay. Both things are true at the same time.

We should enthusiastically adopt tools that make us more productive. We should recommend tools that genuinely impress us. And we should be loud and clear when the business practices of those tools fall short of what we deserve as paying customers. The two are not in conflict.

If you're going to try Lovable or any similar platform — and you absolutely should — go in with eyes open. Read the credit terms carefully. Set your own calendar reminders for when credits expire. Screenshot your purchase confirmation. Don't rely on the platform to protect you from losing money, because as I learned the hard way, that protection may not be there.

Build cool things. Use incredible tools. And demand that the companies behind those tools treat you with the same respect you bring to your craft.


Have you had experiences — good or bad — with vibe coding platforms? Drop them in the comments. The more we share transparently, the better informed our community becomes.

Top comments (1)

Collapse
 
eliz_marg_90daff6024691f5 profile image
Eliz Marg

Vibe coding is powerful in terms of speed and productivity, but the real challenge is sustainability.
From my experience using Candor Data Platform, the key issue isn’t just capability—it’s how usage translates into value. Without visibility into usage patterns and clear alignment with outcomes, costs can scale quickly.
The important shift is making sure productivity gains are measurable and tied to real impact, not just increased activity.