We made Cursor our daily driver eight months ago — not a weekend test, actual production code across multiple projects. Here's what held up and what didn't.
The part that sells it in five minutes
Cursor's Tab completion doesn't just finish your current line, it predicts the next several based on what you're actually doing. Building a PUT handler for user preferences in a Next.js app, we typed the function signature and Cursor filled in the Zod validation schema matching our existing patterns, the Prisma update call using our model naming convention, and error handling wrapped in our own ApiError class. Three Tab presses, done.
Hit rate depends on the language: 70-80% useful suggestions for TypeScript and Python-with-type-hints, dropping to 55-60% for vanilla JavaScript and Ruby where there's less type information to anchor predictions.
Composer mode: real multi-file editing
We asked Composer to add i18n support to a React dashboard — extract hardcoded strings from 14 components, build an en.json messages file, create a parallel Spanish file, wire up FormattedMessage/useIntl and the IntlProvider. It read all 14 files, extracted 47 strings, and got 12 of the 14 components perfect on the first pass. Two needed small fixes (a string buried in a template literal, one wrong import path). That's a two-hour manual task done automatically, with two spot-fixes.
Agent mode has real limits
Agent mode plans, executes, runs tests, and iterates on its own. It built a full Jest suite for an untested utility library — 34 test files, found 6 failing, fixed 5, correctly flagged the 6th as a genuine bug in our code — in about three minutes.
But it's not unsupervised-safe yet. We watched it get stuck in a loop trying to fix a TypeScript error by repeatedly adding and removing the same type assertion, and had to intervene manually. Our rule now: scope the task tightly, watch it work, step in early if it starts spinning.
What still annoys us after 8 months
- Import hallucinations — Cursor invents packages or uses import paths from the wrong framework, 2-3 times a day in active use.
- Invisible context limits — when a Composer session runs out of context, quality just degrades silently. No indicator.
- "Fast" vs "slow" requests feel arbitrary. Sometimes a "slow" request is instant; sometimes a task that should be quick eats a fast one.
Pricing, as we're actually paying it
Free (Hobby) gets roughly 50 slow premium requests a month. Pro is $20/month for 500 fast premium requests, unlimited slow requests, and all models — the tier we actually use, and heavy Agent mode sessions can burn 10-15 fast requests each, so budget accordingly. Teams is $40/user/month and adds SSO, admin controls, and enforced privacy mode (no code stored or used for training).
The honest bottom line
Rating: 4.5/5. Cursor earned its spot as our default editor because the Tab completions save time on every function we write, not because it's flawless — the import hallucinations and invisible context limits are real annoyances. If you're a working developer in VS Code today, the migration is a two-minute import of your existing setup with essentially zero learning curve.
Full review, pricing breakdown, and head-to-heads against Copilot and Windsurf: https://devtoolsreview.com/reviews/cursor-review/
Top comments (0)