Мне кажется можно вполне разбить задачу на куски. Как пример, не так давно, мы делали выбор страны и города. Первая ошибка была отдавать на фронтенд весь контент прегенеренный, получилась страница весом несколько мегабайт. Заменили на аякс запросы получение списка стран и городов, получилось лучше, но не идеально. Так как несколько десятков тысяч городов без фильтрации вешали фронт. И итоге решили очень просто. Пока человек не выбрал страны, не показывать города. Выбрал страну, на сервер ушел аякс с запросом городов по этой стране, запрос получили, показали на фронте. Город изменили - все снова. Кэш на стороне сервера результатов запроса решает многие проблемы на ура. Думаю вам стоит найти зависимости и нет необходимости провалить в браузер такое количество информации