DEV Community

Cover image for Stop Vibe Coding Every Damn Time!
Aditya Oberai
Aditya Oberai

Posted on • Originally published at newsletter.oberai.dev

Stop Vibe Coding Every Damn Time!

These days, the hype around vibe coding feels limitless. Tools that promise to turn your ideas into apps with nothing more than a chat prompt are everywhere. But back in March this year, I came across a tweet from a developer who discovered that one of those tools, Lovable, was exposing a user's Supabase API key. While it was a publishable API key, it had no permissions or restrictions, and the developer was able to access all the app's data without authentication, just by looking at the public build.

This is not innovation. This is a security breach waiting to happen.

Screenshot of a tweet


Screenshot of a tweet

This is what happens when people lean too hard on the vibe. They build software by instinct, skip fundamentals, and trust that the tool knows best. But when you are shipping products that handle real data, real users, and real consequences, vibes alone will not cut it.

Welcome to 2025, where AI code-generation tools can get you 80 percent of the way there. And yet, so many early-career developers are building software like they are writing poetry at an open mic. No structure, no planning, no understanding. Just vibes. It’s high time we start fixing that!

Are Vibe Coding And AI-Assisted Coding The Same Thing?

First, let’s clear the air. Vibe coding is not the same as using an AI assistant.

Vibe coding is what happens when you build software without understanding how anything works, relying entirely on tools to fill in the gaps. You feed ChatGPT a vague prompt, drag in some randomly generated code blocks, wire up a few buttons, and hope it works. You ship without testing. You copy code you don’t understand. You build with vibes, not logic.

AI-assisted coding, on the other hand, is intentional. You still plan your features. You still understand how your system fits together. You just move faster because you’ve got an AI pair programmer who helps with boilerplate, explains confusing concepts, and suggests things you were going to write anyway.

AI-assisted devs vs Vibe coders


Image generated using ChatGPT

The difference is in the mindset. AI-assisted developers are still the architects, while vibe coders hope the house stands because someone else drew the blueprint.

The Basics Still Matter

Even with AI, you still need to be a developer. If you’re not doing these things, please start today!

#1: Learn What You’re Building

Wanting to skip the learning process before building is the number one reason for the sloppily generated code currently available. It is precisely how developers lose all control over what they are building.

If you’re building an authentication system, you can’t not learn what tokens are, how sessions work, and why storing passwords in plaintext is a terrible idea. If you’re calling APIs, you must understand how requests are structured, what status codes mean, and how to handle errors gracefully. If you’re storing data, you should know how relational and NoSQL databases differ, when to use indexes, and what trade-offs come with each schema decision.

AI can help you write the code, but it can’t teach you to care. That part is on you. And in this case, to care is also to control. Every decision you delegate without understanding becomes a potential landmine waiting to explode (maybe not today, but definitely someday!)

#2: Pause and Assess

Before you open Cursor, start wiring up a UI, or churning out an API, just pause and ask yourself:

What am I actually trying to build?

Can I describe the core flow of this feature out loud or on paper?

Is there a simpler solution hiding behind the flashy one?

Every minute spent thinking before you build will save you ten debugging later. That pause could be the difference between launching a feature that works and shipping one that silently breaks user data in production. Sometimes, the best code is no code (or just a well-placed conditional). But you won’t realize that if you rush to prompt before you plan.

The basics


Image generated using ChatGPT

#3: Plan Before You Code

Design still matters, now more than ever. Start outlining your features, sketching out your user journeys, and writing pseudocode if that helps you structure your logic.

Even a basic plan, a few bullets on what the function needs to do, can guide your AI assistant to better output. If you just prompt “build me an upload feature”, the results will vary wildly. But if you’ve already planned: “I need to let users upload PDF files up to 10MB, store them in an S3 storage bucket, and tag them by user ID”, now you’ve got a little more clarity than before (and you still need more but hey, it’s a start).

Think about how data flows through your app, how users interact with it, and where things might break. These are the habits that turn junior developers into senior ones. AI can write snippets, but it can’t architect systems. That’s still your job.

#4: Prompt Better

AI is not a mind-reader. Vague prompts get vague answers. And vague answers lead to broken features.

You have to be specific. Mention your tech stack: React with Express backend, or Python using FastAPI. Define the scope: Only show me the server-side handler, I’ll wire up the frontend. Include constraints: File size should be under 5MB, and use S3-compatible storage. If something doesn’t work, you must refine your prompt instead of blindly retrying. Break down the problem. Iterate like you would with a human teammate.

And always test what it gives you. Don’t assume it’s correct. Run the code. Read the output. Check for edge cases. The better your prompt, the better your result (and the more you’ll learn in the process). Prompting well is a skill. The sooner you treat it like one, the faster you grow.

