Я тоже бэк :) Когда возник вопрос "для себя" делать простой фронт, попытался изучать React как самый популярный. Но чёт не осилил, какой-то он предельно странный. А вот Angular зашёл! Много слышал что он очень сложный, но я особых сложностей не узрел, по крайней мере для моих примитивных задач. Говорят, Angular заходит именно бэкам т.к. у нас нет проблем с основами ООП.
Я думаю что фронт лучше делать именно на фронтовых фреймворках чем на Java-шаблонизаторах (таймлиф, мусташ и пр.). Во-первых, их (шаблонизаторов) несколько и непонятно какой учить. А на фронте 3 фреймворка и все популярны. Потом - ты получаешь ещё одну специальность, пусть и на примитивном уровне. Далее - тренируясь с "настоящим" фронтом, ты начинаешь лучше понимать что нужно фронту и, соответственно, лучше пишешь бэк.
Я учил Angular по курсу Владилена Минина. Правда, он довольно старый (по 8-9 версии, а сейчас актуальна 14), но в целом актуальный. Плюс и минус этого курса - автор объясняет не "академично", а исключительно на примерах. Минус - тяжело потом что-то искать в официальных доках Ангуляра, просто не знаешь как формулировать запрос. Плюс - зная как должен выглядеть твой фронт, ты практически сразу начинаешь его писать (конечно, самые основы HTML/CSS знать надо).
Удобно писать и отлаживать бэк и фронт отдельно. А запускать фронт "на проде" можно как на отдельном сервере (Nginx, Apache), так и "заэмбедить" в Jar-файл и тогда он будет работать на "встроенном" сервере (Tomcat, Netty).
ЗЫ: да, учил "для себя", но активно использую по работе :))