Теперь попробую описать работу самого приложения
На сервере express, он принимает http запросы. Если такого роута нет, то срабатывает прокси.
Роут есть -> данные из markdown страницы -> initial state, реакт компоненты -> html, потом в ejs шаблон и отдается полная html страница
Если почему-то js на клиент не загрузится (медленный инет, метро), сайт будет без интерактивностей, но полностью рабочим с живыми ссылками
Если js загрузится, то при нажатии ссылок будет загружаться json c контентом и настройками страницы и страница обновиться очень быстро
Ну и заработают отдельные интерактивные штуки, которые актуальны только на клиенте.