Your brand hereYour brand hereYour brand hereYour brand hereYour brand hereYour brand here
Agents in the Wild

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!).”
From the source: kentcdodds.com

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.

★ 2.5k · Custom licence · TypeScript · Last update Oct 20, 2026

The builder's own repo, as the source says. We haven't audited this code. Read it before you run it.

Keep browsing

All 12 Cursor use casesAll 90 Engineering use cases
Your brand hereYour brand hereYour brand hereYour brand hereYour brand hereYour brand here

Advertise on Agents in the Wild

Reach the people building and buying AI agents.

Every pageSidebars + phone strips
High-intentBuilders, not browsers
20/20Spots left

How it works

Your brand appears in rotating sponsor slots on desktop sidebars and in the scrolling sponsor strips at the top and bottom of the screen on phones, across every Agents in the Wild page. Sponsors rotate every 10 seconds so every advertiser gets fair visibility.

Pricing

Monthly rate: $250/month

Reserve your spot ($250/month) →

Billed monthly through Stripe. Cancel anytime. See the sponsor terms.

Submit an agent in the wild

Have an agent doing real work, or spotted one? Send the link and tell us the result. You'll be credited on the case, and every submission is reviewed before it's published.

By submitting, you agree to our Terms and Privacy Policy.