Как это устроено

Статическая часть работает и без базы: страницы отдаются как есть, а API просто отвечает ошибкой — фронтенд это обрабатывает.