Use Tools as Collaborators, Not Crutches

AI isn’t magic. It’s a junior developer who works fast but needs direction. So start treating it like one. That means you:

Review everything it gives you

Test like it was written by a stranger (because it was)

Ask it to explain things, but still go read the docs

You cannot use these tools to avoid thinking, only to move faster after you’ve thought things through. Because the goal isn’t to ship fast. The goal is to ship things that don’t explode.

AI tools are here to stay. And that’s great. But if you’re a developer, especially early in your career, you don’t get to opt out of learning. Not if you want to build things that last. So stop vibe coding every damn time. Pause. Think. Prompt intentionally. Learn constantly.

Code like you mean it.

Don't ship fast]


Image generated using ChatGPT

Top comments (14)

Collapse
 
ghostking314 profile image
James D Ingersoll (Ghost King)

Great topic!
AI-assisted coding indeed needs more intentionality.
Quick heads-up: Those bolded lines and visuals strongly feel AI-generated. If they are, DEV guidelines recommend adding a quick disclosure for transparency. Keeps the conversation genuine and trustworthy!

🤖 Warning to read AI Guidelines & add disclosure

Collapse
 
adityaoberai profile image
Aditya Oberai • Edited

Thank you for letting me know. I wrote the text on my own (I marked those lines as bold as they represented the core points of their respective sections), but I used ChatGPT to generate the images. I'll add that in the image captions.

Collapse
 
ghostking314 profile image
James D Ingersoll (Ghost King)

no problem brother, btw I wasn´t trying to be confrontational. totally agree with you.

Thread Thread
 
adityaoberai profile image
Aditya Oberai

It was a fair point, though. I always appreciate a call-out that stands for the betterment of the community :)

Collapse
 
maxfrecka profile image
Max Frecka • Edited

I agree with this. I think there might be some taboo around people using AI to help code, but the reality is it accelerates things 1000X and just should be used. But the goal shouldn't be to have AI just write the code. Anyone saying AI can just "write apps" is completely lying. AI can assist you, but you have to understand what you're doing and actually put it together. I think you should spend 50% of your time with AI letting it help you, and 50% of your time asking it to explain things so you actually learn what you didn't understand and become a better coder on your own. That distinction will be what separates the future professionals from the rest. But your ability to use AI effectively (which is actually a complicated subject on its own) also is important.

Collapse
 
adityaoberai profile image
Aditya Oberai

AI, if used properly, can be the best pair programmer you could ask for. Expect anything more from it and it'll only show you your own weaknesses and knowledge gaps. At that point, you will have to make a decision as to whether you want to grow your knowledge or not. Way too many people are choosing "not" and I really hope that changes.

Collapse
 
ayesha_03 profile image
Ayesha Tariq

This hits hard. Too many people rely on AI without understanding the basics. Planning, testing, and actually knowing what you're building still matter, even more now. AI is a tool, not a shortcut for thinking. Thanks for putting this into words!

Collapse
 
adityaoberai profile image
Aditya Oberai

Absolutely agreed! Thank you for your comment, @ayesha_03 :)

Collapse
 
kurealnum profile image
Oscar

I've also seen quite a few vulnerabilities from "vibe coded" apps, and frankly, I'm shocked that this many people have hopped on to the hype train.

Collapse
 
adityaoberai profile image
Aditya Oberai

I think this is a call for more education around security, because I can bet that a big percentage of those people did not realise they were generating vulnerable software.

Collapse
 
kurealnum profile image
Oscar

That, and also a little message or note in some form that read

hey! you're building a production grade app, but you have no idea how it works because you aren't actually making the application. it would be wise for you to at least understand how the underlying technology works to avoid massive security vulnerabilities.

Just something that maybe would convince somebody to think twice about what they're doing or how they're going about it.

I can't even begin to imagine what a maintenance nightmare these projects are going to be.

Thread Thread
 
adityaoberai profile image
Aditya Oberai

The maintenance problem has already become visible in the freelance market, where we're seeing dedicated services being offered and availed of to solve this problem. With how things are currently going, the worst is yet to come.

Collapse
 
chiragagg5k profile image
Chirag Aggarwal

Love the article as always! By the way i really like the consitent images used throughout 👀
How do you generate them like this??

Collapse
 
adityaoberai profile image
Aditya Oberai

Thank you, @chiragagg5k! I've been using ChatGPT for any image generation for my blogs for a while now. Not gonna lie, it has been working pretty well for me out of the box :D

Some comments may only be visible to logged-in visitors. Sign in to view all comments.