Vibe Coding: Blending Human Creativity with Generative AI

Generative AI is changing a lot of our routines and, in particular, how we write code and content—a new mindset is emerging: vibe coding. Vibe coding was a term introduced in February 2025 by Andrej Karpathy, an AI executive in various companies, currently Tesla. It means asking AI to write code, and it is a practice that is polarizing the community: criticized by many for its risks, praised by many for the speed it enables. I believe vibe coding is here to stay, but it is not about letting AI do everything. It’s about flowing with the AI, accelerating your work while staying in control. Like jazz improvisation, it’s fast, flexible, and thrives on collaboration.
At the heart of vibe coding are two core paradigms, each offering a unique way to leverage AI depending on the context and the nature of the task at hand.
Paradigm 1: Let the AI write first, then personalize
This approach works best when the topic or code you're dealing with is common, well-documented, and already embedded in the AI's training. Think:
- Writing a blog post about a well-known movie.
- In code, creating a Firebase login page.
In these cases, you can provide a few notes or goals, let the LLM (Large Language Model) generate a complete first draft, and then personalize, fact-check, and polish.
Paradigm 2: Write first, then let the AI improve
This is the better route when you're doing something unique, niche, or detail-heavy, where AI may not have enough reliable context:
- Writing a blog post about a little-known hiking route.
- In code, building highly customized backend logic.
Here, you create a rough version—structure, key ideas, raw code—and then let the AI help refine, format, and elevate the result.

Going deeper: How to vibe code responsibly
Vibe coding is sometimes dismissed as lazy or error-prone. But the reality is, it's becoming essential. The productivity gap between traditional developers and those who embrace AI tooling is widening fast.
Yes, LLMs aren’t perfect. But ignoring them doesn’t slow down the world—it just leaves you behind. So, to make the most out of vibe coding while avoiding the pitfalls, I suggest keeping these four principles in mind:
1. Be modular
Good software design applies more than ever. Break things down into small components. This keeps your code manageable and minimizes risk when collaborating with an LLM. Modularity allows faster iteration and easier debugging. In addition, LLMs can struggle to maintain coherence over large stretches of code, and being modular reduces the problem.
2. Boost unit testing
With AI writing code, testing isn’t optional—it’s your safety net. Especially when doing several iterations, regression is the norm, so testing becomes fundamental to catch where we changed the code behavior unintentionally. The good news? Tests themselves can be vibe-coded. Let the LLM suggest edge cases or help create complete test suites for each module.
3. Work your prompts
Prompt engineering is an art. Write better prompts, and you’ll get better code. A few generic rules always apply: be specific and include examples. Examples may include the previous version of the code and naming conventions and rules you want it to always follow. You should also mention the current date to avoid outdated libraries, and ask for clean, minimal output. Save good prompts—you'll reuse them often!
4. Vibe but verify
Never trust blindly. Always be inquisitive. I recommend also asking multiple LLMs and comparing. You can even ask one LLM to review or critique the output of another. And if you're unsure, request multiple solutions and choose the best one—or merge insights.

Do you need to know how to code for vibe coding?
One of the fascinating aspects of vibe coding is how it makes coding more accessible. While having a coding background is definitely beneficial, it’s not always essential. Knowing how to code helps you refine AI-generated output and troubleshoot issues, but vibe coding also provides an excellent learning opportunity for newcomers. It allows them to learn best practices, understand coding structures, and focus more on problem-solving and innovation. Still, if you plan to put it into production, better review the code with an expert or test it in depth.
Will vibe coding make us unable to code?
A recent MIT study suggests so—you can find it at this link. The study is about essay writing, not coding, but the results are clearly going in one direction. Groups of people were tasked with writing essays and given a different set of tools: LLM, a search engine, or no external help ("brain-only"). The conclusion is that using LLMs like ChatGPT can initially boost productivity, but may lead to:
- Reduced neural activation
- Weakened memory and cognitive engagement
- Lower learning outcomes over time.
This suggests a long-term “cognitive debt”: while LLMs simplify tasks, they may undermine deep learning and mental effort, especially in educational contexts.
However, didn’t that happen already when calculators were introduced? We are surely worse than our grandparents at making calculations, but at the same time, we developed new skills they could not even dream of. So is this a problem or just evolution? Only the future will tell. What scares me a bit is just that the pace of progress could become too fast to adapt.

