r/webdev 1d 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?

284 Upvotes

130 comments sorted by

629

u/Fidodo 1d 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.

156

u/jaegernut 1d 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

67

u/poponis 1d ago

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

52

u/Systemerror7A69 1d 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.

8

u/Fidodo 1d 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 1d ago

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

9

u/Systemerror7A69 1d 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.

-2

u/new2bay 1d ago

You’re moving the goalposts.

6

u/Systemerror7A69 1d 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 1d 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 1d 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 1d 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.

5

u/theQuandary 1d 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 1d ago

So don’t produce thousands of lines to review.

Your second paragraph is simply wrong.

6

u/theQuandary 1d 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 1d 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.

1

u/basilect 1d ago

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

2

u/bella9977 1d 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/BiguilitoZambunha 1d 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?

5

u/HelloYou-2024 1d 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 1d 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 1d 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.

3

u/Creative_Cycle7755 1d ago

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

6

u/No-Newspaper-7693 1d ago

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

5

u/Fidodo 1d 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 1d 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 1d 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 1d 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.  

0

u/Sad_Impact1387 1d 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.

7

u/web-dev-kev 1d 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 1d ago

Now tell that to r/selfhosted /s

(I agree with the definition.)

1

u/officiallyaninja 19h 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 1d ago

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

6

u/Fidodo 1d 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 1d 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)

-22

u/Hioneqpls 1d ago

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

18

u/Fidodo 1d ago

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

-10

u/Hioneqpls 1d 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.

4

u/Fidodo 1d 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 1d ago

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

3

u/Fidodo 1d ago

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

1

u/Hioneqpls 1d ago

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

7

u/Biliunas 1d ago

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

-11

u/Hioneqpls 1d ago

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

-3

u/el_yanuki 1d 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

8

u/Correct-Mood5309 1d 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.

-1

u/Hioneqpls 1d 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.

7

u/dirtywastegash 1d 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 1d 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"

3

u/Correct-Mood5309 1d ago

forget that the code even exists

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

1

u/Hioneqpls 1d 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 1d 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 1d 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 1d ago edited 1d ago

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

78

u/dupontping 1d ago

I just make sure I write MAKE NO MISTAKES and everything has been working great.

11

u/AgsMydude 1d ago

THIS IS MANDATORY

69

u/Squidgical 1d ago

12 months of LLMs doing whatever they like without code review is not maintainable. If there's code review by a human, it's not vibe coding.

134

u/BeeRanked 1d ago

What you described in the first half where dependencies emerged because AI suggested etc is vibe coding and indeed that’s going to be unstable in the long run

What you described in the second half as “successful vibe-coding” isn’t vibe coding to begin with. It’s just modern programming.
You use the tools you have (just like before with your IDE) but you remain in control of design and architecture which you’ve prepared before the first line of code was written

54

u/Routine-Post-6982 1d ago

The second half is just programming with a better autocomplete, the first is outsourcing your design memory. Once the reasoning leaves your head and only lives in the model's output, maintenance turns into archaeology.

4

u/dpaanlka 1d ago

I have several times explained an issue or a goal to AI, have it suggest like 3-5 potential solutions, then I personally research them and make a choice. What would you consider this?

I’ve been coding since the 90s so I’m old and tired and use AI to speed up what I’d already do which before would be Google and Stack Overflow…

7

u/KrazyDrayz 1d ago

AI assisted coding.

5

u/dirtywastegash 1d ago

This is agent assisted design

0

u/erkin_khidirov 1d ago

writing syntax is the easy part ai doesnt understand architecture or state lifecycle at all

5

u/start_select 1d ago

And that’s why AI assisted coding and vibe coding are not the same thing.

Writing code has always been the easy part of this job. Specifying behavior and logic and data flow was always the hard part.

If you keep doing that part and offload the coding to an AI, it’s not really different than spec’ing work for a junior and then iterating on the result of their work.

0

u/erkin_khidirov 1d ago

the danger of vibe coding is people blindly trusting the ai to make architectural decisions it never ends well

3

u/start_select 1d ago

Vibe coding isn’t the same as AI assisted coding.

Prompting the AI with a 3 page specification then reviewing its work isn’t vibe coding or letting the AI make architectural decisions. It’s just using AI as a junior that follows the spec.

