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.
The Feature That Started as a Tuesday Task
The 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.
The file was 780 lines long. There were functions named things like handleProcessV2 and doTheFinalStep. Comments that said // fixed with 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.
That's the thing nobody talks about with AI-assisted code. The speed is real. The bill just comes later.
How It Got This Way
I'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.
What 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.
And honestly? It kind of was.
AI completions are optimized for the next line, not for the person reading the whole file in six months.
The 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.
What It Actually Cost
I want to be concrete here because this is supposed to be a receipts blog.
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.
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.
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.
That's a bad ratio. The original build took maybe 11 days total. I spent nearly as long on a single follow-up feature.
The Refactor I Didn't Want to Do
By 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.
I deleted handleProcessV2. It turned out handleProcessV1 didn'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.
I consolidated the three data-fetching patterns down to one. That alone probably took half a day and involved more console.log statements than I want to admit.
I also added comments. Real ones, not // fixed. 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.
The code that's fast to write and the code that's fast to read are often different code.
What I'd Do Differently
I'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.
But 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.
I also started keeping a tiny NOTES.md in 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.
The AI didn't burn me. My own assumption that the build phase was the whole cost — that's what burned me.
Shipping is fast. Maintaining is slow. AI shifts the ratio, but it doesn't eliminate it.
The Notifications Did Ship
Eventually. 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.
But 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.
The 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.
That version of me is not patient. And he does not enjoy reading handleProcessV2.
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.
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.
Get the $31 Stack Prompt Pack — $19
The exact prompts, cost calculator, and n8n templates from this stack.
Top comments (0)