The cult of vibe coding is dogfooding run amok

607 points - last Monday at 6:31 PM

Source

Comments

semicolon_storm last Monday at 7:01 PM
It’s truly strange that people keep citing the quality of Claude code’s leaked source as if it’s proof vibe coding doesn’t work.

If anything, it’s the exact opposite. It shows that you can build a crazy popular & successful product while violating all the traditional rules about “good” code.

saulpw last Monday at 6:58 PM
> That wouldn’t even be a big violation of the vibe coding concept. You’re reading the innards a little but you’re only giving high-level, conceptual, abstract ideas about how problems should be solved. The machine is doing the vast majority, if not literally all, of the actual writing.

Claude Code is being produced at AI Level 7 (Human specced, bots coded), whereas the author is arguing that AI Level 6 (Bots coded, human understands somewhat) yields substantially better results. I happen to agree, but I'd like to call out that people have wildly different opinions on this; some people say that the max AI Level should be 5 (Bots coded, human understands completely), and of course some people think that you lose touch with the ground if you go above AI Level 2 (Human coded with minor assists).

[0] https://visidata.org/ai

hibikir last Monday at 7:49 PM
My favorite uses of Claude code is to do code quality improvements that would be seen as a total waste of time if I was doing them by hand, but are perfectly fine when they are done mostly for free. Looking for repetitive patterns in unit tests/functional tests. Making sure that all json serialization is done in similar patterns unless there's a particularly good reason. Looking for functions that are way too complicated, or large chunks of duplication.

The PRs that it comes with are rarely even remotely controversial, shrink the codebase, and are likely saving tokens in the end when working on a real feature, because there's less to read, and it's more boring. Some patterns are so common you can just write them down, and throw them at different repos/sections of a monorepo. It's the equivalent of linting, but at a larger scale. Make the language hesitant enough, and it won't just be a steamroller either, and mostly fix egregrious things.

But again, this is the opposite of the "vibe coding" idea, where a feature appears from thin air. Vibe Linting, I guess.

scrame last Monday at 6:58 PM
This is the guy that created bittorrent, btw. I know that was a long time ago, but he's not just some random blogger.
Fr0styMatt88 last Monday at 8:46 PM
It’s so strange. I think there’s a few different groups:

- Shills or people with a financial incentive

- Software devs that either never really liked the craft to begin with or who have become jaded over time and are kind of sick of it.

- New people that are actually experiencing real, maybe over-excitement about being able to build stuff for the first time.

Forgetting the first group as that one is obvious.

I’ve encountered a heap of group 2. They’re the ones sick of learning new things, for whatever reason. Software work has become a grind for them and vibe coding is actually a relief.

Group 3 I think are mostly the non-coders who are genuinely feeling that rush of being able to will their ideas into existence on a computer. I think AI-assisted coding could actually be a great on-ramp here and we should be careful not to shit on them for it.

bearjaws last Monday at 7:04 PM
This is nearly as dumb as the post that "Claude code is useless because your home built "Slack App" won't be globally distributed, with multi-primary databases and redis cache layer... and won't scale beyond 50k users".

As if 97% of web apps aren't just basic CRUD with some integration to another system if you are lucky.

99% of companies won't even have 50k users.

bs7280 last Monday at 7:16 PM
In my opinion there are two main groups on the spectrum of "vibe coding". The non technical users that love it but don't understand software engineering enough to know what it takes to make a production grade product. The opposite are the AI haters that used chatgpt 3.5 and decided LLM code is garbage.

Both of these camps are the loudest voices on the internet, but there is a quiet but extremely productive camp somewhere in the middle that has enough optimism, open mindedness along with years of experience as an engineer to push Claude Code to its limit.

I read somewhere that the difference between vibe coding and "agentic engineering" is if you are able to know what the code does. Developing a complex website with claude code is not very different than managing a team of off shore developers in terms of risks.

Unless you are writing software for medical devices, banking software, fighter jets, etc... you are doing a disservice to your career by actively avoiding using LLMs as a tool in developing software.

I have used around $2500 in claude code credits (measured with `bunx ccusage` ) the last 6 months, and 95% of what was written is never going to run on someone else's computer, yet I have been able to get ridiculous value out of it.

