Why “Just Ask AI to Code It” Doesn’t Work

Back when I was a web developer, every week a friend or acquaintance would come up to me and say, “Joey, I have a great idea for an app.”

They would then explain some brilliant app to me that would make a ton of money. I’d patiently listen, then ask them 4 questions:

  • Who would use this app?
  • How will it make money?
  • What competition is out there?
  • What do you see as the partnership for this app?

Ultimately, they’d say:

  • “Everyone”
  • “I don’t know yet but it will”
  • “There is none”
  • “I was thinking 50-50”

…which were all terrible answers to those questions. Mostly because it showed they did zero work outside of having the idea.

And partially because 50% for an idea wasn’t exactly my favorite business model. Even if it was 50% of nothing.

Thinking about Vibe Coding

I’ve been thinking a lot about vibe coding lately.

Vibe coding is 2025’s version of “I have a great idea for an app.” But instead of convincing someone with skills to do it for free, AI will do it for you, probably over the weekend.

That’s what the biggest advocates say, anyway. But my experience is a little different.

Here’s what I learned putting vibe coding to the test.

Simple Projects Work Better Than Complex Projects

I finished creating my upcoming LinkedIn Learning course over the weekend, and it was all about vibe coding.

It was also the first time I tried vibe coding an app from start to finish. There’s something kind of scary about recording a course not really knowing how it’s going to go; the results from the test run could be wildly different from the recorded run (and they were).

After going through this process, there’s something you absolutely need to know. You need to be very specific about what you want, or you have to understand that you’ll end up with a bloated, buggy app.

If you don’t know how to review the code or troubleshoot it, it’s not going to be a good app.

Now, for the course I used ChatGPT. I chose ChatGPT because it’s the most ubiquitous AI tool…even if newer options like Lovable go away, we can be confident that ChatGPT won’t.

There were a lot of Challenges

While I think ChatGPT was really good at the planning part and the initial prototype, as we moved deeper into the app, the process got a lot rockier.

I found that ChatGPT often forgot the context, didn’t remember the code we wrote (even if I provided it again), made weird assumptions, and it became careless about how different parts of the app worked together.

It would completely rewrite crucial parts of the application for a simple bug fix. It would also write code that had basic errors in it because even if it had the code in the project files, ChatGPT wouldn’t reference it.

What this Means for You

So, what am I getting at in all this?

To be good at AI, you need to be good at what you do. I wrote about this very topic a few weeks ago. The idea is that AI is not a replacement for domain knowledge.

You still need to understand the work to use AI effectively. I’ve seen it with Vibe Coding, and we’ve seen it multiple times in the legal world.

Where it makes you more efficient is in augmenting or adding to those skills.

This applies whether you’re building apps, setting up email automation, or creating any system in your business.

I’ve been hearing the term, “Human in the Loop,” a lot lately. But there’s actually a hierarchy to the use of autonomous systems (mostly weapons, from what I can gather). Here’s the hierarchy, from more to less human intervention:

  • Human-in-the-Loop: The human instigates / initiates action. The machine has partial autonomy.
  • Human-on-the-Loop: The human may override. The machine has a high level of autonomy.
  • Human-out-of-the-Loop: The human has no real-time input. The machine has near complete autonomy.

But I’ve also heard the term “Human-in-Control.” The idea here is that the machine doesn’t act except to augment and enhance what the human is doing.

When it comes to vibe coding (and most knowledge work, I’d assert), I think the model needs to be Human-in-Control. It’s clear at this point that we can’t just tell the AI to code something out of nothing with little instruction.

Even with the full context of a coding project, ChatGPT struggled. I’ve had similar experiences with Claude. In Claude’s case, I was asking it to code something using an API I didn’t know anything about.

The bottom line? AI and system automation works best when you already know what good looks like.

Whether you’re coding an app or automating your invoicing process, you need to understand the work before you can effectively direct the machine.

The expertise comes first. The machine makes it faster.

Disclosure: Claude AI helped me write a few sentences in this article