Бэкенд на Java обычно делают отдельно от фронт-энда по нескольким причинам:
Различие целей сборки. softwareengineering.stackexchange.com Задачи сборки фронт-энда (конкатенация, минификация, тесты фронт-энда, предварительная обработка CSS) отличаются от целей бэкенда (компиляция Java-кода, прохождение бэкенд-тестов, развертывание на сервере непрерывной интеграции). softwareengineering.stackexchange.com
Удобство развертывания. softwareengineering.stackexchange.com При внесении изменений в файлы JavaScript или HTML в репозиторий Git инструмент непрерывного развёртывания не сможет определить разницу между коммитами фронт-энда и бэкенда, поэтому будет нужно перестроить и повторно развернуть весь проект. softwareengineering.stackexchange.com
Разное назначение частей общего сервиса. ru.stackoverflow.com Например, если бэкенд отдаёт данные не только для сайта, но и для мобильного приложения, его можно сделать отдельно. ru.stackoverflow.com
Примеры полезных ответов Поиска с Алисой на вопросы из разных сфер. Вопросы сгенерированы нейросетью YandexGPT для актуальных тем, которые определяются на базе обобщённых запросов к Поиску с Алисой.