Next.js 16 вийшов восени 2025 року з новим компілятором Rust, стабільним частковим попереднім рендерингом та нативними серверними діями з підтримкою потокових форм. Ми мігрували три виробничі проекти і поділимося досвідом без маркетингового глянцю.
Що насправді покращилося
- Час холодної збірки зменшився на 35–60% завдяки Turbopack, увімкненому за замовчуванням
- Гаряче перезавантаження в проекті з 1,200 файлами відповідає за 200–400 мс
- PPR миттєво відправляє статичну оболонку та транслює динамічні регіони
- Серверні дії з useActionState усувають 80% шаблонного коду форм
Що зламалося
- 01next/image з зовнішніми SVG — тепер вимагає явного білого списку через remotePatterns та прапорець dangerouslyAllowSVG
- 02Custom server.js більше не підтримується — рефакторинг до проміжного програмного забезпечення або обробників користувацьких маршрутів
- 03Старі версії @vercel/og несумісні — оновіть до 0.7+
- 04react-i18next всередині серверних компонентів потребує іншого підходу — ми перейшли на користувацький LanguageProvider
Що ми робимо інакше в нових проектах
По-перше — ми використовуємо PPR з першого дня. Це змушує вас думати про дані як про два потоки: статичну оболонку та динамічні віджети. Структура коду стає чистішою, а бали Lighthouse підвищуються на 8–12 пунктів.
По-друге — ми переміщуємо мутації до серверних дій і залишаємо маршрути API лише для зовнішніх інтеграцій (вебхуки, зворотні виклики платіжних шлюзів).
Next.js 16 — це перший реліз, де ми не бачимо вагомих причин залишатися на 15. Продуктивність і DX переважають витрати на міграцію.
План міграції на 1–2 дні
- 01Оновити Node до 22 LTS
- 02Запустити codemod: npx @next/codemod@latest upgrade
- 03Виправити критичні зміни в зображеннях, проміжному ПЗ та кешуванні запитів
- 04Запустити E2E тести та Lighthouse — зафіксувати базовий рівень до/після
- 05Розгорнути на стадії з реальним трафіком на 24 години