jameson last Monday at 8:19 PM
Vibe coders' argument* is that quality of code does not matter because LLMs can iterate much much faster then humans do.

Consider this overly simplified process of writing a logic to satisfy a requirement:

1. Write code

2. Verify

3. Fix

We, humans, know the cost of each step is high, so we come up various way to improve code quality and reduce cognitive burden. We make it easier to understand when we have to revisit.

On the other hand, LLMs can understand** a large piece of code quickly***, and in addition, compile and run with agentic tools like Claude Code at the cost of token****. Quality does not matter to vibe coders if LLMs can fill the function logic that satisfies the requirement by iterating the aforementioned steps quickly.

I don't agree with this approach and have seen too many things broken from vibe code, but perhaps they are right as LLMs get better.

* Anecdotal

** I see LLM as just a probabilistic function so it doesn't "reason" like humans do. It's capable of highly advanced problem solving yet it also fails at primitive task.

*** Relative to human

**** Cost of token I believe is relatively cheaper compared to a full-time engineer and it'll get cheaper over time.

somewhatjustin last Monday at 7:11 PM
This reminds me of Clayton Christensen's theory of disruption.

Disruption happens when firms are disincentivized to switch to the new thing or address the new customer because the current state of it is bad, the margins are low. Intel missed out on mobile because their existing business was so excellent and making phone chips seemed beneath them.

The funny thing is that these firms are being completely rational. Why leave behind high margins and your excellent full-featured product for this half-working new paradigm?

But then eventually, the new thing becomes good enough and overtakes the old one. Going back to the Intel example, they felt this acutely when Apple switched their desktops to ARM.

For now, Claude Code works. It's already good enough. But unless we've plateaued on AI progress, it'll surpass hand crafted equivalents on most metrics.

dogline last Monday at 7:28 PM
I think it's becoming clear we're not anywhere near AGI, we figured out how to vectorize our knowledge bases and replay it back. We have a vectorized knowledge base, not an AI.
youknownothing yesterday at 1:02 AM
I don't think this has anything to do with dogfooding. As the author says, dogfooding is about consuming your own product. You can consume Claude Code and still be a reasonable engineer. It's difficult to tell what's actually happening without an insider view but, IMHO, this is just the typical go-fever of start-up thinking: produce loads of functionality as quickly as possible and don't think about quality. It was try before AI, and it will be true after AI.

Also, to those who say "this is proof that code quality doesn't matter any more", let's have this chat 5 years from now when they're crumbling under the weight of their own technical debt :)

reconnecting last Monday at 6:51 PM
> Then I explain what I think should be done and we’ll keep discussing it until I stop having more thoughts to give and the machine stops saying stupid things which need correcting.

Users like the author must be the most valuable Claude asset, because AI itself isn't a product — people's feedback that shapes output is.

johnfn last Monday at 8:03 PM
"Laughing" at how bad the code in Claude Code is really seems to be missing the forest for the trees. Anthropic didn't set out to build a bunch of clean code when writing Claude Code. They set out to make a bunch of money, and given CC makes in the low billions of ARR, is growing rapidly, and is the clear market leader, it seems they succeeded. Given this, you would think you'd would want to approach the strategy that Anthropic used with curiosity. How can we learn from what they did?

There's nothing wrong with saying that Claude Code is written shoddily. It definitely is. But I think it should come with the recognition that Anthropic achieved all of its goals despite this. That's pretty interesting, right? I'd love to be talking about that instead.

a_shovel last Monday at 7:40 PM
They think their dog food tastes great now, not because they improved it any, but because they've forgotten the taste of human food. Karmically hilarious.
serf last Monday at 10:14 PM
people that 'violate the rules of good code' when vibe-coding are largely people that don't know the rules of good code to begin with.

want code that isn't shit? embrace a coding paradigm and stick to it without flip-flopping and sticking your toe into every pond, use a good vcs, and embrace modularity and decomposability.

the same rules when 'writing real code'.

9/10 times when I see an out-of-control vibe coded project it sorta-kinda started as OOP before sorta-kinda trying to be functional and so on. You can literally see the trends change mid-code. That would produce shit regardless of what mechanism used such methods, human/llm/alien/otherwise.

