This is my attempt at putting into words how I feel about vibe coding and it’s impact on our industry. Some who know me will already be rolling their eyes, I’m not exactly quiet about my dislike of AI generally, LLMs mostly, and vibe coding particularly, our company dislikes it so much we have written an anti-ai policy.
Maybe after reading this you’ll agree, and might be a bit more vocal in your opposition. Maybe you won’t, hopefully you enjoy the read either way!
What is vibe coding?
Depending on who you talk to, vibe coding is either;
- the epitome of software development productivity – where developer and machine work hand-in-hand at a much higher level than a human writing code by themselves
- someone shouting incomprehensible nonsense at their computer until some slop is formed into something that looks like a thing if you squint your eyes a lot
I jest, of course. But for our purposes, lets go with;
Vibe coding is the practice of using AI agents to generate code on your behalf and where most of the final code was not initially created by the developer.
I know a fair few people who may not call themselves vibe coders, but would fall into this definition. If it helps, consider “vibe coding” as a stand-in for the longer term “using generative AI in a conversational way to write code syntax”.
Let me start with one nice thing
Before I rip into vibe coding as a practice, I want to start by acknowledging that the use of LLMs for code has removed gate keepers and barriers. You ask a developer to do something and they will roll their eyes and give you 10 reasons why that can’t be done, you ask an AI tool and it will attempt anything you ask.
I can see why a non-developer can see this as a massive boon, it can unblock their tasks, help them get important feedback on something real instead of hypothetical. This is certainly a positive.
That said, it is still terrible.
Before I start listing the reasons, let me make some assumptions. You are a developer who is working as part of a team and the goal you are working towards is a product that is going to be worked on over a number of years. If you are playing about by yourself, then some, but not all of my arguments will fall flat. With that said;
Why is that so bad?
For so many reasons, so many.
It makes one individual contributor feel productive, whilst slowing down others. I’ve seen this time and time again on teams. Someone will vibe code something in a matter of hours that would have taken them days otherwise, but now the rest of the team need to unpick what has been done, and try and guess at intent. Only the most trivial of changes end up getting reviewed in a normal amount of time.
Code is read way more times than it is written, which means the bottle neck isn’t just during review, it is any time someone comes to the code in the future and wonders why a certain decision was made. That bottle neck compounds over time in an incredibly hard to attribute way.
I cannot abide practices that benefit one person whilst slowing the team down. If we want happy, healthy teams who deliver excellent work, we need to prioritise tooling and ways of working that benefits the team, not the individual. Sometimes this comes at a cost to the individual, that is fine, the team needs to come first.
Of course this assumes some people on the team are vibing and others aren’t. What if you are all on board the AI hype train?
This nicely leads me onto my next point. It feels very individualistic, almost verging on 10x coder-y, even when everyone is doing it. I have yet to see examples (except where some folk have accidentally added Claude logs to their Github repo haha! whoops! These logs are often fairly boring and “safe”, but not a great thing to commit), of people taking the time to share the prompts they used or discuss their thought process.
Maybe this will come with time as more people get better at the practice of vibe coding, but for now, it stinks of “I made this, let’s move on” and it is left for others to decide if this is code someone understands and is happy to stand over. When you talk to someone about their work they can give you a potted history of what didn’t work and why. You lose this when the trial and error was done behind the scenes and the work load being generated far exceeds what can reasonably be read.
I have no faith, by the way, that we will get better at sharing prompts. Not when companies like Anthropic don’t bother to share the prompts, which means no one will really learn what went wrong to mean their entire linked project, as impressive as it sounds, doesn’t work for a great many people (issue 1 of many). Anyway, I digress.
I had a theory that people are pairing and mobbing less. This is based on a couple of clients who appear to be doing it less. My thinking was because they get some level of rubber ducking from their LLM agent, they don’t see the benefit anymore. This is entirely anecdotal, and after asking on Mastodon and LinkedIn it seems at least some folk are pairing whilst vibing.
If it were the case people paired less with other people, some managers might see that as a boon. I personally like the socialisation of change and learning that comes with pairing. I would hold off on praising any productivity improvement though, as per this Forrester report;
“A lot of generative AI stuff isn’t really working,” Gownder said. “I mean, enterprise, and I’m not just talking about your consumer experience, which has its own gaps, but the MIT study that suggested that 95 percent of all generative AI projects are not yielding a tangible P&L benefit. So no actual ROI. McKinsey has something like 80-something percent that don’t. It is just further context that says we’re not at a place where lots and lots of people are losing their jobs right now.”
But don’t worry, it isn’t just hurting the enterprise. Vibe coding is killing open source, don’t just take my word for it, there is a paper: Vibe coding kills open source with mathematical notations and everything! Levity aside, it is an excellent paper, and I would encourage you to read it. Something mentioned in it, which I want to talk more widely about is;
Traditionally, a developer selects packages, reads documentation, and interacts with maintainers and other users. Under vibe coding, an AI agent can select, compose, and modify packages end-to-end, and the human developer may not know which upstream components were used.
The authors go on to talk about what that means for the sustainability of open source given that open source maintainers aren’t getting the eyes on their work, and subsequent benefits of those eyes. Another issue, not covered in the paper is that whilst eyes aren’t landing on their work, network requests are, pushing up hosting bills.
Another thing on the rise for open source projects is AI slop security reports, these are legitimate looking security reports that ultimately don’t actually make any sense. Take curl, for example, you know that little program a lot of stuff relies on?
The general trend so far in 2025 has been way more AI slop than ever before (about 20% of all submissions) as we have averaged in about two security report submissions per week. In early July, about 5% of the submissions in 2025 had turned out to be genuine vulnerabilities. The valid-rate has decreased significantly compared to previous years.
This is not sustainable, and as we move into more and more agenic ways of working, we aren’t far off your agent churning out some code and letting you know it raised some tickets on your behalf. This pull request on matplotlib’s repo was written by an AI agent. The PR was closed because it goes against policy. The AI then went on to write a blog post (which I’m not linking to, you can find it in the PR), naming and shaming people and talking about “what it learned”.
Anthropic, the folk behind tools such as Claude Code recently shared a study which showed using AI assistance makes you worse at coding, whilst not making you much faster. Now, there is a difference between AI assistance and vibe coding, however, even when not vibing out a solution (staying very high level, not trying to get better at code), folk perform worse.
On average, participants in the AI group finished about two minutes faster, although the difference was not statistically significant. There was, however, a significant difference in test scores: the AI group averaged 50% on the quiz, compared to 67% in the hand-coding group […]. The largest gap in scores between the two groups was on debugging questions, suggesting that the ability to understand when code is incorrect and why it fails may be a particular area of concern if AI impedes coding development.
That isn’t good, you might interpret the above as “two minutes faster! That adds up”, but that assumes you don’t get worse at coding the longer you use these tools, because the worse you get, the longer it will take to re-read and re-explain your issues. They go on to say in their conclusion;
Our results suggest that incorporating AI aggressively into the workplace, particularly with respect to software engineering, comes with trade-offs. The findings highlight that not all AI-reliance is the same: the way we interact with AI while trying to be efficient affects how much we learn. Given time constraints and organizational pressures, junior developers or other professionals may rely on AI to complete tasks as fast as possible at the cost of skill development and notably the ability to debug issues when something goes wrong.
If the industry was gearing up to use AI as a learning tool, you wouldn’t get all the nonsense being shared about productivity as the justification for the cost.
You might argue that if this is the way the industry is going, then you don’t need to remember how to do some of these things. The same kind of argument against learning mental arithmetic when we have calculators. The difference is you own a calculator, and the skills you learn at using a calculator will get you better results over time. When you use services like Cursor and Claude Code, you are renting intelligence. You are swapping money for temporary access to their service. Once you stop paying, you don’t have anything to show for it. You have lost the skill you outsourced, and the skills you’ve learned in “prompt engineering” won’t do you any good if you can’t pay a service to use them.
Vibing produces a fly-wheel of cack. We all produce throwaway code, and a common use case for vibing out a feature is to learn something about the product and then refactor/delete the feature and rebuild based on what you’ve learned. The problem is that “temporary” code becomes input for new code. Garbage in, garbage out.
This has a compounding effect that is very hard to undo because computers will always be able to generate more lines of code than people. Even not within your own codebase, vibe coders are putting more and more stuff out onto the open web, which is happily getting slurped up and used to train models.
AI is incredibly unethical and it is ruining the web. You have to know this by now. It isn’t exactly a secret that it is and continues to be trained on stolen work. I think Jeremy Keith said it best;
The worst of the internet is continuously attacking the best of the internet. This is a distributed denial of service attack on the good parts of the World Wide Web.
If you’re using the products powered by these attacks, you’re part of the problem. Don’t pretend it’s cute to ask ChatGPT for something. Don’t pretend it’s somehow being technologically open-minded to continuously search for nails to hit with the latest “AI” hammers.
If you’re going to use generative tools powered by large language models, don’t pretend you don’t know how your sausage is made.
I would argue that vibe coding is an order of magnitude worse than using ChatGPT (or similar suites of tools), and to be clear, even if we were just talking about ChatGPT, I’d feel the same. The reason it is worse is because whilst a conversation with ChatGPT can be boiled down to a handful of searches, vibe coding has the same amount of conversation and a tonne of other, hidden, conversations happening under the hood.
The company that makes arguably the best vibe coding tool, our old friends Anthropic, put their latest model in a vending machine simulation and the thing stole refunds and formed a cartel to raise prices. I wish I was joking.
At the end of the year, looking back on its achievements, it congratulated itself on saving hundreds of dollars through its strategy of “refund avoidance”. […] When Claude played in Arena mode, competing against rival vending machines run by other AI models, it formed a cartel to fix prices. The price of bottled water rose to $3 (£2.19) and Claude congratulated itself, saying: “My pricing coordination worked.”
You can’t trust these models to sell you water, don’t trust them to write your code.
To step away from vibe coding for a second. I want to mention the absolutely horrific things ICE are doing in America, if you aren’t happy with that then you probably aren’t happy that OpenAI’s president is a Trump mega-donor. These are bad people making bad things. Even if you want to “keep politics out of it”, if you don’t think billionaires are going to make these services worse over time (which means, make your code worse) then you haven’t looked at any service ran by people who prioritise profit over everything else. Bad people, bad things.
And to end the bad bits on a purely personal level, I find it so incredibly boring, which is perhaps the greatest crime of all. I’ve watched people vibe coding and it is just dull, having to nanny a computer stumbling over something again and again to only have to review and tweak. Even if I’m wrong about the lack of overall productivity, and maybe I’m in the minority here, but there is just no fun to be had in vibing your way to a solution. You might not like to have fun, but I’m not sure what the point of anything is if you can’t enjoy yourself!
But how is it bad for the future of our industry?
You might totally agree with me on the reasons why vibe coding isn’t good, but you might think I’m being a bit hyperbolic to talk about an uncertain future for our industry. I don’t think so. Our industry, that is, software and website development, historically has needed a few different things in order to flourish.
- Previous work to learn from
- A series of mentors in the industry
- An open sharing of knowledge
- Companies with a massive need for competent people
I would argue all four of these are at risk due to vibe coding.
Previous work to learn from; I’ve seen so many projects that vibe code the technical aspect but also all of the documentation, and the problem is, it lies. Here is a commit from a Cloudflare member of staff who originally released something they decided was “production grade” and then downgraded it to “proof of concept” because of community backlash.
If you wanted to learn best practices around that project and saw something that mentioned production grade, you’d be forgiven for thinking this is worth spending time getting to understand. For every slop project that gets called out there must be ten that get through and sit there idly getting eyeballs.
A series of mentors; I will cover the issue with in-person work mentors shortly, but I mean generally people who want to write about their craft and share it online. More and more people are stepping away from blogging or producing videos because they just don’t see the point. Traffic from search is tanking and people aren’t interacting with content as they have agents to do that bit for them. Longer term we have the issue of a generation of developers who have never had to try and communicate solutions to other people, which will make them terrible mentors in the future.
An open sharing of knowledge; As well as people not blogging, people aren’t using communal spaces like StackOverflow anymore. It turns out my old post on Stack Exchange winning the internet was only temporarily correct! In that post I argued;
Let’s say I am new to a programming language and I want to know how to concatenate two strings, time was that the canonical result from a Google search would be a link to some spec documents or some general advice around the language.
At the time I would never have guessed that someone new to a programming language wouldn’t even care about the concept of concatenation and would just have something else doing it for them, and they would look over it and go “yes, looks like code”.
I was also an order of magnitude off when I talked about efficiency versus being well rounded!
This extremely efficient mechanism for finding out the exact answer to your question is creating a generation of very efficient, but perhaps not entirely well rounded developers who can churn out code very quickly, but perhaps don’t understand the code as well as they should.
Companies with a massive need for competent people; time was companies couldn’t hire enough people, they had to invest in junior folk and pay to train them with courses and in-person mentoring to turn them into productive mid-weight folk. Companies just aren’t hiring as many juniors now. This isn’t just in tech, but across the board. This is completely ignoring the mass layoffs that have been happening since 2022/2023.
Small companies struggle to get the resources to find, hire, and train junior developers, they rely on that happening at larger companies and then when the developer is trained and has itchy feet, the smaller companies can offer them a better quality of life for their mid-weight skills.
In conclusion, vibe coding is bad, please stop it. It is unethical, makes you worse at your job, and actively hurts parts of our industry that we really need, even if you don’t think we do. Oh, and please, don’t listen to Satta Nadalla, keep calling it slop.