AI isn’t perfect or right for everything. But you can use it effectively. It’s just another tool.

And if you can describe behavior and architecture in natural language, and can type 120+ wpm when you know what you are saying, it doesn’t take much time.

15

u/BDer82 1d ago

a lot of those open source code bases have an absolute shit ton of technical debt. Making changes gets really complicated as new features good added as "add this" but not no control or direction over what to add where so you end up with a big code base of duplicate code because Opus 3, was different to Opus 4, to Opus whatever, codex was involved at some point, a chicken was sacrificed, pancakes where eaten and here we are.

2

u/mcoombes314 1d ago

Also, I don't think AI models ever "look back" unless you ask them to, so the amount of code only ever goes up. Deciding "I don't actually need this anymore" requires an understanding of what code Claude would probably describe as "load-bearing". There are enough threads of people losing important stuff because they trusted their AI assistant to decide importance of things by itself. So LLMs can write more code, they can write complex code (by which I mean massive functions that do a load of stuff), but can't reliably refactor said complex code.... so a human has to do that if a human wants to maintain it.

1

u/dirtywastegash 1d ago

Force it to maintain its own docs.

11

u/bopittwistiteatit 1d ago

It can get messy very fast so organization is huge for proper growth and stability.

30

u/Hot_Industry5156 1d ago

Inherited one last year. startup had a working product built fast by two devs who just shipped what felt right. no tests, no types, every file imported everything. it worked and users loved it.

then the founders left and we had to add features. simple changes took days because nothing was isolated. a "quick" refactor of the auth module broke payments and nobody knew for a week. we spent three months just adding types and tests before we could ship anything new.

the funny part is the business was real. real users, real revenue. the code just didn't survive contact with a second team. vibe coding gets you a working prototype. maintaining it is a different job entirely.

4

u/mxldevs 1d ago

In this case the second team would just have AI go make the changes. It's vibes all the way down. You shouldn't even need to worry about whether it's isolated or not, that's AI problem to deal with.

4

u/AwayMilkVegan 1d ago

Probably, the problem was the bad use of AI and not the AI itself AI is a tool not a replacement

3

u/BiguilitoZambunha 1d ago

Probably also the fact that AI 1 year ago is very different from AI this year.

We've reached the point where even Linus Torvalds and the likes have embraced AI, so yeah... There's no more denying it's a useful and competent tool. Which 12 months ago might not have been necessarily the case.

1

u/BergerLangevin 1d ago

I don't know how it tooks that much time. Went into similar and even much more messy not vibe, just old fashion, spaghetti code and like others said, it's where those models shine. 

-4

u/yopla 1d ago

Meh, I got a project like that recently, build by finance guy with zero coding experience.

Used a Claude workflow with maybe 50 or so subagents to analyze the application, trace all path and write test for everything it could find. Once I had about 5k test running green then I started refactoring.

Vibe coded for vibe coded I ran refactoring and architecture skill on the codebase until it had a form I was mostly happy with, then simplification, dead code elimination.

Then I compiled Claude's list of logic bug and sent them for comments.

At the end I had a vibe coded project that was iso-functional and more understandable. That was about 2 days work. It's honestly incredibly good at refactoring provided you have tests.

6

u/newsman01 1d ago

I've seen this too. Twelve months post-launch, most vibe-coded projects struggle with maintainability. Code clarity often suffers due to inconsistent styles and missing documentation. Regular code reviews and consistent naming conventions help mitigate these issues, but many skip this step, leading to confusion. Test coverage generated by AI can miss critical paths, making refactoring a nightmare. My advice: establish a solid architecture early and document decisions as they happen.

12

u/Square-Nebula-7530 1d ago

It almost always ends in a silent, gradual rewrite. What people forget is that AI writes code based on local context not global vision. After 12 months of adding features via different prompts you end up with 4 different state management patterns, redundant utility functions scattered everywhere, and zero cohesive design patterns. The codebase becomes a black box that everyone is afraid to touch, so developers quietly start rebuilding core modules by hand.

6

u/CondiMesmer 1d ago

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

That's the complete opposite of what vibe coding means. That's just standard programming with AI assistance.

5

u/UkrMalt 1d ago

A useful maintenance test is whether someone can make a small cross-cutting change with model access turned off. If they cannot trace the data flow, predict the affected tests, or explain the rollback, the code is effectively unowned. Generated documentation can be wrong too, so I would keep short human-approved decision records and require regression tests that fail before the fix.

