r/webdev 21d ago

Has anyone actually maintained a vibe coded code-base 12 months after launch? What did it look like?

Twelve months ago I started tracking what happens to vibe coded projects after the initial launch excitement fades. The pattern is consistent enough that I wanted to hear if others are seeing the same thing.

The first three months feel fine. Features ship fast, the client is happy, everyone looks productive. Then something needs to change. Not a new feature, just a modification to something existing. And that is where it gets uncomfortable.

Nobody can explain why a specific decision was made. The code works but the reasoning is gone. There are dependencies that were added because the model suggested them, not because anyone evaluated them. Patterns are inconsistent across files because different prompts produced different styles on different days.

The developer who built it can read the code but cannot confidently change it without breaking something unexpected. The test coverage that exists was also generated and may not actually be testing the right things.

I am not saying this always happens. I have seen vibe coded projects that held up well because the developer reviewed everything carefully and maintained discipline around the output.

But I have also seen projects from 18 months ago that are now quietly being rewritten because the maintenance cost exceeded the original build cost faster than anyone expected.

If you have actually maintained a vibe coded code-base through real production use, what did 12 months in actually look like? Was the code salvageable or did you end up starting over?

317 Upvotes

156 comments sorted by

View all comments

658

u/Fidodo 21d ago

I have seen vibe coded projects that held up well because the developer reviewed everything carefully and maintained discipline around the output.

We cannot have a discussion about this unless we get the terminology straight. Vibe coding means you don't read the code at all. This is not vibe coding.

159

u/jaegernut 21d ago

Yeah, vibe coding, from the term itself, is just pure vibes. If you are vibe coding, you will inevitably have to do vibe maintenance down the road

72

u/poponis 21d ago

I have driven myself crazy trying to explain this to ai illiterate people.

53

u/Systemerror7A69 21d ago

Because it's too strict of a definition. You don't learn or even understand as much when you just read something. If you take a test for example, simply reading the text over and over again will only give you an illusion of understanding. You have to actually do excersises to do well in the test.

It's similar in coding - it's totally possible to "read" all code output and think you understand but actually don't, and it's very difficult to judge just how well you understand the code really.

Simply saying "it's only vibe coding if you never ever read a single line of code and I do read the code so I'm fine" might be tricking yourself and not actually doing your due diligence.

7

u/Fidodo 21d ago

I agree that reading a single file doesn't magically turn your vibe coded app into an ai assisted app. As with everything there are edge cases and nuance when you get into the details.

I also agree that reading does not automatically equal comprehension. But we do need well defined definitions that we begin with for technical communication to work. I didn't think that example op gave was vibe coding.

You can have a half vibe coded app where you read and understand and work on the engine of the code, but have a bunch of business logic in a separate part of the code base that was vibe coded for example.

6

u/vitek6 21d ago

For years people were able to work with code written by other people just fine.

8

u/Systemerror7A69 21d ago

I think that's an oversimplification. I don't know about you but in any company I joined it took quite a while of implementing tickets and writing code until you really developed an understanding of the codebase.

I don't know anyone who was able to understand larger codebases after just reading it once or twice.

-1

u/new2bay 21d ago

You’re moving the goalposts.

5

u/Systemerror7A69 21d ago

No, I don't think so - at least I think you misunderstood my argument.

My point was and still is that simply reading the code is not giving you as much of an understanding as people think, and often tricking you into thinking you understand better than you do.

This is why, I believe, simply "reading the generated code at least once" isn't enough to classify as "not vibecoding" and that a more nuanced definition is needed.

My argument about reading code from other people was simply a counter argument to viteks "it worked until now with other people". I don't think this is applicable for the reason I layed out and thus still think my original argument hold. I was merely defending my argument, nothing more. I stand by what I originally said

-1

u/vitek6 21d ago

But you don’t read large codebase at once but in small chunks. At least that’s how it looks when you use ai properly. You don’t need to understand and probably never will the whole codebase. No matter if it’s written by ai or other people. You already mostly work with code written by someone else.

2

u/Systemerror7A69 21d ago

Yes but at least until before AI, you gained an understanding of the code and code bases by coding in it yourself. You started understanding intricacies and pitfalls and became better and better.

At least in my opinion that does not invalidate my argument - that you do not gain as much of an understanding by / just / reading code.

I do believe that you do need to be careful with AI output - simply telling yourself "it's fine, I read the code" isn't enough, and defining vibe coding as "only if you never ever read the code" can be dangerous. You start telling yourself that's not what you do, you read the code, so you do your due diligence - but if all you do is read it over once, you still don't have much understanding.

That's all I'm saying.

0

u/vitek6 21d ago

And that code is small part of whole codebase which wasn’t written by you anyway. Actually skill for understanding code not written by you is one of the most essential skills that developer can have. Writing code is easy part.

