migrate-to-vinext Skill (Cloudflare's own repo): Migrate Next.js to vinext
Moves a Next.js project to vinext, Cloudflare's Vite-based Next.js reimplementation, and sets up deployment.
- Installs
- 8.7K
- on skills.sh
- Stars
- 9.3K
- on GitHub
- Files
- 3
- besides SKILL.md
- Updated
- Nov 2026
- last repo commit
This skill, from Cloudflare's own vinext repo, walks your assistant through migrating a Next.js app to vinext. It scans for compatibility gaps, runs vinext init, falls back to a manual package swap if needed, and can set up Cloudflare Workers or Nitro deployment.
It stops if next is not in your package.json. The README calls vinext under active development and not yet a drop-in replacement for every app. It runs npx and package-manager commands in your project.
Good for
- Next.js teams that want to run on Vite or Cloudflare Workers
- Developers who want a compatibility report before they migrate
- Anyone moving a Pages Router or App Router app without rewriting app code
Install migrate-to-vinext
Claude Code
- 1
Download the skill folder from https://github.com/cloudflare/vinext/tree/HEAD/.agents/skills/migrate-to-vinext.
- 2
Put it at ~/.claude/skills/migrate-to-vinext/ so that SKILL.md sits directly inside.
- 3
Start a new session; the skill loads when its description matches the task.
Requires Node.js, A Next.js project.
Keep the references folder with SKILL.md. The skill runs npx, package-manager and deploy commands in your project, so there is no Claude app upload route. The vinext repo holds this one skill and no plugin manifest.
Built from the package data we hold. Not yet tested by us.
What's in the skill
When it loads
Migrates Next.js projects to vinext (Vite-based Next.js reimplementation). Load when asked to migrate, convert, or switch from Next.js to vinext. Handles compatibility scanning, package replacement, Vite config generation, ESM conversion, and deployment setup (Cloudflare Workers natively, other platforms via Nitro).
Sections in SKILL.md
- FIRST: Verify Next.js Project
- Quick Reference
- Phase 1: Check Compatibility
- Phase 2: Automated Migration (Recommended)
- Phase 3: Manual Migration
- 3a. Replace packages
- 3b. Update scripts
- 3c. Convert to ESM
- 3d. Generate vite.config.ts
- 3e. Update .gitignore
- Phase 4: Deployment (Optional)
- Option A: Cloudflare Workers (recommended for Cloudflare)
- Option B: Other platforms (via Nitro)
- Phase 5: Verify
- Known Limitations
- Anti-patterns
Key facts
- Installs on skills.sh
- 8,734 (Nov 2, 2026)
- Last repo commit
- Nov 1, 2026
- Audits on skills.sh
- Gen Agent Trust Hub: pass, Socket: pass, Snyk: pass
What it includes
Stops unless next is in dependencies; detects the package manager and router.
Lockfile picks pnpm, yarn, bun or npm. An app/ folder means App Router; only pages/ means Pages Router.
Files ·
Verify Next.js projectScans the project for compatibility issues and prints a scored report.
Run through npx if vinext is not installed. Critical gaps are reported before going on.
Runs code ·
Phase 1: vinext checkAutomated migration: installs vite, adds type: module, scripts and vite.config.ts.
The SKILL.md calls it non-destructive: Next.js keeps working next to vinext, and you test with the dev:vinext script.
Runs code ·
Phase 2: vinext initFallback: replace packages, update scripts, convert to ESM, write vite.config.ts.
This path uninstalls next and installs vinext and vite with your package manager.
Delete ·
Phase 3: Manual migrationCloudflare Workers via npx @vinext/cloudflare deploy, or other hosts through Nitro.
The Cloudflare route builds and deploys with wrangler. Nitro presets cover Vercel, Netlify, Deno Deploy and Node.
Runs code ·
Phase 4: DeploymentStarts the dev server, checks key routes and reports the result with full errors.
Troubleshooting lives in references/troubleshooting.md.
Runs code ·
Phase 5: VerifySeven rows, such as next/image, next/font/google, domain i18n, next/jest and PPR.
Turbopack and webpack config are ignored; use Vite plugins instead.
Known limitationsSeven rules, such as do not rewrite next/* imports or touch app/ and pages/.
It also says not to skip the compatibility check and to prefer cloudflare:workers for bindings.
Anti-patterns
From the official docs
Permissions
Medium risk
It installs packages, edits your config and can deploy your app. Commit first, and name the deploy target yourself.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
It changes your project and runs installs
vinext init installs packages, renames config files and edits package.json. The manual path uninstalls next. Commit first so you can undo. github.com
It can deploy to Cloudflare Workers
Phase 4 builds and deploys with npx @vinext/cloudflare deploy through wrangler. Say which target and account you want, and ask for a dry run first. The README lists a --dry-run option. github.com
The project is still maturing
The README says vinext is under active development and not a drop-in replacement for every app. Test before you move production traffic. github.com
Technical details
| Turning on read-only | No read-only mode. vinext check only scans; the other phases edit the project. |
|---|---|
| Talks to | npm registry (package installs and npx). Cloudflare, through wrangler, if you deploy |
| Scopes |
|
Questions
What does migrate-to-vinext do?
It guides your assistant through moving a Next.js project to vinext, Cloudflare's Vite-based reimplementation of the Next.js API. It checks compatibility, runs the automated migration, fixes config and sets up a Cloudflare Workers or other deployment.
Is this Cloudflare's own skill?
Yes, it lives in the vendor's own repo, cloudflare/vinext. The README calls it an optional Agent Skill and prefers running vinext init directly for a repeatable migration.
How do I install it?
Use the install box above. The README command is npx skills add cloudflare/vinext, then open your Next.js project and say "migrate this project to vinext".
Is vinext ready for production?
The README says vinext is under active development and not yet a drop-in replacement for every application or production workload. Expect gaps in newer App Router features, and run vinext check against your app first.
Will it break my Next.js setup?
The automated vinext init path is described as non-destructive: Next.js keeps working beside vinext, and the README says it does not modify next.config, tsconfig.json or source files. The manual fallback uninstalls next, so use version control.
Will it deploy my app?
Only if you pick a deployment target in Phase 4. The Cloudflare route runs a build and deploys with wrangler. The README says vinext init asks which target you want, Cloudflare or Node. The README also says agents must ask you which target you want, then pass --platform=cloudflare or --platform=node.
Do the SKILL.md and README agree on what vinext init does?
Not fully. The SKILL.md lists seven steps; the README lists eight. The SKILL.md adds .gitignore entries (/dist/, .vinext/) and @vitejs/plugin-rsc for App Router. The README adds a start:vinext script, a deployment platform prompt and, for Cloudflare, a generated cloudflare.config.ts. Our advice: follow the README output when they differ.
Information
updated Nov 2, 2026
- Repository
- cloudflare/vinext
- Folder
.agents/skills/migrate-to-vinext
Sources
Docs, issue trackers and discussions this page is built from.
Show all 3Hide
- migrate-to-vinext SKILL.md · github.com
- vinext README · github.com
- references/troubleshooting.md · github.com