I was there for the first wave of SPAs, I even learned angularJs and Knockout. It did feel like a major atep forward, being able to make highly interactive applications. However, things quickly went off the rails when the tools stopped being about managing heavy client state, and became the default for everything, even when it ment using JavaScript to build extremely basic functionally browsers did natively with html, but extremely worse(e.g. navigation). The modern Web really is a victim of hype and trends.
Unless your app needs to work offline, or you have to manage dozens of constantly changing client side data points concurrently, your site doesn’t need to be a big heavy js framework. My rule is if it looks like Google Maps, you need a SPA. if it looks like Gmail you need REST/HATEOS. and if it looks like google’s mainpage, you need a server side rendering.
At some point you might see the light, and go back to making your websites simpler, but Im not hopeful. Until then I’m building the majority of things with HTMX and alpineJs.
I was there for the first wave of SPAs, I even learned angularJs and Knockout. It did feel like a major atep forward, being able to make highly interactive applications. However, things quickly went off the rails when the tools stopped being about managing heavy client state, and became the default for everything, even when it ment using JavaScript to build extremely basic functionally browsers did natively with html, but extremely worse(e.g. navigation). The modern Web really is a victim of hype and trends.
Unless your app needs to work offline, or you have to manage dozens of constantly changing client side data points concurrently, your site doesn’t need to be a big heavy js framework. My rule is if it looks like Google Maps, you need a SPA. if it looks like Gmail you need REST/HATEOS. and if it looks like google’s mainpage, you need a server side rendering.
At some point you might see the light, and go back to making your websites simpler, but Im not hopeful. Until then I’m building the majority of things with HTMX and alpineJs.