jrm4 last Monday at 8:49 PM
This definitely reminds me of a lot of Nassim Taleb's work, which to say -- Anthropic may not be behaving intelligently but they are at least somewhat behaving honorably, -- if you're going to put out a dangerous product, a moral minimum is to use it heavily yourself so as to be exposed to the risk it creates.
ontouchstart last Monday at 8:46 PM
Vibe coding is like building castles in a sandbox, it is fun but nobody would live in them.

Once you have learned enough from playing with sand castles, you can start over to build real castles with real bricks (and steel if you want to build skyscraper). Then it is your responsibility to make sure that they would not collapse when people move it.

post-it last Monday at 7:20 PM
> In this particular case, a human could have told the machine: “There’s a lot of things that are both agents and tools. Let’s go through and make a list of all of them, look at some examples, and I’ll tell you which should be agents and which should be tools. We’ll have a discussion and figure out the general guidelines. Then we’ll audit the entire set, figure out which category each one belongs in, port the ones that are in the wrong type, and for the ones that are both, read through both versions and consolidate them into one document with the best of both.”

But that isn't the hard part. The hard part is that some people are using the tool versions and some are using the agent versions, so consolidating them one way or another will break someone's workflow, and that incurs a real actual time cost, which means this is now a ticket that needs to be prioritized and scheduled instead of being done for free.

hintymad last Monday at 7:35 PM
It looks vibe coding, or at AI coding in general, has been challenging a few empirical laws:

- Brooks' No Silver Bullet: no single technology or management technique will yield a 10-fold productivity improvement in software development within a decade. If we write a spec that details everything we want, we would write soemthing as specific as code. Currently people seem to believe that a lot of the fundamentals are well covered by existing code, so a vague lines of "build me XXX with YYY" can lead to amazing results because AI successfully transfers the world-class expertise of some engineers to generate code for such prompt, so most of the complex turns to be accidental, and we only need much fewer engineers to handle essential complexities.

- Kernighan's Law, which says debugging is twice as hard as writing the code in the first place. Now people are increasingly believing that AI can debug way faster than human (most likely because other smart people have done similar debugging already). And in the worst case, just ask AI to rewrite the code.

- Dijkstra on the foolishness of programming in natural language. Something along the line of which a system described in natural language becomes exponentially harder to manage as its size increases, whereas a system described in formal symbols grows linearly in complexity relative to its rules. Similar to above, people believe that the messiness of natural language is not a problem as long as we give detailed enough instructions to AI, while letting AI fills in the gaps with statistical "common sense", or expertise thereof.

- Lehman’s Law, which states that a system's complexity increases as it evolves, unless work is done to maintain or reduce it. Similar to above, people start to believe otherwise.

- And remotely Coase's Law, which argues that firms exist because the transaction costs of using the open market are often higher than the costs of directing that same work internally through a hierarchy. People start to believe that the cost of managing and aligning agents is so low that one-person companies that handle large number of transactions will appear.

Also, ultimately Jevons Paradox, as people worry that the advances in AI will strip out so much demand that the market will slash more jobs than it will generate. I think this is the ultimate worry of many software engineers. Luddites were rediculed, but they were really skilled craftsmen who spent years mastering the art of using those giant 18-pound shears. They were the staff engineers of the 19th-century textile world. Mastering those 18-pound shears wasn't just a job but an identity, a social status, and a decade-long investment in specialized skills. Yeah, Jevons Paradox may bring new jobs eventually, but it may not reduce the blood and tears of the ordinary people.

Intereting times.

simonw last Monday at 8:47 PM
How credible are the claims that the Claude Code source code is bad?

AI naysayers are heavily incentivized to find fault with it, but in my experience it's pretty rare to see a codebase of that size where it's not easy to pick out "bad code" examples.

Are there any relatively neutral parties who've evaluated the code and found it to be obviously junk?

cladopa last Monday at 7:16 PM
"Ladran, Sancho, señal que cabalgamos"

The ship has sailed. Vibe coding works. It will only work better in the future.

I have been programming for decades now, I have managed teams of developers. Vibe coding is great, specially in the hands of experts that know what they are doing.

Deal with it because it is not going to stop. In the near future it will be local and 100x faster.

