The Hidden Trap in 'Simple' AI Coding Prompts
How I Accidentally Duplicated My Entire App Without Noticing (And What It Taught Me About AI Architecture)
I thought I was being clever.
I wanted a simple demo mode for my app… something visitors could try without needing to sign up. A harmless preview. So I asked Lovable (my AI pair programmer) to, “create a demo version with dummy data.”
Sounds simple, right?
But Lovable heard:
“Clone the entire app, rebuild all three pages, and sprinkle 641 lines of duplicated logic across a new monster file called Demo.tsx.”
And then… I had two apps.
Two apps that looked the same. Two apps that behaved the same. Two apps that would require every future feature to be implemented twice. 😱
I had created The Evil Twin.
The Moment I Realised Something Was Terribly Wrong
I had just finished implementing a crucial new feature. I quickly checked the demo version... and the functionality was completely missing.
My stomach dropped.
I stared at the two versions side-by-side. The production app had it, the demo app didn’t. That’s when the realisation hit me: Lovable hadn’t just used dummy data; it had cloned the entire structure and locked it in a separate, dead-end repository.
Imagine adding a new bathroom to your house.
Then months later, you fix a tiny leak in your main bathroom… and suddenly realise the contractor installed a completely separate water system for the new one.
Two boilers… Two sets of pipes… Two places things can (and will) break.
All because they thought it was “easier” than connecting it to the system you already had.
Every single future feature would now need to be built, tested, and maintained not once, but twice. I had created The Evil Twin, and the maintenance headache was already infuriating.

The Core Lesson: AI Gives You What You Ask For, Not What You Mean
AI will happily build you anything you ask for. It just won’t stop to ask if you’ll regret it.
That part (the architectural forethought) is still our job.
And this right here is when I officially levelled up as a vibe coder (someone who uses AI to build, focusing on intuition over coding mastery).
Why This Happens…
To AI, the word “demo” means: “Here is a separate version that behaves differently.”
To humans, “demo” means: “Use the same app, just with training wheels.”
These are not the same thing. Unless you explicitly specify the architecture, AI defaults to the fastest, laziest path: duplicate everything and tweak the parts.
This is why confident vibe coders eventually learn one crucial truth: AI gives you exactly what you asked for. Not what you meant.
Some call it GIGO = Garbage In Garbage Out
The Fix: Tell AI to Build Architecture, Not Just Features
Once I realised I had a nightmare on my hands, I tried a different tack. I stopped asking for a feature and started asking for an architectural audit:
⚡ Prompt to paste:
Audit the current demo mode implementation. Is it a separate code version? If yes, propose a refactor to a single codebase for handling different modes.
This time, Lovable understood the assignment.
What Lovable Proposed (In Human Language)
The plan was to merge the two apps into one Single Source of Truth and swap the data source based on the user’s “mode”:
real saved data for each logged-in user
mock, fake data for demo mode, which is the same for everyone who wants to try out the app
It’s like putting different lenses on the same camera.

Why This Matters for Vibe Coders
This is one of those “hidden” skills that separates beginner vibe coders from confident ones:
You don’t need to write complex code, but you need to ask for clean architecture.
And yes, you can ask AI to do that for you. Here’s what I learned:
AI loves shortcuts. AI often builds things by copying and pasting because it’s fast. But copying is like taking out a hidden loan: it means more trouble later.
Your job is to ask for the right structure. Architecture is where your human brain shines. It’s the thing AI is bad at unless you explicitly ask.
You can always tidy up later. This entire mess I made? AI planned the clean-up, wrote the replacement code, and fixed its own mistake. Working with AI is a team effort.
My Takeaway (And Yours)
If you’re building apps with AI, keep this in mind:
The app you get depends entirely on the prompt you give.
If you don’t mention architecture… you don’t get one.
The solution is to learn better prompting:
Ask for architecture decisions
Ask for explanations
Ask for maintainability
Ask for refactors before adding new features
Ask to translate tech jargon for you
This is vibe coding:
You provide the intuition, AI provides the implementation. You don’t have to know everything.
I didn’t architect the app myself. I didn’t even fully understand every line Lovable produced.
And that’s okay.
My app now has a clean, scalable structure. And all I did was notice something felt wrong, ask better questions, and let AI handle the heavy lifting.
Up Next…
I share the guardrails I have been working on to keep my AI developer in line and catch it when it’s slacking.

I loved this post! It explains how AI takes you at your word and does exactly what you asked. Even if it wasn’t what you wanted. Well written, great lessons learned.