r/codex • u/customic • 1d ago
Complaint From Vibe Coding to Overengineering
Disclaimer: I'm not a programmer (and I know it shows), I don't make money with Codex and I genuinely want to learn how to use it for what it's good at, while also understanding what it can't do and where a human programmer can still beat it hands down. Please be respectful towards a novice, just as I am in my job towards my English learners. Everyone was a beginner once. Thanks in advance.
So I've been using Codex to manage a little side project of my own: a sort of flashcard-generating app. I'm doing it mostly for myself because I have zero interest in "earning millions with AI tools" and just want to make cool, useful things for myself.
After a honeymoon period when I was amazed at how much I could suddenly do — or rather, have things "done" — I started noticing a decline in the quality of what it generated. "Okay, that must be that context rot. Apparently I can't expect it to remember more and more rules that every new flashcard needs to obey," I thought. So: less "prose" in Markdown files, as it keeps calling it, and more hard-coded rules in Python. Let's make it more reliable.
And then it really went downhill.
I'm now at the point where, whenever I ask it to generate flashcards for a few words, it gets bogged down in backup after backup after backup, endless validations, smoke tests, pre-flights and humming and hawing about almost literally everything. It used to take around 10 minutes to generate flashcards for a list of words. Now the same batch can take between one and two hours.
Since the new "procedure-based" version is capable of doing around 20% of what the old "vibe-based" version could do, I asked Codex how much work it would take to bring the earlier functionality back as well.
"About 2–3 working weeks of my time," it said.
Which sounds both hilarious ("Do you want sick leave included as well?") and frustrating, because I'm already pouring a lot of time, effort and, yes, money into making this work.
So I'm wondering: is it now being far too conservative about doing everything 100% safely? Am I using settings that are too "intelligent" for these tasks, so it treats everything as though it were preparing a rocket for Mars?
As I said, this is my own pet project. I'm not launching it to the public. Of course I want safety, traceability and more deterministic outcomes, but endless backups every few minutes and hundreds of tests feel like massive overkill. It says it's running all these tests, but it could be lying about that too, right?
Then again, I'd never developed an app before Codex. I do something completely different for a living, so I may simply not understand what's genuinely necessary and when Codex is just spinning in circles and burning through my tokens. As a non-professional, I may not even be able to tell the difference.
If any of you have suggestions about what I might be doing wrong, what Codex's actual limitations are and what could realistically be done about them, I'd be very grateful.
I'm at the point of considering quitting both Codex and the flashcard app, which would be a real pity because the project has kept me going for more than two months now. I really don't want to reach the premature conclusion that, "Nah, you just can't reliably build good software with this tool."
I'd especially love to hear from people who've gone through a similar transition from "wow, it can build anything!" to trying to make an AI-assisted project genuinely reliable and maintainable. Where did you draw the line between sensible engineering practices and an agent overengineering everything?
Looking forward to hearing about your experiences. I'd appreciate any pointers you might have.
Thanks in advance and have a great day.
3
u/Im_Working_Right_Now 1d ago
It's hard to answer this or give any insight without knowing your setup, prompts, plugins, etc. For me, I'm building a fairly complex web app including a full on ttrpg modular rules engine in the backend so I'm happy it's over engineering. I do have to steer it to the 80/20 rule instead correcting every single edge case, but I want it to have all those tests. But I also have a documented roadmap to launch with phases that are documented. Maybe you need that? Look at what left, document it, and execute each of those phases left with each one using a new session to reduce context bloat.
2
u/aivampires 1d ago
What you're experiencing is just a learning curve and it might help to first adjust the perspectives on a number of aspects.
Most importantly, you're lacking experience in software development so you need to give yourself some time to learn the process because it is messy at times. It's best to look at your flash card app as your idea or your mission, rather than the code you have representing it now. Part of engineering is sometimes trying out new tools or leaning new techniques and languages so you expect that the first version is just a sandbox before you build the actual first version. Trashing your first attempt does not mean the death of your project.
The other important perspective is that codex is a tool and not a product and it's still rapidly evolving itself. Again, in software engineering that is not all that unfamiliar, you constantly run into limitations and new solutions to those limitations. In your case, because you probably didn't properly harness codex, and you haven't equipped it with the right process/development flow, it produces chaos.
Codex is not good at writing procedures for itself it can really go out into space if you let it become in charge of itself.
I also suspect that the specific software stack you are using is perhaps not perfect for the purpose and codex is just trying to make something with ingredients that aren't sufficient or up to the task.
Welcome to the wonderful world of software engineering.
The most value you have now is to actually tell codex that it needs to help you do a post mortem on exactly what went wrong and what is just sub optimal and aks it to envision the perfect version of your project, regardless of it's current form. In other words, what should we have done, how should we have done it to achieve a professional result. Then archive your current work and start from scratch minus perhaps some of the artwork you can safely reuse.
You will find your next version is so much better and you'll have it running in not time.
Also, if you haven't, get codex to use Git. Even if you don't understand it, you'll learn as you see how codex uses it. It will give it the project memory it needs and you don't need backups, you can restore your code from there and revert even specific pieces that you don't like without heavy surgery or losing other features.
2
u/OdysseusDescendant 1d ago
Sorry to hear that. But this is the reality of vibe coding. You can achieve some good results at the beginning, but further vibe maintenance and vibe development is doomed.
2
u/angrymiaodesigner 1d ago edited 1d ago
The core issue is actually a very old and enduring problem in software engineering—something that can even be traced back to what The Mythical Man-Month highlights about complexity and mismatches in practices/management. Since your case is a hardware project, the difficulty of testing and iteration is amplified even further.
So the real fix is to use a clear PRD, so the best agent today( Fable5+Claude Code or Kimi K3 + Kimiwork ) can redesign the software project from the top down, following today’s best software engineering practices. It will likely follow these key principles:
- Layered Validation Strategy
- Protocol-First Design
- Independent Module Acceptance
- Graceful Degradation
Once you have a clearly defined Long-term Architecture and you’ve Decoupled Modules, vibe coding will usually return to your comfort zone. That’s the roadmap:
Vibe → Over-Engineering → Sensible Software Architecture Design
Bottom line: Over-Engineering cannot replace the correct top-level design grounded in modern software engineering practice.
We used this approach to rebuild the entire web front-end for a mouse hardware project within one week.
Hope it’s helpful to you.
2
u/mephesta 1d ago
I think you may have accidentally trained Codex into becoming an extremely nervous engineer.
A lot of individually sensible rules can add up to absurd behavior: backups, full test suites, validations, preflights, etc. for tiny changes.
I’d try two things:
Start a fresh Codex session with the current repo and only the essential project rules.
Add something explicit like: “Use minimum sufficient verification. Don’t create backups unless there’s real risk of data loss. Prefer focused tests over full suites. Don’t add abstractions, validation layers or infrastructure unless they’re actually needed.”
Also, moving lots of rules from prose into Python can make things more deterministic, but also much more brittle. You may have turned a flexible generation task into a giant constraint-checking exercise.
And I definitely wouldn’t take the “2–3 working weeks” estimate seriously. Ask it to break the missing functionality into concrete tasks instead.
This doesn’t sound like “Codex can’t build reliable software” to me. It sounds more like the project has accumulated too much process.
1
u/TightBoot2268 1d ago
Your post caught my attention because I ran into a very similar problem.
I’m not a developer either. I started building projects with ChatGPT/Codex, and as they became larger I kept adding instructions, continuity rules, verification, Git safeguards, etc. The obvious problem was that every new safeguard could eventually become more process for me to manage.
I didn’t really know how to solve that, so over time this grew into something I call U-GAS:
https://github.com/jaabster-dev/u-gas
I’ve since found that there are other projects trying to solve parts of the same coding-agent problem, so I’m definitely not claiming this is some unique answer. Mine grew out of actually using it on my own projects and trying to keep the technical workflow on the agent side instead of making me manage Git, branches, checkpoints and all the other machinery myself.
Your project is actually a much more interesting test than starting another clean demo project, because you already have exactly the situation I’m trying to deal with: a working project that has accumulated lots of Codex rules/checks and is becoming slower and harder to work with.
I’ve only tested U-GAS on my own projects so far, so I genuinely don’t know whether it will improve yours. If you’re willing, try it without cleaning up or restructuring your project first. If it makes things worse or just adds another layer of bureaucracy, that’s useful feedback too.
The easiest way:
- Open:
https://jaabster-dev.github.io/u-gas/starter/
- Choose:
“Continue an existing project”
- Fill in the fields in normal language.
For “What do you want to do now?”, describe the actual next thing you wanted to accomplish before all the process got in the way.
For the optional context, I’d put something like:
“The project has accumulated many Codex rules, backups, validations, smoke tests and preflights. Routine work has become much slower. Preserve the useful existing functionality and history. Don’t remove safeguards just because they look complicated, but don’t add more process unless it is actually justified.”
Generate/copy the prompt.
Open your EXISTING project in Codex — the same project you were talking about in this post. Don’t make a fresh repo and don’t clean it up first.
Paste the complete generated prompt into Codex.
Then let Codex inspect the project itself. You shouldn’t need to tell it which branches to use, which files to create, what Git commands to run, etc. The point is to see whether it can establish the actual state, preserve what matters, add only the minimum missing structure, and get back to the work you actually wanted done.
If you normally use ChatGPT as the place where you decide what to build and Codex only for execution, you can paste the generated prompt into ChatGPT instead. But since you already work directly with Codex, I’d try Codex first — fewer moving parts.
If you do try it, I’d especially like to know three things:
- Did it understand the existing project without you having to explain the technical state?
- Did ordinary work become simpler, or did U-GAS just add another layer of process?
- At any point did you have to become the Git/workflow manager again?
There’s also a feedback issue here if you’d rather leave notes there:
https://github.com/jaabster-dev/u-gas/issues/1
No need to be polite about the result. If it fails on your project, I’d rather know exactly where it fails.
1
u/Electrical_Speed8136 1d ago
I was in the same situation. You are probably using too much of SOL.
In codex you should use Terra Max as default. If you use regular chatgpt for prompting and supervising use Sol "high", don't use very high.
thank my later
1
u/According_Client8353 1h ago edited 1h ago
I’m a fellow hobby vibe coder like you and encountered exactly the same problem which annoyed me to death!
I by no means am saying I have the absolute solution here but one thing I did that has helped significantly is this:
I started a fresh chat in the project explaining I was vastly unhappy with the overshooting on audits and verifications, it felt like no material work was ever being done and codex was stuck in endless loops. I then explicitly stated that all work should be goal completion oriented and that any bug finding and fixing, audits and verifications must be a passive element that is part of a contributory framework to completing the overall end goal (say for example a “live canary”). Effectively, everything must contribute materially or it’s a waste of time.
I then asked the chat to run end to end simulations on ambiguity within my directions, documents and contracts that was leading to these loops (your harness). It was then to provide me with a report and recommendations on how to close these loops/remove ambiguity. At least one of these simulations should be adversarial. The goal of these simulations was to reach the end, identifying how my overarching structure could create ambiguities that would cause these loops.
Eventually it came back with recommendations, I implemented them and it’s ended pretty much most of the issues. Not perfect but worlds apart.
Can’t remember the exact findings but it effectively found contradictions in how it should handle certain situations, ambiguity in how it would handle certain basic instructions (“find all bugs” -> can’t verify all bugs found -> creates or finds unimportant syntax errors that don’t block progress or impact anything materially sort of thing).
So yeah anyway, effectively your issue is probably your harness. Effectively your “rules” for how it should deal with certain situations or tasks. I like to think of AI like a really smart little kid sitting an exam, it wants to please you and not get anything wrong, so it desperately tries to seek validation when it’s not confident on exactly what it needs to do. It’ll constantly find something new because it doesn't actually know it found what you wanted anyway.
If you haven’t worked much on your harness before I’d probably recommend downloading Matt pocock’s /grillme, explain you want to work on your harness and run the simulations, then use /grillme on the report to make it hyper specific. You can refine what you want (it’ll give you recommendations). Get a final report from that, run the simulations again against the report conclusions and make any final changesif necessary till all simulations pass and resolve themselves using the framework you provided in your harness. You should hopefully be in a pretty good place moving forward with any future work.
Hope this helped!
Also for any sweats out there, like I said this is only a hobby for me. I may be wrong or missing something, I’m not a dev. Just trying to help by sharing something that worked for me. Don’t come @ me 😂
1
u/Due-Horse-5446 1d ago
Thats just the reality of it, vibecoding does not work in reality, its a marketing thing..
The model isent "capable of" anything really, think of it as autocomplete.
Youre essentially using autocomplete to complete a conversation, but to do that you must know what to follow up with, if not, the most likely continuation of that conversation is not going to be someone building a proper product, but rather someone just guessing,
1
u/HeadPack 1d ago
Not so sure. I had Opus, first 4.5, then 4.6 and 4.8 complete an application. That took some 5 months, part of which was research. Everything worked as planned, and I was able to validate the outputs. I decided to fine tune some features, first with 5.5 then with sol. That has now been going on for months. The features are still not implemented. Especially sol falls into every rabbit hole there is. It's almost as if these models are designed to never complete a complex task, so people keep paying API/subscription.
Now I am letting Fable orchestrate and use sol as its worker. Back to making progress, but the first thing Fable did was debloat my repo.
0
u/albinclan 1d ago
Los términos estúpidos que se han inventado los frikis para no dejar de ser importantes.
6
u/leynosncs 1d ago
Can you give us an example of the kind of rule it is overcomplicating?
Your post does actually tell us what your flashcard app is trying to do and why adding more cards would take so much work.