Last week I read SPAs were a mistake. I used to agree with the author, thinking that we had stumbled down the wrong path in innovation with Single page applications (SPAs) versus multi-page applications (MPAs).
But I've seen the light.
SPAs can encapsulate complex state for better caching, faster loads, and more native UX in browsers. Things that we load from the web went from web pages to web applications.
Yes, it's more complex. Yes, there are new problems that didn't exist in MPAs. Yes, there are some applications that don't need the complexity of a SPA. But for the rich UIs that users have come to expect and the composability that developers want, the complexity is necessary.
There are many backend developers who brag about disabling JavaScript from their browser. For better or worse, JavaScript has consumed all other layers in the web application world – CSS-in-JS, JSX instead of HTML, even the configuration languages for much of the frontend tooling is done in JS. Not without its quirks, it's simple to get started with and expressive enough to work.