I Let Cursor 0.5 Agent Build a Feature Solo at 2 AM — Here's What My $10k MRR Taught Me About AI Con
I Let Cursor 0.5 Agent Build a Feature Solo at 2 AM — Here's What My $10k MRR Taught Me About AI Con
Last Tuesday at 2 AM, I watched Cursor 0.5 Agent eat my entire codebase and spit out garbage. By 3 AM, it shipped a working feature that 47 users now love. This is the messy reality of "vibe coding" as an indie hacker who can't afford a senior dev.
Actually, wait—I should clarify that "garbage" part. It wasn't all garbage. The first 20 minutes were beautiful. Then it hallucinated a database schema I've never used, imported a library that doesn't exist in my package.json, and renamed my userMetrics variable to metricsUserData for absolutely no reason. Classic context rot.
I've been building in public for 18 months now. My SaaS hit $10k MRR last month—churn finally dropped to 3.2%, CAC holding at $18. Mental to type that, honestly. But here's the thing: I'm still the only engineer. So when Cursor dropped their 0.5 Agent update promising "improved context understanding" and "long task execution," I cleared my calendar.
Pieter Levels talks about shipping fast. I wanted to see if AI could actually ship competently. Not another demo project. Something real that my paying users would interact with.
The Test: A Real Feature, Not Another Bloody Todo App
I didn't want another demo project. I picked a feature from my actual backlog: a user-facing analytics dashboard with drill-down capabilities. This isn't a simple CRUD form—it requires:
- Aggregation queries across 3 MongoDB collections (users, events, sessions)
- Date range filtering with timezone awareness
- Nested chart interactions—click a bar, see the details
- Responsive layout (mobile users are 31% of my base, according to my Plausible dashboard)
I estimated this would take me 4-5 days of focused work. Probably closer to 5 if I'm honest—I get distracted easily.
Cursor 0.5 Agent? Let's find out.
Day 1: The Context Window Is Both Magic and a Trap
I started by opening Cursor's Agent panel and typing:
"Build a new analytics dashboard page with date range picker, 3 chart components (line, bar, donut), and drill-down tables. Use our existing API patterns from /src/api/metrics.ts. Follow the design system in /components/ui."
First Attempt (Failed): The Agent scanned my repo, found 127 relevant files, and started generating. But 15 minutes in, it lost the plot entirely. The date picker used a completely different pattern than my codebase—it pulled in react-datepicker when I've been using @radix-ui/react-popover with a custom calendar component I built 6 months ago. The API calls ignored my auth middleware entirely. Just... skipped the withAuth wrapper like it didn't exist.
I sat there staring at the screen. 15 minutes of generation. Completely useless.
The Lesson: Context understanding isn't infinite. Cursor 0.5 claims "deep repository awareness" but from what I've seen, the effective context window feels like ~2,000-3,000 lines before it starts hallucinating conventions. Maybe 4,000 if your codebase is really consistent. I think.
I've seen @levelsio mention this with Bolt—these tools work best when you break tasks into smaller chunks. So I pivoted hard.
Second Attempt (Working): Instead of one massive prompt, I fed it step-by-step:
- "Create the page shell and routing following /src/app/dashboard/patterns"
- "Add the date range component, reuse our existing DatePicker from /components/ui/datepicker.tsx"
- "Now add the line chart using our existing ChartWrapper component"
Each step took 5-10 minutes, and the Agent stayed coherent. By end of Day 1, I had a working skeleton with real data flowing. 3 hours of work done in 35 minutes.
Game changer.
Day 2: Long Tasks Expose the Edge Cases
This is where Cursor 0.5 Agent's "long task" capability got interesting—and properly frustrating.
I asked it to implement the drill-down logic: click a chart element, see filtered data in a table below. This required:
- Managing 3 interdependent state objects
- Debounced API calls (don't hammer my server, please)
- Preserving filter state across navigation
The Agent started strong. It generated the state management in one shot—a clean useReducer pattern with typed actions. I was genuinely impressed. Thought to myself, "This is it. This is the future."
Then it hit the third file of changes.
It forgot what it did in the first file. Variables were renamed. selectedMetricId became activeMetricIdentifier. Types mismatched. The build had 23 errors.
Twenty. Three.
I just laughed. What else can you do at that point?
This is the context boundary in practice. Cursor 0.5 doesn't maintain perfect understanding across multiple files in long tasks. It's like a junior dev who's really smart but has short-term memory issues. You know the type—shipping fast, but you review their PR and find console.log("here") on line 47. We've all worked with that person.
I spent 2 hours fixing type errors and reconnecting the state flow. But here's the thing—a junior dev would've taken 2 days. The Agent produced 80% correct code in 25 minutes. My job shifted from "write everything" to "fix the last mile."
By Day 2's end, the drill-down worked. It wasn't elegant. There's a useEffect chain I'm slightly ashamed of—three effects that trigger each other in sequence. I know. I know it's bad. But 47 users are using it right now and haven't complained. Ship first, refactor later. That's the indie hacker way.
The Numbers (Because I'm an Indie Hacker and I Track Everything)
I tracked my time against estimated manual effort:
| Task | Estimated Manual | Actual with Cursor 0.5 | Savings |
|---|
| Page shell + routing | 3 hours | 35 minutes | 83% |
|---|
| Date range + charts | 8 hours | 2.5 hours (incl. fixes) | 69% |
|---|
| Drill-down logic | 6 hours | 4 hours (lots of debugging) | 33% |
|---|
| Responsive polish | 4 hours | 1.5 hours | 63% |
|---|
| Total | 21 hours | 8.5 hours | 60% |
|---|
Cael Lee
Full-stack developer with 8+ years of experience. Currently building AI-powered developer tools. I've tested 20+ AI API providers and coding assistants.