Вам не нужен Next.js
Next.js — это стандартное решение для создания React-приложений. Это отличный фреймворк. Но «стандартный» не значит «необходимый».
Использование его не по назначению стоило нам скорости и вызывало трения в команде. Мы создавали продукт с большим объемом данных, дашбордами и графиками. Почти каждый экран находился за авторизацией.
Для приложений такого типа серверный рендеринг (SSR) добавлял затрат, не принося пользы.
Выбор правильного инструмента зависит от того, что именно вы создаете.
Проекты с упором на контент: • Маркетинговые сайты • Блоги • Интернет-магазины • Документация • Используйте здесь Next.js. SEO имеет значение, а контент статичен.
Проекты с упором на функционал (Application-first): • Внутренние инструменты • Дашборды • Панели администратора • Консоли SaaS • Используйте здесь SPA на базе Vite. Такие приложения работают за авторизацией и полагаются на API.
Мы перешли с Next.js на Vite SPA. Вот почему:
Проще отладка Ошибки сервера не всегда четко соотносятся с вашими компонентами. Ошибки на стороне клиента происходят в браузере с понятными стек-трейсами. Это ускоряет исправление багов.
Лучшее тестирование Нельзя легко провести юнит-тестирование серверного компонента, который рендерит другие серверные компоненты. Мы принимали архитектурные решения только ради того, чтобы сохранить тестируемость. Это было ошибкой.
Более простая авторизация SSR требует, чтобы сервер проверял токены при каждом запросе. Это увеличивает поверхность атаки и усложняет логику работы с куками. Приложение с упором на клиент обрабатывает авторизацию в одном месте: в API.
Более низкие затраты на инфраструктуру Для SSR нужен постоянно работающий сервер для каждого запроса. Статический фронтенд доставляется в виде файлов через CDN. Вам нужно запускать и защищать на один сервис меньше.
Меньше сложности Next.js навязывает разделение на сервер и клиент. Фронтенд-инженерам приходилось заниматься серверными задачами, такими как middleware и кэширование. Это замедляло нашу работу.
Мы переходили поэтапно. Мы оставили Next.js для публичных страниц, критичных для SEO. Все остальное мы перенесли на Vite SPA.
Компромиссы были незначительными: • SEO: Дашбордам за авторизацией не нужно SEO. • Первоначальная загрузка: Приложения с большим объемом данных обычно работают медленно из-за базы данных, а не из-за фреймворка.
Используйте Next.js, если важны SEO и превью для соцсетей. Используйте Vite SPA, если ваше приложение интерактивное, работает с данными и находится за авторизацией.
Перестаньте использовать решения «по умолчанию». Спросите себя, что именно вы строите.
Источник: https://dev.to/moruno21/you-dont-need-nextjs-heres-why-708