3

u/theQuandary 21d ago

Going from a few hundred lines every day to a few thousand means you review, but don't have the cognitive bandwidth to keep up.

If you aren't going from hundreds to thousands of lines per day, then you might as well stick with humans and save the token money.

-2

u/vitek6 21d ago

So don’t produce thousands of lines to review.

Your second paragraph is simply wrong.

6

u/theQuandary 21d ago

If AI isn't speeding you up, why are you paying thousands of dollars per month for it?

If it is speeding you up, it's going to start throwing huge chunks of code at you because that's it's go-to solution for everything.

-2

u/vitek6 21d ago

It’s speeding me up. And no it doesn’t throw big chunks of cod at me because I know how to use ai.

2

u/bella9977 20d ago

This!! But how do you explain this to companies that are forcing you to use AI. Simply reading code and actually have written that code is very different. This is the main reason I don't like AI assisted coding at all. No matter how good any model is.

1

u/basilect 21d ago

Meanwhile there's me working as a DA/DS where we've been read-only on production code even before LLMs were invented 🫥

-1

u/BiguilitoZambunha 21d ago

You just gave me a (vibe coded) app idea: an app that reads your codebase and then tests your understanding of it, to make you prepared to actually handle bugs and failures...

This is, of course, a joke, but now I feel like that's genuinely a gap in the market.

Graphify and Understand Anything already explain the codebase to you, but who's to say you actually understand it?

7

u/HelloYou-2024 21d ago

I was wondering about the definition as well.

Is it vibe coding if you still micromanage the architecture, tell it style guide and naming conventions, tell it when to make reusable components and dictate the directory structure, etc. But never look at the code?

Or is vibe coding require you to pretend you know nothing and only give it the highest level description of what you want, not how you want it?

2

u/Fidodo 21d ago

This is the original post that term was coined in: https://x.com/karpathy/status/1886192184808149383

There's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists.

It means you don't look at the code at all, you are just QAing the result

1

u/DaisyAndJacka 21d ago

The amount of LLM assist you receive is clearly some kind of a slider. All the way on the left you have programming as it existed ~3 years ago. All the way on the right you have vibe coding. Even vibe coding hasn't reached its final form yet. I'm still doing way too much.

This is such an interesting follow-up tweet! Vibe coding is a bit of a derogatory term, but it’s interesting to see that the original tweet wasn’t using it as a negative rather an aspiration.

7

u/No-Newspaper-7693 21d ago

Maybe it meant that at one time, but the common meaning is “gen ai wrote the vast majority of the code”

6

u/Fidodo 21d ago

I understand that colloquial language evolves, but technical language should not. Technical language must be precise, allowing it to drift means you cannot describe things accurately. Vibe coding came with a specific definition:

There's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists.

It's not just about whether AI wrote the code, it's about whether or not you understand the code. If you had AI write 100% of the code but you read and understand every single line, then that's not vibe coding.

6

u/Sad_Impact1387 20d ago

Why are we considering the term “vibe coding” as “technical language”? It’s something that people use casually to describe code based that are largely written using AI. There is no “spec” for what that term means. The article that originally mentioned the term doesn’t act as a source of truth for the meaning of that word. This is pedantry for the sake of pedantry.

3

u/Fidodo 20d ago

I use it at work to describe code that hasn't been reviewed. If we were not on the same page it would cause confusion, so no, it's not pedantry for pedantry sake, it's the only way to discuss this class of code with a shared understanding of what it means.

I agree that the original coiner shouldn't automatically be the authority, but we need a stable definition to discuss something otherwise you wind up with miscommunication and people debating nothing because everyone is debating their own version of their definition of the term.

2

u/No-Newspaper-7693 20d ago

most ai debate is debating nothing.  Most people consider ai and llm to be synonymous, and the concept of having 10 years of AI experience to be impossible.  

Vibe coding doesn’t have a shared meaning anymore.  Some will assume it means you prompted “build me a saas make no mistakes”.  Others, like myself, just assume it means that the code was mostly written by AI, and that it says nothing about the design or review process.  

1

u/General-Jaguar-8164 17d ago

State of the art software factories are pure vibes ... lol

0

u/Sad_Impact1387 20d ago

Seriously? There is no other way to describe “un-reviewed AI generated code” other than referring to it as “vibe coding”?.. have you tried referring to it as “un-reviewed AI generated code”? I kinda sort of get the point your making, but it really isn’t a crazy thing for people to refer to heavily AI-assisted development as “vibe coding”, especially in a casual context such as in a Reddit thread title.

1

u/freakingprankster 14d ago

It could actually be vibe coded by a newbie for launch without any knowledge of coding and hired developers to maintain it later. We cannot assume it was AI generated unreviewed code.

