
AI is great until it isn't. Tools like Cursor and Windsurf will confidently build whatever you ask for – but rarely do they question your choices, catch your mistakes (in what you ask), or warn you when you're heading towards trouble.
I've been learning the dangers of vibe-coding the hard way while creating a Python app, without really knowing Python. It all feels like magic, until it just breaks. If you're vibe coding too, you might find this relatable:
From 1 feature to 10: The vibe coding snowball effect
This snowball effect was my biggest downfall probably - it's easy to get carried away adding features on your list without thinking how it's adding them!
My project, FeedBagel, started off as an RSS API, built on a Flask server and SQLite. It worked great to crawl RSS Feeds, but because I was 'vibe-coding', I just kept adding more and more. And that's where it can go wrong if you're unfamiliar with a given tech stack!
For example, when the RSS search API was working, I thought 'why not have a front-end?'. I'd love to navigate the feeds and enable other people to try the API.
Naturally, I ask Cursor: 'add a route for an index page, with a search...'. It worked great! What else would be cool?

Add category pages...great! Now add...it just keeps snowballing...and then it collapses:
Build fast, Break faster: Hidden architectural flaws
If you're just asking for the next feature, but not checking how it's building it, and if it's actually the right way, it can feel like a game of snakes and ladders.
Woah it all works great 🤩 - or that's what I thought! After deploying my seemingly working app to a server, I noticed that when the API is running a search, the main website grinds to a halt - visiting feedbagel.com via the browser shows nothing. What's going on? Back to the start I go...
After some research, I learn Python is 'single-threaded', and it can't reliably serve a front-end website and run the RSS search at the same time - only one process can run. Then I realised the whole architecture is wrong.
Why didn't the AI warn me of this?? I've ended up with a pretty large project now, that can't really work out in the wild.
AI follows instructions, not best practices
It can be amazing to see a project coming together in front of your eyes so quickly, so it's tempting to just keep asking for the next feature, without thinking for yourself. And therein lies the danger, as AI doesn't tell you what you don't ask it ☠️.
For example, when building Feedbagel, I'm commanding it to build a front-end on the same server as my backend - not really the best idea, but it never once questioned me. Had I known more about Python, it would have made sense to build the frontend as a separate site on a different container - I probably shouldn't have even used Python for that part.
Rules in Cursor
I really should have asked about the best practices before telling it to go ahead with the next feature. Better yet, you can use rules and find well crafted instruction files to keep Cursor from going off track:
Like most are saying, treat AI as a junior dev - it's only going to do what you ask of it - whether it's right or wrong.
AI doesn't tell you what you don't ask it.
Understand what you're building with
Long story short, I’ve learned to pause, plan, and question more. Coding with AI is amazing, but only if you keep on top of it.
If you don't you'll be starting over like me - I had to completely rebuild the front-end of FeedBagel, and add API routes to fetch the data from the backend.
In all, vibe coding can feel like magic, but come crashing down just as fast. What starts as a fun, fast way to build and learn can turn into a lesson of technical debt and the importance of understanding what you're building with.