The backpack is closer to a web app than it is to a webpage, I believe. But yeah, we just have fundamental differences in the way the stuff should be organized. I think that if it will ever be presented, it should lives with the HTML – JavaScript has no business keeping track of that. Someone unfamiliar with the codebase should not have to dig through JavaScript to figure out the HTML structure of any element that ever appears in the page.

I'm not saying that DOM injection is wrong all of the time end-of-story (after all, that's what client templating languages do) – I just believe that it's less maintainable, and a violation of the separation of concerns, to create HTML structures purely from JS and stick them into the DOM, especially when also trying to maintain the related CSS.

I'm also not saying that the original GET request needs to contain all of the necessary templates to display all aspects of the page – it's perfectly legit to do XHR requests to pull down additional templates as needed, though that is an optimization concern and should be benchmarked to see if the savings are enough to offset the cost of the additional HTTP requests.