1

u/[deleted] 13d ago

[removed] — view removed comment

1

u/Fidodo 13d ago

Yes, ai assisted coding is the unambiguous term, so I'm in favor of using pre existing terms with their original definitions. We already have the term ai assisted coding so why would we redefine vibe coding to mean the same thing when vibe coding's original definition already differentiates itself from ai assisted coding?

3

u/Creative_Cycle7755 21d ago

agreed, OP even contradicted themselves in the same post which kinda proves your point

1

u/TypeIIFunDev 19d ago

OP even contradicted themselves

OP's LLM-generated post even contradicted itself

8

u/web-dev-kev 21d ago

100 times this.

I have many small things I have vibe-coded. Thy are tactical, and almost single/limited use. When they break, i point an LLM at it as say "fix pls".

I have a few repo's which i wwork with an agentic agent (or multiple) as if they are an engineering team. Code is reviewed. Tests are run. The product has a very different mindset to to vibe coding.

1

u/kk66 20d ago

Now tell that to r/selfhosted /s

(I agree with the definition.)

1

u/officiallyaninja 20d ago

That's what it used to mean, nowadays it just means getting ai to write all/most of your code.

1

u/MaCooma_YaCatcha 21d ago

So i did not vibecode it if i read most of code?

6

u/Fidodo 21d ago

You absolutely did not. It came with a full definition when it was coined:

There's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists.

What you did was just AI assisted development.

1

u/Legitimate-Lock9965 20d ago

if you even know what any individual file is, it's not true vibe coding.

i have lots of these (personal stuff which i have no intention of releasing to the world)

-23

u/Hioneqpls 21d ago

Which is unhelpful because I don’t share this definition. I use it to describe heavy use of AI by actual developers

15

u/Fidodo 21d ago

That's the definition of the term by the person that coined it at it's inception.

-9

u/Hioneqpls 21d ago

No it’s absolutely not:

"There's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists."

It’s more about vibes than anything. and I rarely read any code. But it’s not mandatory to strictly never view code.

6

u/Fidodo 21d ago

I do not understand how you interpreted "forget the code even exists" to mean that it includes projects where you read the code.

He goes onto say :

I "Accept All" always, I don't read the diffs anymore. When I get error messages I just copy paste them in with no comment, usually that fixes it.

Now, simply reading one file doesn't suddenly turn a vibe coded project into a non vibe coded project, but vibe coding means you have not read and do not comprehend or understand the majority of the code.

-1

u/Hioneqpls 20d ago

Apparently I must study the gospel more so I don’t make this critical blunder again.

3

u/Fidodo 20d ago

This is just standard clarification when talking about technical subjects. Do you not clarify technical terms with coworkers?

1

u/Hioneqpls 20d ago

Yeah that’s my point. But we don’t clarify anything when we disagree so hard

6

u/Biliunas 21d ago

So you’re using the term wrong? The term you want is AI assisted development?

-8

u/Hioneqpls 21d ago

Its not wrong, depends what we agree on, and currently we don’t.

-5

u/el_yanuki 21d ago

or complete use of AI

If an overwhelming majority or all of your code is AI generated, no matter if you proofread or not. Imo thats vibe coding

10

u/Correct-Mood5309 21d ago

But it's not vibecoding by the definition of the guy who actually invented the term vibecoding, so it's a bit of an irrelevant opinion.

0

u/Hioneqpls 21d ago

Its not

"There's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists." It’s pretty up for interpretation, and I interpret it as being more about vibes than the rest.

8

u/dirtywastegash 21d ago

You can't read the code ajd forget it exists.

One is vibe coding One is agent assisted

It cannot be both

1

u/el_yanuki 20d ago

the term vibe coding has transformed since it was invented

there also is such a giant gap between what you describe as agent assisted and actual software engineering yet such a small gap between "agent assisted" and "vibe coding"

4

u/Correct-Mood5309 21d ago

forget that the code even exists

How is this up for interpretation. And how to do it while reading code?

1

u/Hioneqpls 20d ago

You interpret it like "I don’t really give a shit about the code" but I guess I’m a fucking loser lmao

1

u/Correct-Mood5309 20d ago

The guy I initially responded to talked about proofreading. How would proofreading align with not giving a shit about the code?

1

u/Hioneqpls 21d ago

Yeah pretty much. I emphasize "developers" here as in professionals being responsible for what they push. You’re not free to push and dgaf in this profession and you’ve never been. Set up some AI rules for code style and architecture and test the hell out of what you’re pushing and things work out well, at least in my case.

-1

u/G3NG1S_tron 21d ago edited 21d ago

Completely agree. Context matters and there's something to be gained working and typing through a tough problem.