← Все статьи

С Next.js на Astro: когда блогу не нужен React на клиенте

Разработчик перенёс портфолио с Next.js 15 на Astro 6: ~230 КБ JS на странице поста стало ~0 КБ, Lighthouse 99–100.

С Next.js на Astro: когда блогу не нужен React на клиенте
Содержание

Открываешь еженедельную заметку. Текст стоит на месте и никуда не едет. Браузер в это время распаковывает целую мастерскую: каркас приложения, библиотеку интерфейса и два набора анимаций. Около 230 килобайт программы — чтобы показать абзацы.

На Dev.to разработчик рассказал, как эту мастерскую убрал. Личный сайт переехал с Next.js 15 (React 19, Framer Motion, GSAP) на Astro 6. Страница поста перестала отправлять в браузер лишнюю программу.

Бензопила у маслёнки

Первая версия была витриной. Анимации, два режима оформления, текст через content-collections, next-mdx-remote, react-markdown и starry-night. Потом работа стала другой: заметка раз в неделю. Инструменты остались включёнными. Примерно 180 КБ каркаса, 45 КБ React, 60 КБ Framer Motion и 30 КБ GSAP — ради текста, который не двигается.

Next.js умеет собрать страницу заранее. Это не выключает станок. Браузер всё равно скачивает программу, разбирает её и запускает заново, чтобы нарисовать те же абзацы и блоки кода.

Хлеб уже нарезан, а пила на столе гудит.

Страница приезжает уже намазанной

Astro по умолчанию отдаёт готовую страницу: разметку и стили. Программа просыпается только там, где кто-то должен нажать. На всём сайте таким мотором остался короткий встроенный скрипт переключателя тёмной темы.

Переезд занял около дня. Посты на MDX скопировали. Tailwind v4 и темы оставили. Подсветку кода отдали встроенному Shiki вместо starry-night. Плавную смену экранов отдали самому браузеру (View Transitions), без Framer Motion.

Редкую кнопку можно оставить островком: виджет на React с client:load. Коллекции материалов и Shiki закрывают около 80% такого блога без прежней цепочки обработчиков.

Пилу берут, когда режут не масло

Спор «Astro или Next.js навсегда» промахивается. Вопрос в том, что лежит на тарелке.

Что делаете Чем пользоваться
Сервис, кабинет, магазин — экран всё время отвечает Next.js и полноценный React
Блог и документация — страницу в основном читают Astro и похожие инструменты: в браузер уезжает страница, а не приложение

Цифры из того же рассказа. Оценка скорости в Lighthouse: с 85–90 до 99–100. Сборка: с ~15 секунд до ~5. Зависимостей: с 30 с лишним до ~10.

Старый сайт на Next.js можно оставить архивом. Автор сам отдал плавную перестройку макета в обмен на скорость, с которой выходит новая заметка. Витрину не обязательно сжигать в тот же день.

Что проверить на своём блоге

  1. Откройте обычную статью и посмотрите, сколько программы качает браузер. Если там только текст и подсветка кода, приложение, скорее всего, лишнее.
  2. Редкую кнопку оставьте отдельным островком. Не включайте ради неё всю мастерскую.
  3. Не выбрасывайте «шоу» портфолио только потому, что блогу оно не нужно. Это разные работы.
  4. Старую версию можно не удалять в тот же день.

Если главная работа недели — отдать человеку страницу текста, не заводите бензопилу.

Комментарии

Загрузка комментариев…