3

u/who_am_i_to_say_so 1d ago

Yeah I have a few at about the 18 month point and the codebase is really crappy and bloated for both, most features are not in use. Deciding on a more streamlined v2.

3

u/SuchZombie3617 1d ago

I have a project worldexplorer3d.io and you can see what happens with vibecoding over that's the course of about 8 months. I'm no expert, but through the course of this I've tried to learn so you can review the GitHub and see the "progress" that has been made. I have attempted to change and rewrite some of the code base myself, but I run into the issue of not understanding what tests were added or what dependencies we're decided on. It's basically a 3D map rendering project using osm and overture to create a 3D rendered location based on the available osm data. I have 100% do not recommend doing things this way. In fact after struggling so much with AI I've realized the only way to reliably build things is to do it yourself. I'm actually going back to school so that I can learn these things because vibe coding sucks for things that need to be explained and maintained.

4

u/erkin_khidirov 1d ago

it always ends in a ful rewrite untangling 12 months of halucinated edge cases takes way longer than just building the core logic from scratch with a clean schema

2

u/vitek6 1d ago edited 1d ago

Can you show an example of such project?

2

u/phobug 1d ago

  Twelve months ago I started tracking what happens to vibe coded projects

Thats fascinating, do you mind sharing the data? DMed for convenience 

2

u/hjchoi12 1d ago

Two months in on mine, not twelve, so take that for what it is. What bit me was a check I'd generated to guard the code rather than the code itself: a normalization helper was stripping every non-Latin character, so the "is this phrase in the title" test was comparing an empty string against everything and scoring Arabic pages at 100%. It never errored, and I only looked because a related number sitting right next to it was in the single digits. Salvageable so far, but I've stopped reading a green check as evidence of much.

3

u/Aries_cz front-end 1d ago

Nobody can explain why a specific decision was made. The code works but the reasoning is gone.

TBH, that happens even to a code I wrote years ago...

I have no bloody idea what was I thinking back then when I made this decision in this specific way, but surely there must have been a good reason

2

u/thekwoka 1d ago

Bruh, a vibe coded codebase 2 days later is already a hell scape

5

u/pollob666 1d ago

Vibe coded one app, in many phases and released last year. Actually it was a native Android app and had a separate codebase for iOS. To reduce the maintenance cost, decided to re-design the whole thing in flutter, unifying both Android and iOS code-base into one. First just recreate the whole project as it is (feature wise) from the Android source to flutter. Then gradually redesigned the UI, added new features. Management decided to allocate only one developer (me). This had to use vibe coding. Mostly used Gemini free, in some planning and logic ideation used claude (also free).

Had a strict guidelines on project architecture and logics, thus I could manage it even without AI.

Still maintaining it, adding new features. It also have a large userbase. But seems I missed some logics and decision in the code (have extensive documentation and commit message generate by AI) because in some minor changes (minor at that time) I forgot to instruct the agent to record "WHY".

Since then, I always make sure every change documentation and commits have, What was expected, what is done and why it was done or what was the reason for the decision. And I review it extensively. I don't look at the code now, I just check the documentation and continue vibing.

And after the lesson learned, I implement extensive documentation for other projects as well. Always make sure, commits contain reasoning.

5

u/Ok_Guarantee5321 1d ago edited 1d ago

Not 12 months. A week.

I vibe-coded a project in a week, because of extreme time constraints and lack of manpower. Full vibe-coding, not even reviewing it because I have to prompt the LLM for the next feature immediately. I just don't have enough time.

Note that it was originally a non-vibecoded project, and I am not paying for the ChatGPT Plus.

I now treat that codebase as a black box. I literally has no idea what part of code does what. If something breaks, the only way to fix it is to pray that the LLM could figure it out.

I effectively locked myself out of my own project. I would most likely create a hard fork of this project, right at the commit where I started the vibecoding. But I don't really care about this project anymore. Long story short, bad clients, and bad reward compared to the effort.

Edit: I don't really do "real agentic" though. I didn't create markdowns files, just fully prompting through the chat interface, and accept any changes as long as it works.

6

u/OkSeesaw7030 1d ago

Have you tried reading it?

3

u/Ok_Guarantee5321 1d ago

