nextjs
Next.js с нуля до senior
Стратегии рендеринга, App Router, серверные компоненты и слои кеширования — Next.js в продакшене.
Начать трек → 01
SSR, SSG, ISR, серверные компоненты
Каждый режим рендеринга — свой ответ на вопрос «когда собирается HTML и кто платит за латентность». 02
App Router, слои кеша, server actions
App Router ставит четыре кеша между тобой и свежими данными; понять, какой именно сработал, — и есть production-навык. 03
Route handlers, middleware, рантаймы
Route handlers — твоя API-поверхность; middleware бежит на каждом подходящем запросе на edge, а рантайм решает, какой код вообще возможен. 01 Route handlers: route.ts как HTTP-интерфейс — методы, params и смена кеширования в Next 15 17 мин 02 Middleware и граница доверия: matcher, rewrite и CVE-2025-29927 18 мин 03 Node против Edge: cold start, недостающие API и почему код должен жить рядом с данными 17 мин 04 Стриминговые ответы: ReadableStream, SSE для LLM-интерфейсов и прокси, которые их буферизуют 18 мин
04
Аутентификация в App Router
Auth в Next.js — вопрос границ: middleware редиректит, layout не защищает, а каждый server action — публичный эндпоинт. 01 Сессии против JWT: отзыв, ротация и где живёт состояние на serverless 17 мин 02 Границы аутентификации: почему middleware и layout не защищают, и Data Access Layer, который защищает 19 мин 03 server-only и секреты: граф модулей, NEXT_PUBLIC_ и что на самом деле ловят taint-API 18 мин 04 CSRF и безопасность экшенов: каждый server action — публичный POST-эндпоинт 18 мин
05
Картинки, шрифты, бюджеты бандла
Ассеты определяют LCP и INP: next/image и next/font делают быстрый путь дефолтом, а бюджеты не дают ему деградировать. 06
Деплой и edge
Self-host — реальная опция: standalone-вывод в контейнере, edge для роутинга, а не данных, ISR требует общий кеш при более чем одном поде. 07
Наблюдаемость и ошибки
error.tsx — дерево границ, а не страница: instrumentation.ts включает OTel до старта кода, а логи RSC живут только на сервере. 01 Иерархия error.tsx: что на самом деле ловит каждая граница, digest и когда reset() врёт 17 мин 02 instrumentation.ts и трассировка: один register() на процесс, один trace на запрос и счёт за выборку 18 мин 03 Серверные логи и Web Vitals: структурные логи с request id и beacon, который называет плохой деплой 17 мин
08
Архитектура в масштабе
Route groups — границы модулей: монорепо делится по доменам, общий код уходит в пакеты, а pages→app мигрирует маршрут за маршрутом. 01 Route groups как границы модулей: доменные оболочки, колокация и налог полной перезагрузки 17 мин 02 Механика монорепо: pnpm workspaces, граф задач Turborepo и пакеты, заслужившие свою границу 18 мин 03 Миграция pages/ в app/: сосуществование, карта переноса и таймлайн в кварталах, а не спринтах 18 мин
09
Слой данных
RSC ходят в базу напрямую: пул на процесс, а не на запрос; serverless требует прокси; cache-теги моделируют домены. 01 ORM и SQL в серверных компонентах: слой данных владеет запросами, мемоизацией и древовидным N+1 18 мин 02 Пулы на serverless: проблема умножения, transaction mode в pgbouncer и размер пула на инстанс 17 мин 03 Cache-теги по доменам: таксономия инвалидации, проводка вебхуков и шторм переинвалидации 16 мин
10
Next.js в проде
Next.js в проде падает через cache poisoning, ISR-штормы и cold starts — этот юнит про анатомию инцидентов и математику затрат.Проекты по этому треку
Guided-проекты, которые закрепляют изученное здесь.
Go с нуля до senior
Маленький язык для больших систем — типы, ошибки, интерфейсы и конкурентность, которая масштабируется.