у тебя 2 виртуальных хоста допустим на nginx
на одном backend который отдает данные в формате json
на втором статика frontend ( html + js ) которая дергает json у backend
когда пишешь фронтенд у тебя все удобно разнесено по модулям, есть шаблонизатор как на backend, роутер и тд
модалки и слайдеры тебе предоставляет css фреймворк (bootstrap, foundation, bulma и тд), только классы динамически с помощью js подставляй
что бы понять глянь этот курс по angular 1 (не особо актуально, но займет всего 3-4 часа):
https://www.codeschool.com/pages/angular-1-vs-2
потом с рутрекера на выбор:
Vue JS 2 - The Complete Guide (incl. Vuex)
или
Angular 2 - The Complete Guide
вот еще по vue бесплатное:
vuecasts.com