If you’ve spent any time on Twitter/X or Hacker News this year, you’ve seen the takes. “Cursor changed my life.” “Claude Code is the future.” “Copilot is useless now.” “Windsurf is underrated.”
The problem with these takes is they’re usually based on one person’s experience with one tool on one type of task. That’s not a comparison, it’s an anecdote.
So I did something different. I took a real project — an API gateway with Stripe metered billing, user auth, and rate limiting — and built the same feature with four different AI coding tools. Same task, same codebase, same human guiding the process.
The Setup
The task was adding automatic webhook retry with exponential backoff. Each tool got a clean branch from the same commit. Sessions capped at 30 minutes.
The four tools: Cursor (Claude 3.5 Sonnet), Claude Code (CLI mode), GitHub Copilot (latest models), and Windsurf (Cascade mode).
Cursor: Fast Start, Messy Middle
First output in 8 seconds. 287 lines generated. But 3 bugs — didn’t integrate with existing retry queue, hardcoded delay intervals, created duplicate database tables. 60% of code kept after review. Verdict: B-.
Claude Code: Slowest but Most Thoughtful
Spent 40 seconds reading the codebase before generating. Integrated with existing queue, config, and audit log. One bug (max delay cap not enforced). 90% of code kept. Verdict: A-.
GitHub Copilot: Surprisingly Solid
Inline completions were great for boilerplate. No bugs, but only 156 lines generated — less ambitious. No concept of full feature scope; you do the architecture. Verdict: B.
Windsurf: The Dark Horse
Identified existing retry utilities and matched ORM patterns. One edge case missed (410 Gone should stop retrying). Cleanest code. 88% kept. Verdict: A-.
The Real Takeaway
None of them wrote production-ready code without review. Every single one made mistakes that would cause issues in production. The idea that AI coding tools let you skip code review is wrong.
What they do is compress time. A full day of work a year ago now takes 2-3 hours with AI assistance. But those hours still require real engineering judgment.
I’m keeping all four installed. Each has a role. The best setup isn’t one tool — it’s knowing which one to reach for when.
