The term “vibe coding” refers to a coding approach where you instruct an AI to generate computer software code based on a general idea of what you want, and the AI produces the code for you. After that, you compile it, test the application, and if it works well, you consider the job done and distribute your software. This method prioritizes the overall “feel” or intention over precise technical expertise. Essentially, vibe coders act like clients describing their needs to a developer, but instead of a human, they rely on an AI to fulfill that role.
Should we embrace vibe coding or not? This seems to be the dilemma of the moment…
We live in an era where AI is everywhere, where LLMs becomes more powertful every day, where tools that uses AI to help developers are growing always more in popularity and usage. So it’s quite natural that organizations, partners and also single developers are starting to ask themselves: does it make sense to use AI for development? What advantages does it offer? And what will happen to developers’ skills?
In the last week I had lots of discussions about this topic with some of you, but also in the last 3 months I had the chance to explain vibe coding tools with some partners and they raise me always the same questions above plus more: Is AI trustworthy? Is AI-generated code reliable? I saw that generated code is not perfect: should I continue to start using AI for coding? What’s the point of vibe coding if I still have to pay a developer to fix the generated code?
And more: Vibe coding allows anyone to create software without understanding code.
I can continue this list of questions, but I think you get the idea…
With this post I want to share my thoughts and ideas around this topic. These are absolutely my personal opinions and in no way intended to influence your opinions or decisions. Adopting AI in coding is a completely personal choice, and each of us can draw our own conclusions.
I started testing LLMs and tools for writing AI-assisted code many time ago and I’m still doing that every day. I absolutely believe on vibe coding, but before using AI for writing code I think you need always to stop a bit and think on your desired goals. Do you want someone that does the job for you (without using yourt brain to evaluate the output) or do you want someone that helps you on doing tasks interactively, helping you saving time?
Trusting on vibe coding doesn’t mean you should fully embrace it for everything and without critical thinking. I always say that you need to have a level of technical knowledge to vibe code properly.
In my company I’ve decided to not explain vibe coding to all the newbies that start working with us. Before using AI, they need to study and undestand the basics and they need to write code by themself. This is important…
But when you have a good knowledge of the basics, not using AI for some tasks is just excluding an important developer’s tool. You should think of the LLM like a teacher, not just an intern. it can accelerate you up the learning curve if you use it right.
And here is where I want to underline some key points…
If your expectation on vibe coding is just to send a coding request to an LLM and accept the answer, you probably are not on the right track. In this way is like writing code with a blindfold that completely covers your eyes…
As soon as you stop seeing these models as magic wands that convert your thoughts to perfect code, and instead as a time-saver that helps you understand + implement solutions faster, you are gonna realise what a massive unlock LLMs are.
Personally, I still write the great part of my code manually (because I love to do so). But for many tasks I use AI just to save time… AI helps me planning for a solution, helps me writing code faster and helps me on lots of routine tasks. It also hekps me when I don’t know how to do something.
Does AI always write perfect code? NO! I still sometimes fix its bugs…
Does AI always write bad code? ABSOLUTELY NO! AI writes lots of code that I often use as-is.
With AI, I was able to save lots of hours of work. But there’s a crucial detail here: I saved time only because I could have done it even without AI. If I hadn’t understood the technologies, the flows and the problems I was facing, I would never have been able to validate the answers, nor adapt them to my project. I would have spent more time trying to understand what I was copying than actually building.
AI should be seen as an accelerator, not as a substitutee of someone. Those who have the basics win, because they can go faster. Those who don’t have the basics are instead more prone to risks. The key difference here is not between who use or don’t use AI, but more on who know what’s happening behind the scenes and those who don’t.
Vibe coding doesn’t turn noobs into pros. Vibe coding is great for speed and getting ideas flowing, but at the end of the day it’s not a full replacement for a developer’s brain.
You need to always evaluate the quality of your code (AI generated or not).
A human expert must always be in the loop and must carefully review the output of the AI. LLMs can never be fully trusted and any level of uncertainty requires human oversight to validate the results. This means you’ll still need to acquire coding skills, don’t be afraid… vibe coding enhances, not replaces, your expertise!
Speaking more practically, some of you asked me how I use vibe coding in my daily practice. I can speak for days on this topic (and probably we’ll have the chance soon to have meetings on that) but these are my key points:
I don’t want to be too technical in this post, so I will not talk about my favourite AI models for coding (I often use both online and fully local LLMs) or my favourite AI tools. We’ll have time for that…
When I use AI tools for a complex solution, these AI tools must act like a meticulous architect who investigates my codebase, ask clarifying questions and create a comprehensive implementation plan before writing a single line of code.
My AI tool must first create an implementation document that serves as the implementation blueprint. This isn’t a generic outline, but instead it’s a detailed specification with exact file paths, function signatures and implementation order. In this planning phase, you need to be comprehensive with requirements and you need to share with the AI tool all the relevant context.
Then from this planning phase I want trackable implementation steps (and this is where my AI tool must act). Obviously, complex projects often require multiple plan and act cycles.
Here is an example of what I mean. When creating a feature, the AI tool first creates an implementation plan:
I prefer to know in advance this plan. Then I can review it, modify something in the plan, interact with the AI tool and when ready I can instruct the AI to act on coding:
As you can see, the AI has generated a development plan and a task list that I can review. In this way, I’m always in the loop.
I think nowadays it’s important to know which AI tools to use (and when) to make the job at best.
If you’re skeptical about adopting AI in your code, I still encourage you to give it a try. Only after you’ve tried you can you make the right decision.
We can talk for ages about this topic. I have my personal experience and opinion, others have different ones.
This year I closed my session about this topic at BC Day IT with this sentence:
AI won’t replace developers, but developers who use AI will replace those who don’t.
![]()
and this could be true in a near future, just because these tools will be part of a developer toolset that is changing.
Don’t become a slave to vibe coding, but don’t neglect this huge opportunity.
Original Post https://demiliani.com/2025/08/21/vibe-coding-yes-or-no/