Vibe Coding: My Experience Shipping 30+ Apps A developer reports shipping 30+ apps using an AI-driven 'vibe coding' workflow, but only 6 survived to production due to rapid technical debt accumulation. The author recommends a three-phase process: rapid prototyping with Cursor or Claude Code, a manual 'hardening' pass to fix memory leaks and redundant API calls, and deployment on a lean stack like Vercel/Supabase. The key insight is that every AI-generated feature must include a comment explaining its implementation to prevent the codebase from becoming an unmanageable black box. Vibe Coding: My Experience Shipping 30+ Apps The reality of this AI-driven workflow is that you can generate a functional UI and basic logic in minutes, but the "vibes" break the moment you hit edge cases or scale. For the 6 apps that survived, the secret wasn't just better prompting; it was knowing when to stop letting the AI drive and actually audit the state management. If you're trying to move from "cool demo" to "actual product," here is the AI workflow that actually works for me: 1. The Rapid Prototype Phase : Use Cursor or Claude /en/tags/claude/ Code to blast through the initial feature set. Don't overthink the folder structure here; just get the core loop working. 2. The "Hardening" Pass : Once the vibe is right, I manually review the prompt-generated code for memory leaks or redundant API calls. This is where most "vibe-coded" apps die—they are bloated and inefficient. 3. Deployment : I stick to a lean stack usually Vercel/Supabase to minimize the infrastructure overhead, letting the LLM handle the deployment scripts. The biggest gotcha? Technical debt accumulates 10x faster when you're vibe coding. You'll find yourself in a loop where the AI fixes one bug but introduces two more because the codebase has become a "black box" that neither you nor the LLM fully understands. To avoid this, I now implement a strict rule: every single feature generated by the AI must be accompanied by a concise comment explaining why it was implemented that way. It makes the subsequent deep dive much easier when things inevitably break. Next Polars Expression Plugins: Rust PII Masking from Scratch → /en/threads/2476/