Astro / Next.js / Frontend / Архитектура

Astro vs Next.js: что выбрать для российского B2B

Next.js — индустриальный стандарт для React-разработки. Astro — относительно молодой фреймворк с островной архитектурой. На каком из них собирать B2B-сайт в 2026 — разбираем по шести критериям, которые реально влияют на проект, не на холивар в твиттере.

Марк Соловьев

CEO / CTO, Raylet Studio

В 2026 для нового B2B-сайта на JavaScript-стеке выбор практически сводится к двум фреймворкам: Astro и Next.js. SvelteKit и SolidStart остаются нишевыми, Nuxt 3 — выбор Vue-команд, но его я в этой статье не рассматриваю (отдельная стать для Vue-стека).

В Raylet Studio мы используем оба фреймворка, и наш дефолтный выбор — Astro. В этой статье — почему, и в каких сценариях мы всё-таки берём Next.js.

Краткая разница

ПараметрAstro 5Next.js 15
АрхитектураMulti-page app + IslandsSingle-page app + RSC
Дефолтный JS на клиенте0 KB~50 KB (RSC framework)
UI-фреймворкЛюбой (Vue/React/Svelte/Solid через интеграции)React (через React Server Components)
RoutingFile-based, MPAFile-based, App Router (RSC)
SSR / SSGStatic первичен, SSR опционаленSSR/RSC первичен, static опционален
Изображения<Image /> с автооптимизациейnext/image
Content managementContent Collections (Astro 5)Filesystem или CMS
Кривая обученияНизкаяСредне-высокая (RSC сложно)

Шесть критериев выбора

Холивары на тему «какой фреймворк лучше» обычно бесполезны, потому что не учитывают контекст. Я опишу шесть критериев, по которым реально различаются проекты.

1. Что делает сайт на клиенте

Это самый важный критерий. Сайты делятся на три категории:

  • Контентный сайт. Лендинги, корпоративные сайты, блоги, документация, портфолио. Клиентский JS — минимальный (мобильное меню, форма контактов, иногда галерея). 90% сайтов в моём опыте подходят сюда.
  • Сайт с фрагментами интерактивности. Калькуляторы, фильтры, чат, dashboard’ы. Клиентский JS есть, но он не основа сайта — это «островки» внутри статических страниц.
  • Полноценное SPA. SaaS-приложение, internal tool, complex web app. Клиентский JS — основа, статика — обёртка.

Astro идеально подходит для первых двух категорий. Третья — это Next.js, потому что роутинг, состояние, оптимизация re-renders — всё заточено под SPA.

В нашей студии большинство проектов — категория 1-2: B2B-сайты с калькуляторами, портфолио, корпоративные блоги. Поэтому Astro.

2. Что критичнее: TTFB и LCP или Time to Interactive

Astro по умолчанию даёт 0 KB клиентского JS на странице, если не используются Islands. Это означает мгновенный TTFB и LCP — браузер получает готовый HTML и сразу его отрисовывает.

Next.js с App Router и RSC лучше предыдущих версий, но всё равно отгружает RSC-фреймворк (~50 KB) и hydratable React tree даже для статических страниц. На быстром интернете это незаметно, на 4G в регионе — вполне.

Если ваш PageSpeed Mobile ниже 70 на текущем сайте — Astro почти гарантированно вытащит вас в 90+. Next.js потребует больше усилий по оптимизации.

3. UI-фреймворк команды

Astro поддерживает Vue, React, Svelte, Solid, Lit — выбирайте под команду. Можно даже комбинировать (хотя это избыточно). Next.js — только React.

Если ваша команда уже работает на Vue — Astro даёт возможность собрать сайт на Astro + Vue Islands без переписывания всего на React. Если у вас уже React-стек и React-разработчики — Next.js будет более естественным.

В Raylet мы выбрали Astro + Vue 3 как основной стек: Vue даёт нам Single File Components, простую реактивность через Composition API и хорошую DX. Astro даёт нам производительность и MPA-структуру.

4. Сложность routing’а