Final thoughts: flow over fear
Vibe coding isn’t about replacing developers—it’s about enhancing them. By blending human creativity with AI efficiency, you can stay ahead of the curve, produce high-quality work faster, and keep innovating. The key is to know when to let the AI take the lead and when to step in and fine-tune the results.
Now, a question for you: was this article written with GenAI, by a human, or a bit of both? Let’s just say... it was vibe coded! 🧠💻✨
Don’t code like it’s 2020. Vibe responsibly.
Author
Luca Pescatore
Generative AI is changing a lot of our routines and, in particular, how we write code and content—a new mindset is emerging: vibe coding. Vibe coding was a term introduced in February 2025 by Andrej Karpathy, an AI executive in various companies, currently Tesla. It means asking AI to write code, and it is a practice that is polarizing the community: criticized by many for its risks, praised by many for the speed it enables. I believe vibe coding is here to stay, but it is not about letting AI do everything. It’s about flowing with the AI, accelerating your work while staying in control. Like jazz improvisation, it’s fast, flexible, and thrives on collaboration.
At the heart of vibe coding are two core paradigms, each offering a unique way to leverage AI depending on the context and the nature of the task at hand.
Paradigm 1: Let the AI write first, then personalize
This approach works best when the topic or code you're dealing with is common, well-documented, and already embedded in the AI's training. Think:
- Writing a blog post about a well-known movie.
- In code, creating a Firebase login page.
In these cases, you can provide a few notes or goals, let the LLM (Large Language Model) generate a complete first draft, and then personalize, fact-check, and polish.
Paradigm 2: Write first, then let the AI improve
This is the better route when you're doing something unique, niche, or detail-heavy, where AI may not have enough reliable context:
- Writing a blog post about a little-known hiking route.
- In code, building highly customized backend logic.
Here, you create a rough version—structure, key ideas, raw code—and then let the AI help refine, format, and elevate the result.

Going deeper: How to vibe code responsibly
Vibe coding is sometimes dismissed as lazy or error-prone. But the reality is, it's becoming essential. The productivity gap between traditional developers and those who embrace AI tooling is widening fast.
Yes, LLMs aren’t perfect. But ignoring them doesn’t slow down the world—it just leaves you behind. So, to make the most out of vibe coding while avoiding the pitfalls, I suggest keeping these four principles in mind:
1. Be modular
Good software design applies more than ever. Break things down into small components. This keeps your code manageable and minimizes risk when collaborating with an LLM. Modularity allows faster iteration and easier debugging. In addition, LLMs can struggle to maintain coherence over large stretches of code, and being modular reduces the problem.
2. Boost unit testing
With AI writing code, testing isn’t optional—it’s your safety net. Especially when doing several iterations, regression is the norm, so testing becomes fundamental to catch where we changed the code behavior unintentionally. The good news? Tests themselves can be vibe-coded. Let the LLM suggest edge cases or help create complete test suites for each module.
3. Work your prompts
Prompt engineering is an art. Write better prompts, and you’ll get better code. A few generic rules always apply: be specific and include examples. Examples may include the previous version of the code and naming conventions and rules you want it to always follow. You should also mention the current date to avoid outdated libraries, and ask for clean, minimal output. Save good prompts—you'll reuse them often!
4. Vibe but verify
Never trust blindly. Always be inquisitive. I recommend also asking multiple LLMs and comparing. You can even ask one LLM to review or critique the output of another. And if you're unsure, request multiple solutions and choose the best one—or merge insights.

Do you need to know how to code for vibe coding?
One of the fascinating aspects of vibe coding is how it makes coding more accessible. While having a coding background is definitely beneficial, it’s not always essential. Knowing how to code helps you refine AI-generated output and troubleshoot issues, but vibe coding also provides an excellent learning opportunity for newcomers. It allows them to learn best practices, understand coding structures, and focus more on problem-solving and innovation. Still, if you plan to put it into production, better review the code with an expert or test it in depth.
Will vibe coding make us unable to code?
A recent MIT study suggests so—you can find it at this link. The study is about essay writing, not coding, but the results are clearly going in one direction. Groups of people were tasked with writing essays and given a different set of tools: LLM, a search engine, or no external help ("brain-only"). The conclusion is that using LLMs like ChatGPT can initially boost productivity, but may lead to:
- Reduced neural activation
- Weakened memory and cognitive engagement
- Lower learning outcomes over time.
This suggests a long-term “cognitive debt”: while LLMs simplify tasks, they may undermine deep learning and mental effort, especially in educational contexts.
However, didn’t that happen already when calculators were introduced? We are surely worse than our grandparents at making calculations, but at the same time, we developed new skills they could not even dream of. So is this a problem or just evolution? Only the future will tell. What scares me a bit is just that the pace of progress could become too fast to adapt.

Final thoughts: flow over fear
Vibe coding isn’t about replacing developers—it’s about enhancing them. By blending human creativity with AI efficiency, you can stay ahead of the curve, produce high-quality work faster, and keep innovating. The key is to know when to let the AI take the lead and when to step in and fine-tune the results.
Now, a question for you: was this article written with GenAI, by a human, or a bit of both? Let’s just say... it was vibe coded! 🧠💻✨
Don’t code like it’s 2020. Vibe responsibly.
Author
Luca Pescatore