{"slug": "6-months-later-nobody-could-read-the-code-including-me", "title": "6 Months Later, Nobody Could Read the Code — Including Me", "summary": "A developer spent 4 days deciphering their own AI-assisted codebase six months after shipping a BOGO deals app, finding 780-line files, cryptic function names like 'handleProcessV2', and three inconsistent data-fetching patterns. The developer estimates the original 11-day build was followed by a 9-day effort to add a simple push notification feature, blaming the accumulation of AI-generated code optimized for the next line rather than long-term readability. The experience led to a targeted cleanup, including deleting the meaningless 'V2' suffix, consolidating data fetching, and adding explanatory comments.", "body_md": "Six months after shipping the BOGO deals app, I opened the codebase to add one small feature and spent 4 days just trying to remember what I'd built.\n\nThe request was simple. A handful of users wanted push notifications when a new deal dropped in their neighborhood. I'd done notification integrations before. Couple hours, maybe a day. I opened the repo, pulled up the main service file, and just… stared.\n\nThe file was 780 lines long. There were functions named things like `handleProcessV2`\n\nand `doTheFinalStep`\n\n. Comments that said `// fixed`\n\nwith no further explanation. Three different ways of fetching the same data, none of them obviously the \"real\" one. I had shipped this. Six months ago, feeling great about how fast it came together.\n\nThat's the thing nobody talks about with AI-assisted code. The speed is real. The bill just comes later.\n\nI'm not blaming Cursor. I was the one accepting completions without reading them carefully. I was the one telling it \"make this work\" instead of \"make this readable.\" The tool did exactly what I asked.\n\nWhat I didn't expect was how the AI's style of solving problems would accumulate. Every accepted suggestion was locally reasonable. A try-catch here. An early return there. A helper function inlined because that was faster to generate. Over dozens of sessions across a few weeks, it added up to something that looked like code written by seven different people who never spoke to each other.\n\nAnd honestly? It kind of was.\n\nAI completions are optimized for the next line, not for the person reading the whole file in six months.\n\nThe other thing I underestimated was how much context I'd lose. When I was in the build phase, I held the whole app in my head. Every weird decision made sense because I remembered why I made it. Six months of shipping other things, and that context was just gone. The code was the only record — and the code was illegible.\n\nI want to be concrete here because this is supposed to be a receipts blog.\n\n**Time:** 4 days of confusion before I wrote a single new line. Not deep architecture work. Just archaeology. Reading, running things locally, breaking things to see what depended on what, slowly rebuilding a mental model.\n\n**Money:** I ended up running Cursor again to help me understand my own code — essentially paying to reverse-engineer what I'd paid to generate. That's roughly $20/month for the Cursor Pro subscription, now being spent on a kind of AI-assisted autopsy. I also had the app's backend hosted on a $14/month VPS. It sat there billing me the entire six months I wasn't touching it, so I'd sunk about $84 in hosting for a project I couldn't confidently modify.\n\n**The feature itself:** What should've been a Tuesday task turned into a 9-day effort. 4 days of reading, 3 days of actual implementation (slower than expected because I kept second-guessing which patterns to follow), and 2 days of testing because I couldn't trust that I understood the side effects.\n\nThat's a bad ratio. The original build took maybe 11 days total. I spent nearly as long on a single follow-up feature.\n\nBy day 5, I gave up trying to work with the existing structure and started pulling things apart. Not a full rewrite — I didn't have the stomach for that — but a targeted cleanup of the worst offenders.\n\nI deleted `handleProcessV2`\n\n. It turned out `handleProcessV1`\n\ndidn't exist anywhere. V2 was just the function. No idea why it had that name. My best guess is I told the AI to \"refactor\" something early on and it added the suffix out of habit.\n\nI consolidated the three data-fetching patterns down to one. That alone probably took half a day and involved more `console.log`\n\nstatements than I want to admit.\n\nI also added comments. Real ones, not `// fixed`\n\n. The kind that explain *why* something is done a certain way, not just *what* it does. Took maybe two extra hours. Felt tedious at the time. I know future-me will appreciate it, assuming there is a future-me looking at this code.\n\nThe code that's fast to write and the code that's fast to read are often different code.\n\nI'm not going to pretend I'll stop using AI for code. That ship has sailed. The BOGO app exists because of how fast I could move, and that mattered.\n\nBut I ended up with a new habit after this: at the end of each build session, before I close the laptop, I spend 10 minutes reading what was just generated. Not executing it. Just reading it like I'm a stranger who's never seen this project. If I can't follow the logic, I ask for a rewrite with more explanatory naming. It slows things down slightly. It's worth it.\n\nI also started keeping a tiny `NOTES.md`\n\nin each repo — just a running log of decisions. \"Used polling instead of websockets because [reason].\" \"This function is weird because of [constraint].\" Nothing formal. Just context I know I'll forget.\n\nThe AI didn't burn me. My own assumption that the build phase was the whole cost — that's what burned me.\n\nShipping is fast. Maintaining is slow. AI shifts the ratio, but it doesn't eliminate it.\n\nEventually. They work. Users seem to like them — engagement in the week after launch was up about 18% compared to the previous month's baseline, which I'll take.\n\nBut I think about that 9-day detour a lot. For a solo builder, 9 days is a lot of runway. It's two other mini-apps I didn't start. It's experiments I didn't run.\n\nThe BOGO app is fine. But I have a rule now: any project I plan to touch more than once gets a higher standard of clarity from day one. If I'm building something I expect to forget, I have to write it for the version of me that already has.\n\nThat version of me is not patient. And he does not enjoy reading `handleProcessV2`\n\n.\n\n**TL;DR:** AI-generated code shipping fast is real — but the hidden cost shows up at the first maintenance window, not at launch. I lost 4 days and 9 days total on a feature that should've taken 2, because I never wrote the code for future-me.\n\n*Next episode: I tried charging for the BOGO app — $2.99 one-time — and watched the conversion data come in for 30 days. The numbers are not what I hoped.*\n\n[Get the $31 Stack Prompt Pack — $19](https://bluelove3.gumroad.com/l/tmydzb)\n\nThe exact prompts, cost calculator, and n8n templates from this stack.", "url": "https://wpnews.pro/news/6-months-later-nobody-could-read-the-code-including-me", "canonical_source": "https://dev.to/moonshot_1341/6-months-later-nobody-could-read-the-code-including-me-4p98", "published_at": "2026-07-11 07:25:17+00:00", "updated_at": "2026-07-11 07:43:11.703473+00:00", "lang": "en", "topics": ["developer-tools", "artificial-intelligence"], "entities": ["Cursor"], "alternates": {"html": "https://wpnews.pro/news/6-months-later-nobody-could-read-the-code-including-me", "markdown": "https://wpnews.pro/news/6-months-later-nobody-could-read-the-code-including-me.md", "text": "https://wpnews.pro/news/6-months-later-nobody-could-read-the-code-including-me.txt", "jsonld": "https://wpnews.pro/news/6-months-later-nobody-could-read-the-code-including-me.jsonld"}}