Статический сайт для анонимных пользователей, но живые API для зарегистрированных пользователей в стеке JAM?
Я создаю сайт социальной сети с React, клиентом Apollo и Graphcool.
Я не собираюсь на стороне сервера рендеринга страниц для зарегистрированных пользователей. Каждый вошедший в систему пользователь увидит немного различное содержимое, поскольку опыт в значительной степени зависит от состояния.
Тем не менее, я бы хотел, чтобы на стороне сервера отображался контент для анонимных пользователей. Отчасти это полезно для SEO, так как поисковые системы легче анализируют HTML-страницы, а миниатюры, создаваемые социальными сайтами при совместном использовании URL-адреса, могут создаваться правильно.
Это также для производительности и стоимости хостинга. Если я вдруг получу всплеск трафика, когда люди проверяют мой сайт, но еще не регистрируются, я не хочу использовать API-интерфейс Graphcool для каждого просмотра страницы, тем более что анонимные пользователи будут видеть одно и то же содержимое.
Мне кажется, что у меня есть 2 варианта: либо создавать статические сайты в рамках процесса сборки, либо использовать внешний сервис, такой как CloudFront или CloudFlare. Я в настоящее время хостинг на Netlify и остаться со статическим хостингом сайта будет моим предпочтением, если это возможно.
Я искал первый вариант статической генерации сайта как часть моего инструмента сборки. Главный недостаток фреймворков, таких как Next.js и Gatsby, заключается в том, что вы заперты в их фреймворке. Я бы предпочел остаться с Create React App в качестве основного инструмента сборки.
Не имея большого опыта в этой области, я чувствую, что внешний инструмент, такой как CloudFront / flair, может иметь меньшую сложность. Вместо того, чтобы относиться к зарегистрированным и анонимным пользователям по-разному на моем сервере, было бы здорово отвлечь эту проблему в целом.