love2read yesterday at 1:15 PM
It must feel so good to make a blog post that hates on vibecoding and get your mandated recognition for a regurgitated point. Nobody is even arguing that this article said anything novel, it’s just pure hate
2197aG last Monday at 9:32 PM
Looks like he just promotes AI by attacking vibe coding and inserting his own personal religion. AI is good, you just need to use it right.

"I have been screaming at my computer this past week dealing with a library that was written by overpaid meatbags with no AI help."

And here we go: The famous "humans do it, too" argument. With the gratuitous "meatbag" propaganda.

Look Bram, if you work on bitcoin bullshit startups, perhaps AI is good enough for you. No one will care.

CrzyLngPwd last Monday at 7:31 PM
I feel like vibe coding a product is functionally the same as prototyping.

In the past, which is a different country, we would throw away the prototypes.

Nowadays vibe coding just keeps adding to them.

deleted last Monday at 7:19 PM
Null-Set yesterday at 5:40 AM
You should eat your own dog food, but maybe you should not drink your own rat poison.
amarant last Monday at 7:00 PM
I had to stop reading halfway through this article, my straw allergy had me sneezing uncontrollably at all the strawmen in there!
doubleorseven last Monday at 8:27 PM
I vibe code. but I also remember the days I had ZERO KNOWLEDGE of what needs to be done, and I would hammer the keyboard with garbage code from stack overflow and half baked documentations plus some native guessing of human nature. the end result was me understanding what the hell was going on. those days are over.
FrankWilhoit last Monday at 8:49 PM
Every so often, some Windows source gets leaked, and people have a lot of fun laughing at how bad it is. If the source of, say, PeopleSoft were leaked, people would have a lot of fun laughing at how bad it is. If the source of Hogan Deposits were leaked, it would kill anyone who saw it.
kwar13 yesterday at 3:36 AM
Only in an echo chamber people spend nitpicking about what is "good code". For vast majority of use cases, the 'good code' the one that works.

And then you have the source code for quake or doom.

doubleorseven last Monday at 8:16 PM
"figure out which category each one belongs in, port the ones that are in the wrong type, and for the ones that are both, read through both versions and consolidate them into one document with the best of both.”

memory created!

maxmorrish yesterday at 1:51 AM
the middle ground nobody talks about is using AI for the boring infrastructure stuff (stripe integration, auth boilerplate, static site scaffolding) and writing the actual business logic yourself. i've shipped like 3 side projects this year using that approach and the code quality is fine because im not vibe coding the parts that actually matter
abustamam yesterday at 3:26 PM
Wrote this as a reply to another comment, then realized it probably makes more sense as a top-level comment, so reposting here.

IME AI-native engineering requires a lot of infrastructure to make it viable. Teams who are just opening up cursor and putting it on "auto" and trying to one shot features may get stuff that works but is indeed slop.

Since the beginning of the year, I've been spearheading a low-stakes AI-native project (an internal tool). No one's written a single line of code. And we've learned so much from this experience. The first rule was our product manager, who is technical but isn't typically in the weeds, needs to be able to one-shot prompts with cursor auto. And so many rules stem from there, from e2e tests to ensure he doesn't break stuff, to custom linters to ensure that code lives in the right place, to architectural spec sheets so the LLM doesn't try to do raw DB queries from the client.

We're still not there, but we're getting closer and learning and improving every day.

I think the folks who are vibe coding a lot either aren't working in a team, or they are omitting the fact that they have spent a long time building harnesses to ensure the LLM doesn't run amok.

And I think the people who hate vibe coding are likely just asking Claude Code to do X without using Skills that have opinionated ways to do X.

All that said, I don't think we should ignore how the sausage is made at all. Part of what makes me able to move quickly in this project is knowing where stuff lives. I may not understand the line-by-line code, but if I know where to look to find out why I'm missing data that's in the DB, I can move a lot faster than if I have no idea what's going on in the codebase. Then when I find the problematic file or function, I can ask the LLM why it's like X and tell it it should be like Y.

greedo last Monday at 7:56 PM
I've been a skeptic about LLMs in general since I first heard of them. And I'm a sysadmin type, more comfortable with python scripts than writing "real" software. No formal education in coding at all other than taking Harvard's free online python course a few years ago.