Astro — file-based MPA. Каждая страница — отдельный HTML, переходы — обычные ссылки. Никакого client-side routing’а, никаких state managers «между страницами», никакого «View Transitions» сложности по умолчанию (есть как опция).

Next.js App Router — это современный паттерн с RSC, layouts, parallel routes, intercepting routes, route groups. Мощно, но сложно для команды без опыта Next.js. Документация на 200 страниц, debug requires reading source code.

Для контентного сайта избыточно. Для SaaS-дашборда — оправдано.

5. Контент-менеджмент

Astro 5 ввёл Content Layer API — централизованный способ загружать контент из markdown, JSON, headless CMS, баз данных. Schema-валидация через Zod. Type-safe коллекции. Это лучшее, что есть в JS-фреймворках сегодня для контентных сайтов.

Next.js предлагает чтение файлов вручную (fs.readFileSync), либо CMS-интеграцию через GraphQL/REST. Контент-валидация — самостоятельно (можно тоже через Zod, но без интеграции с роутингом).

Для блога, документации, knowledge base, портфолио — Astro выигрывает с большим отрывом.

6. Деплой и инфраструктура

Astro по умолчанию собирает статический сайт. Это значит — деплой на любой статический хостинг (Cloudflare Pages, Netlify, Vercel, GitLab Pages, S3, или просто nginx на собственном VPS). Никаких runtime-зависимостей, никаких холодных стартов serverless-функций.

Next.js предполагает Node.js-runtime для SSR/RSC. Деплой — Vercel (где Next.js «родной»), либо Node-сервер на собственной инфре, либо edge-runtime. Cold start на serverless — реальная проблема для нечасто посещаемых страниц.

Для российского B2B (часто self-hosted на VPS, без доверия к западным cloud-провайдерам после санкций) Astro проще. SSG-сайт — это просто папка с HTML, любой админ её разместит.

В нашей инфраструктуре Raylet и проекты клиентов хостятся на собственном VPS под nginx — для Astro это копирование папки dist/. Next.js потребовал бы Node.js-процесс с PM2 и reverse proxy.

Когда мы берём Next.js

Несмотря на дефолтный Astro, мы используем Next.js в нескольких сценариях:

  • Когда у клиента уже есть Next.js-стек и интеграция с существующей кодовой базой важнее технологического выбора.
  • SaaS-проекты с complex routing. Когда нужны nested layouts, parallel routes, server actions с form-validation — это естественные паттерны Next.js, переизобретать их в Astro+Vue избыточно.
  • Когда нужны RSC. Server Components с partial rendering — мощная фича для динамического дашборда. В Astro есть server:defer для server islands, но это не на том же уровне.

Когда Astro выигрывает безусловно

  • Лендинги, портфолио, блоги, документация, корпоративные сайты. 0 KB клиентского JS — это не маркетинг, а реальное преимущество для PageSpeed.
  • Сайты с фрагментами интерактивности. Островная архитектура позволяет добавить Vue/React/Svelte-компонент только там, где нужно, не превращая весь сайт в SPA.
  • Контент-driven projects. Content Layer API — лучшее в индустрии.
  • Проекты с критичной TTFB/LCP-метрикой. Astro даёт baseline, который Next.js просто не достигает архитектурно.

Финальный совет

Если вы выбираете для нового проекта и не уверены — возьмите Astro. С 90% вероятностью вам не понадобится сложность Next.js, а production-метрики будут лучше «из коробки».

Если у вас уже Next.js и оно работает — нет смысла переписывать ради переписывания. Пейн «у Next.js большой клиентский JS» решается оптимизацией бандлинга, partial hydration через Islands-подобные библиотеки и грамотным использованием RSC.

Если хотите обсудить ваш конкретный кейс — у нас на сайте есть калькулятор для предварительной оценки стоимости и сроков. Заходите.

  • Astro
  • Next.js
  • Frontend
  • Архитектура
Все статьи блога
Готовы обсудить проект?Расскажите задачу — соберём команду и предложим план реализации.Обсудить проект