Пост «Next.js vs Remix» — один из самых искомых вопросов в мире React, и почти каждый существующий ответ всё ещё из 2023 года. Ландшафт фреймворков сдвинулся. Вот как выглядит сравнение в 2026.
Что изменилось со времён последнего срача
Три вещи перезапустили этот разговор:
- Remix слился с React Router 7 (конец 2024). «Remix» как отдельный фреймворк по сути больше не существует. API данных, паттерны
loader/action/useFetcher— всё переехало в React Router. Отдельный пакетremixещё ставится, но новая документация указывает на React Router. Когда в 2026 говорят «Remix», имеют в виду RR7 в режиме фреймворка. - Next.js App Router и RSC стабилизировались. Обсуждение «готов ли он к проду?» закончено. Я отгрузил шесть продакшн-проектов на App Router за последние 18 месяцев. Работает. Острые углы есть, но они известны, задокументированы и стабильны.
- Vercel и Shopify поддерживают свои инструменты всерьёз. Вопрос «кто будет это поддерживать?» снят для обоих. Никуда не денутся.
Так что настоящий вопрос в 2026 — не «Next.js или Remix?» Это «Next.js App Router или React Router 7 в режиме фреймворка, для этого конкретного проекта?»
Честные различия, по порядку важности
Модель получения данных. Это главное, и интернет это хоронит.
Next.js RSC толкает тебя к серверным компонентам, которые фетчат inline — ты пишешь async function Page() { const data = await db.query(...) }, и сервер рендерит с этими данными. Получение данных внутри дерева компонентов.
React Router 7 кладёт получение данных в функцию loader на уровне маршрута, которая выполняется до рендера компонента. Данные приходят как props в компонент, который — чистая презентация.
Оба работают. Это разные ментальные модели. Модель Next более эргономична для данных, локальных компоненту. Модель RR7 более предсказуема для сложных страниц с несколькими источниками данных. Я отгружал и то и другое; оба норм, когда привыкнешь.
История с мутациями.
У Next есть Server Actions. Формы могут делать action={serverFn}, и функция выполняется на сервере, с progressive enhancement. Хорошо, когда работает. Засада с обработкой ошибок, revalidation и границей сериализации клиент/сервер (писал про одну, которая меня укусила, в ранней статье).
У RR7 чистая, более старая модель: функции action на маршрутах, <Form method="post">, автоматическая ревалидация подходящих loader'ов. Меньше магии, больше предсказуемости. Работает без JS.
RR7 выигрывает здесь для меня по чистой эргономике. Ментальная модель старее и проще.
Целевая площадка деплоя.
Next.js фактически предполагает Vercel или Node-хост, который умеет запускать его рантайм. Можно и самохостить — я это делал — но эргономичный путь — Vercel, а Vercel-специфичные фичи (edge runtime, ISR на масштабе, оптимизация картинок) — это заметные выигрыши.
RR7 более честен насчёт «запустить где угодно». Cloudflare Workers, Deno Deploy, самохост на Node — история деплоя более нейтральная. Если у тебя есть конкретная причина не быть на Vercel (комплаенс, цена на масштабе, отвращение к вендор-локу), RR7 делает этот путь глаже.
Остальное.
Роутинг, сборка, CSS, i18n — сравнимы в 2026. У обоих есть конвенции. У обоих есть escape hatches. Ни один не заметно быстрее другого на хорошо настроенной сборке.
Когда Next.js реально выигрывает
- Ты деплоишь на Vercel и хочешь дефолт. Vercel-Next — самая отполированная история деплоя в экосистеме React. Не близко.
- Тебе нужен RSC как дизайн-примитив. Если ты усвоил серверные компоненты как правильный способ структурировать data-heavy приложения, эргономика App Router впереди.
- Ты в команде, которая уже знакома с Next. Экосистема больше. Больше ответов на Stack Overflow, больше сторонней документации, больше опытных разработчиков на рынке.
- Тебе нужна оптимизация картинок, middleware, ISR на масштабе. У Next это встроено и плотно интегрировано. RR7 заставит это разводить руками.
- Ты ценишь простоту одного вендора.
vercel --prodи готово. Никакого AWS настраивать, никакой Cloudflare зоны подкручивать.
Когда React Router 7 реально выигрывает
- Тебя волнует портативность деплоя. Компания работает на Cloudflare Workers. Или комплаенс требует on-prem. Или ты хочешь держать бюджет на AWS предсказуемым без вендор-лока. RR7 облегчает эти сценарии.
- Ты хочешь progressive enhancement как первоклассную ценность. Формы, которые работают без JS. Страницы, которые рендерятся на медленных устройствах. Модель RR7 здесь дружелюбнее из коробки.
- У тебя server-rendered ментальная модель, и RSC тебе не нужен. Если до-RSC Next.js (Pages Router + getServerSideProps) — это то, как думает твой мозг, модель loader/action из RR7 — это естественная эволюция этого, а не новая парадигма.
- У команды сильный опыт React Router. Вы уже используете RR для клиентского роутинга. Апгрейд до RR7 в режиме фреймворка — это меньший прыжок, чем освоение Next.
Что я реально выбираю для клиентской работы
По умолчанию: Next.js App Router. Причины, по порядку честности:
- Скорость экосистемы. Документация любой библиотеки обычно сначала отгружается с примерами под Next.js. Когда MVP основателя должен интегрировать Stripe, Resend, Supabase, Clerk и PostHog за 6 недель, я хочу кратчайший путь.
- История деплоя на Vercel реально лучше для быстро движущихся команд. Я отгружал проекты, где пушил в main, Vercel разворачивал в продакшн и preview за 90 секунд, и я мог поделиться URL с основателем ещё до того, как он дочитывал PR. Этот цикл важен.
- Я отгрузил больше проектов на Next и знаю его режимы отказа. Это честная причина, по которой большинство разработчиков выбирают свой фреймворк, и они редко признаются.
Когда отклоняюсь в сторону RR7:
- Клиент настаивает на не-Vercel хостинге и у него есть инфраструктурные люди, которые это поддержат
- Продукт — внутренний инструмент, где progressive enhancement реально ценен (медленная сеть, старые устройства)
- Команда уже глубоко сидит в React Router и потеряет больше, мигрируя, чем выиграет от перехода на Next
Что я бы сказал нетехническому основателю
Если ты не будешь читать код — это не имеет значения. Оба фреймворка могут отгрузить твой продукт. Сначала выбирай разработчика, а пусть он выбирает фреймворк, на котором отгружает быстрее. Сеньор, отгружающий на Next, побьёт сеньора, неохотно использующего RR7, и наоборот.
Спор про стек — это то, что любят иметь инженеры. Продуктовый спор — это то, что отгружает твою штуку.
Если ты пытаешься выбрать между Next и RR7 для конкретного проекта — или унаследовал один и не уверен, стоит ли мигрировать — я прогоню трейдофы на 20-минутном созвоне. Обычно решение проще, чем звучит в интернете. Записаться на созвон.