Honestly? I've never had a better developer experience than in the late 2000s with backend-rendered templates with a sprinkling of jQuery for dynamic bits.
It was fast, accessible, worked in every browser, and if you did things right (caching, streaming the header before the body is ready, etc.), navigations felt seamless. We've still got some of these running that haven't been touched in a decade (other than updating dependencies and changing company themes).
But, when I really need the interactivity of a JS framework, my go-to is Vue, though I am very, very interested in the approach used by Svelte. I also really like Web Components with lit-element, but I feel there's still a bit of work to be done by the community to reduce the amount of plumbing needed to build a full app with them.
Honestly? I've never had a better developer experience than in the late 2000s with backend-rendered templates with a sprinkling of jQuery for dynamic bits.
It was fast, accessible, worked in every browser, and if you did things right (caching, streaming the header before the body is ready, etc.), navigations felt seamless. We've still got some of these running that haven't been touched in a decade (other than updating dependencies and changing company themes).
But, when I really need the interactivity of a JS framework, my go-to is Vue, though I am very, very interested in the approach used by Svelte. I also really like Web Components with lit-element, but I feel there's still a bit of work to be done by the community to reduce the amount of plumbing needed to build a full app with them.
Now, to get really controversial: nothing's better than an page with just the standard header and an iframe containing the body.
Except maybe
<frameset>
...