A Next.js middleware vulnerability finally pushed me to upgrade my blog to Next 15. I had planned to wait until I actually needed React 19 or Tailwind v4, since Next 15 came with quite a few breaking changes.
The upgrade took less work than I expected. @next/codemod automates most of the migration:
npx @next/codemod@canary upgrade latestNext 15.2.4 lists React 19 in its peer dependencies, so the codemod bumps react and react-dom for you.
Next, I upgraded Tailwind. They also provide a CLI to handle the transition:
npx @tailwindcss/upgradeAfter this, I started seeing turbopack errors in dev mode:
⚠ Webpack is configured while Turbopack is not, which may cause problems.
⚠ See instructions if you need to configure Turbopack:
https://nextjs.org/docs/app/api-reference/next-config-js/turboThe issue was caused by forcing a crypto fallback via webpack, which isn’t needed with Turbopack. Removing the webpack config cleared the warning.
I then upgraded the rest of my dependencies. Everything went fine, except for one:
WARN Issues with peer dependencies found
└─┬ @vercel/style-guide 6.0.0
└── ✕ unmet peer @next/eslint-plugin-next@">=12.3.0 <15.0.0-0": found 15.2.4@vercel/style-guide 6.0.0 pins its eslint peer dependency to @next/eslint-plugin-next@>=12.3.0 <15.0.0-0, and Next 15.2.4 installs 15.2.4. The package is deprecated and hasn’t been updated for Next 15. I removed it and replaced it with eslint-config-next.
So far, everything seems to be working just fine.
tl;dr
Occasional notes on software, tools, and things I learn. No spam.
Unsubscribe anytime.