So I set out to build an app with CC just to see what it's like. I currently use Copilot (copilot.money) to track my expenditures, but I've become enamored with sankey diagrams. Copilot doesn't have this charting feature, so I've been manually exporting all my transactions and massaging them in the sankey format. It's a pain in the butt, error prone, and my python skills are just not good enough to create a conversion script. So I had CC do it. After a few minutes of back and forth, it was working fine. I didn't care about spaghetti code at all.

So next I thought, how about having it generate the sankey diagrams (instead of me using sankeymatic's website). 30 minutes later, it had a local website running that was doing what I had been manually doing for months.

Now I was hooked. I started asking it to build a native GUI version (for macOS) and it dutifully cranked out a version using pyobjC etc. After ironing out a few bugs it was usable in less than 30 min. Feature adds consumed all my tokens for the day and the next day I was brimming with changes. Burned through that days tokens as well and after 3 days (I'm on the el cheapo plan), I have an app that basically does what I want in a reasonable attractive, and accurate manner.

I have no desire to look at the code. The size is relatively small, and resource usage is small as well. But it solved this one niche problem that I never had the time or skill to solve.

Is this a good thing? Will I be downvoted to oblivion? I don't know. I'm very very concerned about the long term impact of LLMs on society, technology and science. But it's very interesting to see the other side of what people are claiming.

TaylorGood yesterday at 3:11 AM
Vibe coding for me was a paradigm shift on AI as a tool I can utilize to unlock more. I started with no-code solutions, and never could get to the last 10% of production-ready. Then saw someone on X mention Cursor. Avoided it, avoided it then said fuck it and dove in, and now I use it daily and it's been a game changer. Prior to all this, I had front-end experience at best... like modifying Wordpress themes back in the day, etc. - I've since shipped two software platforms that are basically AI OS for certain verticals, and an intricate iPhone app, etc... None of this was possible for me before six months ago. Big fan of the IDE experience. I tried Claude Code but I don't like not knowing what's going on the way I see it in Cursor. The first platform I was idea to market in 3 weeks, then the next platform, it took me a day. Not MVP, but fully built out. That's insane. My first startup was an iPhone app back during iOS7, and we had to outsource V1, and it took six months and cost $50k. It was a terrible MVP. Lol. In comparison, I'm doing what I'm doing in Cursor on the $60 plan.

All this to say, Vibe Coding as a no-code, even if the solution can hook api's for you, etc, nah. It should be a gateway at best to fully understand and build via agentic development.

moger777 last Monday at 9:12 PM
We don't know how Claude Code looked before it was vibe coded. It might have always sucked.
blairharper yesterday at 10:02 AM
The real cult is the engineers who refuse to shift their perception of what "good" or "quality" means in a world where humans, for the most part, won't be reading or writing code anymore.

I get it, existential threats are scary, but you can't just shit talk them and hope they go away.

cyrusradfar last Monday at 7:50 PM
OT: I really enjoy Bram's takes, he's brilliant and prickly in the best ways.
HenryChen yesterday at 12:40 AM
Vibe coing 0 to 1 feels like the move. Ship fast, fix later.
ape4 last Monday at 7:40 PM
Can they ask the Claude to clean up the duplication etc its English code?
VerifiedReports yesterday at 5:58 AM
Looks more like meaningless terms run amok...
deleted last Monday at 9:44 PM
freediddy last Monday at 7:19 PM
No, I completely disagree with this entire article.

Bad code or good code is no longer relevant anymore. What matters is whether or not AI fulfills the contract as to how the application is supposed to work. If the code sucks, you just rerun the prompt again and the next iteration will be better. But better doesn't matter because humans aren't reading the code anymore. I haven't written a line of code since January and I've made very large scale improvements to the products I work on. I've even stopped looking at the code at all except a cursory look out of curiosity.

Worrying about how the sausage is made is a waste of time because that's how far AI has changed the game. Code doesn't matter anymore. Whether or not code is spaghetti is irrelevant. Cutting and pasting the same code over and over again is irrelevant. If it fulfills the contract, that's all that matters. If there's a bug, you update the contract and rerun it.

nipponese yesterday at 1:24 AM
Knowing this is the wrong crowd, I hesitate to even type this, but come on... The pace of evolution on this topic is hard to ignore:

2024 - Utter Trash

2025 - Merely hotdog water

2026 - Aaaaaaaaaactually pretty good...

Every forward-leaning platform is building out an MCP interface, I think we're past the point of "soulless fad."

carverauto last Monday at 7:51 PM
almost as insane as your dumb crypto project
dcre last Monday at 8:58 PM
Bizarre to make claims about how the Claude Code devs work based solely on the leaked source. They have talked plenty about how they work.
deleted last Monday at 8:36 PM
dominotw last Monday at 6:55 PM
> So pure vibe coding is a myth. But they’re still trying to do it, and this leads to some very ridiculous outcomes

creating a product in a span of mere months that millions of developers use everday is opposite of ridiculous. we wouldn't even have known about the supposed ridiculousness of code if it hadnt leaked.

fred_is_fred yesterday at 1:19 AM
The whole idea of someone's code being perfectly handcrafted may have been true in 1998, but any project you start now builds on a tower of open source libraries frameworks, and container images - probably running on someone else's infra. Nobody is really starting from a blank page anymore.
jmyeet last Monday at 7:32 PM
[flagged]
sneak last Monday at 8:22 PM
Where is the evidence that people are obsessed with one-shotting and not doing the iterative back-and-forth, prompt-and-correct system he describes here? It feels like he is attacking a strawman.
nathias last Monday at 8:01 PM
the simple truth is all code is garbage
jdforsythe27 yesterday at 10:12 AM
amen
teaearlgraycold last Monday at 7:36 PM
> You don’t have to have poor quality software just because you’re using AI for coding.

People were given faster typers with incredible search capabilities and decided quality doesn’t matter anymore.

I don’t even mean the code. The product quality is noticeably sub par with so many vibe-coded projects.

nenadg last Monday at 7:40 PM
what about the cult vibe projecting every business logic agentic?
areys yesterday at 12:15 AM
[flagged]
edinetdb yesterday at 4:49 AM
[flagged]
merlin1de yesterday at 7:25 AM
[flagged]
psychomfa_tiger yesterday at 4:50 AM
[flagged]
nightrate_ai last Monday at 10:31 PM
[dead]
areys yesterday at 6:29 AM
[flagged]
zephyrwhimsy yesterday at 9:11 AM
[flagged]
tatrions last Monday at 7:11 PM
[flagged]
bambushu yesterday at 7:25 AM
[flagged]
galaxyonknowled last Monday at 8:19 PM
[dead]
Rover222 last Monday at 7:02 PM
[flagged]
quater321 last Monday at 7:55 PM
Do you guys remember the cult of git or the containerization cult? Damn, I hate the advancement ;D
infinitewars last Monday at 6:53 PM
AI is just another layer of abstraction. I'm sure the assembly language folks were grumbling about functions as being too abstracted at one point
throw949449 last Monday at 7:01 PM
> I’ll start a conversation by saying “Let’s audit this codebase for unreachable code,” or “This function makes my eyes bleed,” and we’ll have a conversation about it until something actionable comes up. Then I explain what I think should be done and we’ll keep discussing it until I stop having more thoughts

This is painful to read. It feels like rant from person who does not use version control, testing and CI.

It is cruel to force machine into guessing game with a todler whose spec is "I do not like it". If you have a coding standarts and preferences, they should be already destiled and exlained somewhere, and applied automatically (like auto linter in not so old days). Good start is to find OS projects you like, let claude review it, and generate code rule. Than run it on your code base over night, until it passes tests and new coding standarts automated code review.

The "vibe coding" is you run several agants in parallel, sometimes multiple agents on the same problem with different approach, and just do coding reviews. It is mistake to have a synchronous conversation with a machine!

This type of works needs severe automation and parallelisation.

aleph_minus_one last Monday at 7:15 PM
> The AI is very bad at spontaneously noticing, “I’ve got a lot of spaghetti code here, I should clean it up.” But if you tell it this has spaghetti code and give it some guidance (or sometimes even without guidance) it can do a good job of cleaning up the mess.

Set up an AI bot to analyze the code for spaghetti code parts and clean up these parts to turn it into a marvel. :-)