Cursor moved a 42k-line site from Remix to React Router
A 42k-line site with packages to upgrade: 19 easy, 42 medium and 14 hard, by Cursor's own sort. Cursor cleared the easy and medium ones, then a background agent moved it from Remix v2 to React Router v7.
Done withCursorSpotted· by Kent C. Dodds· Oct 20, 2026
Result Merging agent PRs is "starting to feel routine"
“The next time I tried it out, the routing worked perfectly (give the agent a way to check its work and it performs much better!).”
Spotted: found in the wild. Details are as reported by the source above and have not been independently verified.
What they did
To upgrade the dependencies on their 42k-line personal site, they had Cursor list every outdated package grouped by difficulty, then update the easy group, then the medium group, then the major upgrades one at a time, such as vite, vitest, zod and xstate. For the hardest change, Remix v2 to React Router v7, they handed Cursor’s long-running background agent a migration prompt, answered its questions on the plan, and let it run.
How it went
The easy upgrades and the major ones went without a hitch, and the medium group hit a couple of issues. The migration first got the routing structure wrong; once told to match the original routes and given a way to check, routing worked perfectly. Overnight the agent ran 21 more minutes adopting React Router’s type patterns, and after a few rounds fixing what BugBot and CodeRabbit found, they merged it into main. They credit good tests and documentation for making it work.
Try it yourself with Cursor
Give your coding agent a prompt like: 'Make me a list of packages in this project that are not on the latest version, grouped by difficulty of upgrading.' Then ask it to update the easy group first, then the medium group, and finally tackle each major upgrade one at a time, telling it to look up migration docs before changing framework-level dependencies like [routing library] or [state machine library].
A starting prompt written by Agents in the Wild. Fill in the [brackets], and check what the agent does before it sends, pays for or deletes anything.
A data scientist tried Cursor on a real project. Prototyping, code completion and commenting went well, but pandas code kept failing and it deleted a bunch of data files.
A MongoDB-like database for a hobby project, written spec-first by Claude, Kiro, Qwen Coder and Cursor. They read zero lines of the code and checked it through tests. The first version took about two weeks, part time.
In SpaceXAI's own guide, engineer Lingxi Li's bots start Cursor cloud agents, check every PR every 30 minutes and merge the low-risk ones. A teammate shipped 2,000+ PRs in a month, they report.
A messy, roughly 900-line Blender script, abandoned. Cursor turned it into a proper repo for all their 3D designs, then built shapes they described in plain language. "These aren't 1-prompt creations", they add.
A huge, convoluted codebase they'd taken over. One prompt in Cursor's Plan mode found the bugs and planned the fix, then the agent made it, where the client's previous team hadn't.
Every visitor picks a World Cup winner, and countries light up by majority vote. When the live dot layer choked on mobile, they rewrote it in WebGL to keep it smooth.