И Next js, и Gatsby позволяют создавать статические веб-сайты с помощью React. Есть три основных отличия, которые следует учитывать при выборе между ними.

SSR против SSG

SSR и SSG — это разные парадигмы рендеринга веб-сайтов. Давайте сначала определим их.

SSR (рендеринг на стороне сервера) — содержимое вашей страницы отображается во время выполнения. Каждый запрос браузера запускает часть кода на сервере, который создает страницу. Это дает больше свободы для настройки.

SSG (генерация на статической стороне) — страницы создаются во время сборки. Каждый запрос браузера просто извлекает статическую предварительно созданную HTML-страницу. Он обеспечивает наилучшую производительность.

Вот отличная подробная сравнительная статья.

Изначально Next js был только SSR. В конце концов, они добавили поддержку SSG. Гэтсби всегда был просто SSG. В связи с этим в Next доступно больше возможностей, в то время как у Gatsby может быть более зрелый подход к SSG.

Обработка данных

Next js предоставляет набор вспомогательных функций для обработки данных. Вы можете использовать простой синтаксис Node для асинхронного возврата любых данных из этих функций. С Gatsby вы должны предоставить запросы GraphQL для получения данных.

Ваше отношение к GraphQL может диктовать ваш выбор.

Философия

Следующий подход js — дать вам как можно больше свободы. Он предоставляет только API для связи с фреймворком. Кроме того, вы предоставлены сами себе. Вы можете использовать обычную среду Node для создания всего, что захотите.

Гэтсби полагается на существующие абстракции, называемые плагинами. Если вы хотите что-то добавить, сначала проверьте наличие плагина. Текущая библиотека плагинов Gatsby довольно обширна и разнообразна.

Резюме

Если вам нужен SSR или вы хотите улучшить настройку, используйте Next js. Ищете SSG, который работает «из коробки»? Гэтсби - лучший выбор. Просто убедитесь, что есть плагины для того, чего вы хотите достичь.

"Оригинальная статья"