Next.js 16 вийшов восени 2025 року з новим компілятором Rust, стабільним частковим попереднім рендерингом та нативними серверними діями з підтримкою потокових форм. Ми мігрували три виробничі проекти і поділимося досвідом без маркетингового глянцю.

Що насправді покращилося

  • Час холодної збірки зменшився на 35–60% завдяки Turbopack, увімкненому за замовчуванням
  • Гаряче перезавантаження в проекті з 1,200 файлами відповідає за 200–400 мс
  • PPR миттєво відправляє статичну оболонку та транслює динамічні регіони
  • Серверні дії з useActionState усувають 80% шаблонного коду форм

Що зламалося

  1. 01next/image з зовнішніми SVG — тепер вимагає явного білого списку через remotePatterns та прапорець dangerouslyAllowSVG
  2. 02Custom server.js більше не підтримується — рефакторинг до проміжного програмного забезпечення або обробників користувацьких маршрутів
  3. 03Старі версії @vercel/og несумісні — оновіть до 0.7+
  4. 04react-i18next всередині серверних компонентів потребує іншого підходу — ми перейшли на користувацький LanguageProvider

Що ми робимо інакше в нових проектах

По-перше — ми використовуємо PPR з першого дня. Це змушує вас думати про дані як про два потоки: статичну оболонку та динамічні віджети. Структура коду стає чистішою, а бали Lighthouse підвищуються на 8–12 пунктів.

По-друге — ми переміщуємо мутації до серверних дій і залишаємо маршрути API лише для зовнішніх інтеграцій (вебхуки, зворотні виклики платіжних шлюзів).

Next.js 16 — це перший реліз, де ми не бачимо вагомих причин залишатися на 15. Продуктивність і DX переважають витрати на міграцію.

План міграції на 1–2 дні

  1. 01Оновити Node до 22 LTS
  2. 02Запустити codemod: npx @next/codemod@latest upgrade
  3. 03Виправити критичні зміни в зображеннях, проміжному ПЗ та кешуванні запитів
  4. 04Запустити E2E тести та Lighthouse — зафіксувати базовий рівень до/після
  5. 05Розгорнути на стадії з реальним трафіком на 24 години