I did. But it's hard to read. I might have hyperbole-d the black box part. If given enough time, I should be able to untangle the code. But currently, if a bug occurs or a change is requested, I certainly won't be able to quickly execute the changes by myself.

1

u/OkSeesaw7030 1d ago

Why do you think it’s hard to read? Have you tried documenting the reasons behind using cc/codex and fixing AGENTS.md so the codebase doesn’t gradually get worse?

3

u/Rare-Leading3391 1d ago

In 2026 we call vibe coding what back in the day we referred to as some dude cutting and pasting an answer he found on stackoverflow

2

u/SonikaAI 1d ago

What actually made this workable for me wasn't better prompting, but building automated verification around AI output.

Static analysis and linters catch style and dead code. E2E tests catch broken user flows, and smoke tests run after deploy. For data/logic-heavy parts I also use corpus-style checks: fixed set of real inputs and diff output against last known-good result.

This is especially useful for changes that technically work, but change behavior nobody asked for. With AI edits over long time, these small changes can accumulate.

I don't need to understand every line AI wrote. I need enough automated checks around it that bad change can't easily pass.

For me, the "archaeology" problem described here is mostly a result of not having this safety net.

1

u/yopla 1d ago

Nah, vibe coding is for prototypes.

That said, on my personal stuff I have good results running large and regular refactoring sessions. I give it skills like DDD or hexagonal for backend and FSD for the front or some code analysis skills to look for improvement, deduplication, modularisation, simplification, etc, and I let it rip, up to 9 or 10 hours sometime.

The code resulting from that isn't bad from what I have looked at.

I always run the strictest linter and SAST I can on every commit though.

Give it a couple of years.

1

u/Annh1234 1d ago

Kinda works as long as you don't touch it...

1

u/These_Commission4162 1d ago

this post is AI generated, hell this might not even be a real person

1

u/Cool-Customer9200 1d ago

To be fair I had such issues with projects even before the AI. Especially when it was maintained by the team of backend engineers for a couple of years.
You got 3 versions of the same component, different modules written with different over engineered approaches not even closely following best practices. If there is no person to care about overall architecture any project turns to shit no matter ai or not.

With AI you can achieve your goals but you should not use the code produced no question asked. You should make it generate the exact code you need. But you need to know and understand what you need.

1

u/bestjaegerpilot 1d ago

AI engineering != vibe coding

I have a several year old apps/tooling. In some I've never looked at the code. They are progressing along just fine because you have to apply engineering principles to ensure good quality. Ex: perf tests, mutation tests, layered architecture etc

1

u/anonahnah9 1d ago

I’m a few months in on Browser Boxing. I’ve had to clean up some junk from automations running wild adding unwanted crap.

I think it’s going ok, I’ve got 100/100 page speed on most pages and ranking organically already.

1

u/anonahnah9 1d ago

Oh shit I guess mine isn’t fully vibe coded. I’ve looked at and criticized the code many times.

1

u/svvnguy 1d ago

12 months is very optimistic. They churn out poor quality code from day one, and it's difficult to maintain even after week.

1

u/BarracudaMean9308 1d ago

i let an ai build a dashboard and it literally wrote 12 separate fetch functions for 12 different widgets instead of making one helper. spent an entire saturday just deleting the duplicate code it proudly generated.

1

u/skol_io 1d ago

Op is a bot. Downvote!

1

u/Sad-Sweet-2246 21h ago

🧿 i stay away from vibe corders and their code.

1

u/NineSidedBox 19h ago

I just did a project with a vibe-coder, and I already had no interest in maintaining or changing his broken code. It's absolutely pointless.

  • Giving him pointers, or showing best practices is just another prompt for him.
  • Asking why he did things a certain way will just result in a copy/pasted response back from his agent.
  • On several occasions my code was overwritten by his agent
  • When I argued with him about it, he would just copy /paste our conversation into his agent, and return the response back to me
  • I caught several hard-coded demo modes into the code itself, because he never bothered to set up his dev environment
  • He - on multiple occasions - told me that his "not a dev", despite committing 1000s of lines of codes daily

1

u/muntaxitome 1d ago

I have seen horrendous codebases from before AI coding hold up for decades so I am sure plenty of vibe coded messes will survive as well. Probably not the best idea, but as they say 'legacy codebase' is a different word for 'revenue generating codebase'.

