Если коротко, то в наши дни, по сути, бэк нужен для двух вещей - отдать статику для SEO, и отдавать данные по API (REST, GraphQL, и иже). Отдавать может как по AJAX (fetch, xhr, axios, ...) так и по вебсокетам.
Фронт, в свою очередь, если SEO нужно, изоморфно рендерится беком (вебпак?), потом отдается и связывается на клиенте. Если SEO не нужно (закрытое SPA) то отдается минимальный бойлерплейт и весь UI генерится динамически, например React.
Разработка вся удобная, модульная, собирается вебпаком в бандл.