У Next.js 15 основний практичний виграш не в “магії”, а в дисципліні рендерингу. Якщо чітко розділити server/client компоненти, падає вага бандла і зростає швидкість першого рендера.
Перший крок: винеси все, що не потребує браузера, у server components. Другий: залиш у client лише інтерактивність. Третій: перевір Lighthouse після кожної зміни структури.
Кешування має бути керованим. Для даних з низькою мінливістю використовуй revalidate; для критично актуальних — no-store. Головне: мати карту даних, а не “рандомні налаштування по місцю”.
Практичний патерн: route-level split + lazy load для важких віджетів. Це дає відчутний приріст на мобільних і старих ноутбуках, де CPU — головне вузьке місце.
Антипатерн: все пхати у клієнт “бо так простіше дебажити”. Ціна — повільний TTI і вищий bounce. Сучасний фронтенд виграє від server-first мислення.
Action-plan: 1) аудит маршруту, 2) винесення серверної логіки, 3) оптимізація зображень і шрифтів, 4) контроль веб-віталів у CI.