The CEO of the Most Popular AI Coding Tool Just Said Stop Trusting AI Code. He's Right.
Michael Truell, the CEO of Cursor, recently said something that surprised a lot of people. He warned that vibe coding, the practice of letting AI generate entire applications with minimal human oversight, builds software on shaky foundations that eventually crumble. Coming from the person running the most popular AI coding tool on the market, that is a statement worth paying attention to.
As a team that ships production applications with AI coding tools on every project, we have seen exactly what he is talking about. The tools are powerful. The output looks convincing. But "looks convincing" and "works in production" are very different things.
What Vibe Coding Actually Means
Vibe coding is when you describe what you want to an AI tool and accept whatever it generates without deeply understanding or reviewing the output. You prompt, it writes, you ship. The code works in your demo. It handles the happy path. It looks like a real application.
The problem is what happens next. Silent failures start appearing in places you never tested. For example, a Stripe webhook handler that AI generated might process successful payments correctly but silently swallow failed payment events. Your dashboard shows revenue growing while customers with declined cards keep using your product for free. You do not notice for weeks because the code "works."
Then there is architectural drift. Each AI-generated feature makes locally reasonable decisions that are globally incoherent. One endpoint uses one authentication pattern, another uses a different one. Data validation lives in three different layers with three different rule sets. The codebase works, but it is a collection of fragments rather than a coherent system. Every new feature becomes harder to add because there is no consistent architecture to build on.
The Difference Between AI-Assisted and AI-Dependent
There is a critical distinction that gets lost in the hype. AI-assisted development means AI writes first drafts and humans architect the foundations. AI-dependent development means humans describe what they want and AI makes all the technical decisions.
In our workflow, a senior developer defines the architecture, the data model, the authentication strategy, and the error handling patterns before any AI-generated code enters the codebase. Claude Code or Cursor writes the implementation. The senior developer reviews it. This review is not a rubber stamp. It is a real code review where the engineer evaluates security implications, performance characteristics, and architectural consistency.
A senior developer can review an AI-generated pull request in about 5 minutes and catch issues that would take hours to debug in production. That 5-minute investment is the difference between AI-assisted development that ships reliable software and vibe coding that ships time bombs.
What AI Coding Tools Are Actually Good At
AI coding tools excel at specific categories of work, and understanding those boundaries is essential for using them responsibly.
Where they shine:
- -Boilerplate and scaffolding. CRUD endpoints, form components, database migrations, and API route handlers. These are well-defined patterns where the AI has seen thousands of examples and the output is straightforward to verify.
- -Refactoring. Renaming variables across a codebase, converting class components to hooks, migrating from one API pattern to another. Mechanical transformations where the intent is clear and the result is easy to test.
Where they struggle:
- -Business logic with edge cases. Pricing calculations, subscription state machines, multi-step workflows with rollback requirements. These require understanding the business domain, not just the code patterns.
- -Authentication and permissions. Getting auth wrong does not cause a visible bug. It causes a security vulnerability that nobody notices until it is exploited. AI-generated auth code often looks correct but misses subtle permission checks or token validation edge cases.
- -Code review itself. You cannot use AI to review AI-generated code and expect reliable results. The same blind spots that produced the code will exist in the review. Human review is not optional.
The Next.js + Supabase Case Study
On a recent client project for Cargenieusa, we built a full-stack application using Next.js and Supabase with AI assistance on every feature. But we had strict rules about what the AI could and could not do.
- -AI could generate UI components, API routes, and database queries. A senior engineer defined the component architecture, the API design, and the data model first.
- -AI could draft Supabase RLS policies. A senior engineer reviewed every single one before it was applied. We caught three overly-permissive policies that would have exposed user data across tenant boundaries.
- -AI could write test scaffolding. A senior engineer wrote the critical test assertions, especially around payment flows and data access controls.
- -AI could not make architectural decisions, choose third-party services, or define the security model. Those decisions require understanding the business context, the regulatory environment, and the long-term maintenance implications.
The result was a production application shipped in half the time it would have taken without AI tools, with zero security incidents in the six months since launch. The RLS review process alone probably prevented at least one data breach.
What to Do If You Have Already Vibe Coded a Production App
If you are reading this and realizing your production application was built with minimal human review, do not panic. But do act quickly. Here is the priority order.
- -Security pass first. Have a senior engineer audit your authentication, authorization, and data access patterns. Check every RLS policy, every API endpoint that handles user data, and every payment flow. This is the highest-risk area.
- -Add observability. If you do not have error tracking, structured logging, and basic monitoring, add them now. You cannot fix what you cannot see. Many vibe-coded apps are silently failing in ways the founders do not know about.
- -Write tests for critical paths. You do not need 100% coverage. You need tests for signup, login, payment processing, and any workflow that involves user data. Start there.
- -Stop the bleeding. Establish a code review process going forward. Every change gets reviewed by someone who understands the implications, not just the syntax.
We recently worked with a founder who had vibe-coded an app to $8K MRR. The product worked well enough to get traction, but the codebase had no tests, inconsistent auth patterns, and RLS policies that were essentially open. It took two weeks to stabilize, not a full rewrite, just targeted fixes to the critical vulnerabilities. That is much cheaper than a data breach.
The Right Frame for AI Coding Tools
Truell is right. The tools are incredible, but they need discipline. The best mental model is this: treat AI like a fast junior developer. It can write code quickly. It knows a lot of patterns. But it does not understand your business, your users, or the consequences of getting things wrong.
You would never let a junior developer push code to production without review. You would never let them design your authentication system. You would never let them make architectural decisions without guidance. Apply the same standards to AI-generated code.
The companies that will win with AI coding tools are not the ones that use them the most. They are the ones that use them with the most discipline. Speed without review is not velocity. It is technical debt accumulating faster than you can see it.
Need a Team That Uses AI Responsibly?
We ship production apps with AI assistance on every project, but every line gets reviewed by senior engineers. If you need software that actually works in production, let's talk.
Free 30-minute call | No commitment