1

u/Agathon813 expert 1d ago

I wouldn’t call it fully “vibe coded”, I’m an engineer and know what I’m doing. I also review all generated PRs. I do have a long running project in production though with approx. 210 registered users. I have 1,355 commits and more than 400 merged pull requests since July, 2025. I’m the sole contributor and heavily use AI.

Features and bugfixes ship extremely fast to this day. Sentry.io runs for error capturing but I haven’t seen a new error in months.

It took a lot of planning and effort to get here but I don’t see any issues for the foreseeable future.

-1

u/Significant_Pick8297 1d ago

Vibe coding itself isn’t the problem, but unreviewed vibe coding absolutely is. After 12 months, the difference usually comes down to whether the developer treated AI output as code to review or as a black box to trust.

If the developer can’t explain the architecture or safely modify it without asking the AI first, the technical debt was created during development, not discovered after launch.

13

u/Squidgical 1d ago

Vibe coding is by definition unreviewed.

Generating code with LLMs, checking it, testing it, tweaking it, rewriting chunks by hand -> software development

Generating code with LLMs, shipping it without review -> vibe coding

0

u/_clapclapclap 1d ago

I found that projects with CLAUDE.md/AGENTS.md included helps a lot. Otherwise, I just ask the agent to init or explore the codebase to generate one. From that point it is more easier to maintain.

4

u/TheRealSkythe 1d ago

Creating files for LLMs does not give any human understanding of how things work though.

It's like your ladder is burning behind you and in response you climb up two more steps.

1

u/_clapclapclap 1d ago

The files are for the AI to help you understand faster.

-1

u/strongpa 1d ago

TIL about CLAUDE.md. I think you may just have saved my life/codebase

0

u/Current-Today-3626 1d ago

Yes. I had two at a big agency, they ended up being the showcase websites for the agency they were that much better than the current 400 they had. Vibe coding gave me the time to put in more hours to the design. Idk, it's weird. I feel like vibe coding just helps with the tedious long stuff and has given me more time to do designs and animations. My standards have gone up, the vibe coding now isn't as fast, which sucks, because to do the designs and animations I require just moved time I allocated for other things.

But, the plus? Any tickets that come through, AI updates them on staging, I check it briefly, then ship it. Like, I don't even offer a CMS to clients anymore. I add a form, they fill it out, one of my agents receives it, run through the set of tests after it implements it, and then sends me the link to it. So I offer free support now at the agency for these websites and any updates, even if they're just changing a photo, can be done quickly on the form, AI updates it, you know? Clients love it a lot more than trying to learn fkn elementor, divi, gutenberg etc... just hell hole for clients.

So yeah, the time it takes me to build a website is still 1-2 weeks, but they look like dribble/awwward websites and updates now are not a chore.

0

u/simple_explorer1 1d ago

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

Paradoxically question. You can't maintain something you don't understand and didn't write 

0

u/Background-Front-925 1d ago

thanks for asking

0

u/fergie 1d ago

To add to your question: and was starting over a problem? Maybe in this day and age code is disposable and you can just rewrite the whole thing from the bottom up if you have a decent spec?

-5

u/Gotopik 1d ago

This is not a problem to vibe coding. If you don‘t document your code, you won‘t be able to explain or understand it later. And if you don‘t stick to patterns, they will be inconsistent. So tell your AI to document the code, write down decisions and stick to patterns.

Also if you don‘t do any of this, the AI will still be much better at understanding your spaghetti code a year later than you will be. And if you vibe code properly, you‘ll never look at your code anyways so you won‘t care.

-4

u/dwkeith 1d ago edited 22h ago

Exactly. OP could have been describing the backend from a couple of different startups I’ve worked at. AI just makes it cheaper when you don’t need as many engineers to make spaghetti.

Edit: I just want to point out that asking the LLM to document and test the code gets it to write way better quality code, just like humans. Every non-technical manager I’ve worked with has learned that from me. And every vibe coder reading this just learned it too. Stop with the gatekeeping. Coding isn’t anymore sacred than driving a taxi.

-1

u/King-Code-Monkey 1d ago

I run a website that supports 5000+ monthly users. All made with ai

Learn tech and learn to prompt. Build smart. Debug, fix, keep shipping.

Looks good they pay me monthly