I've been researching JS frameworks recently for a personal project. Like you, my experience is with backend, old-school Django-style HTML multi-page apps, with some interactivity in specific parts of a page.
Things I thought that were cool and were genuinely exciting:
- https://htmx.org - this is my favorite option. It's primarily meant to replace AJAX requests that dynamically update the DOM (which is already a big win IMO). For more complex UI interactions, you'll still need JS or Hyperscript.
- https://hyperscript.org - wasn't immediately sold on this one like with HTMX. It's built by the same people as HTMX though. My favorite thing about it is it makes async transparent (no callback hell)
- Svelte, SolidJS - lumping these together since they look about the same from my point of view. Looks very easy for someone like me to build complex dynamic UIs. But still feels a bit too heavy for my tastes (Default setup is for full-blown SPAs)
- Go - awesome standard library. Lots of tutorials and easy to find answers. I needed to adjust to the lack "one framework to rule them all".
- Clojure/ClojureScript - Like Go, there's no "the one framework". Being able to use the same language for backend/frontend, including code sharing, is pretty sweet.
In the end, I chose Clojure + ClojureScript. I aws already familiar with Clojure, and with some wrangling/trial-error, I managed to get a ClojureScript setup that lets me write small interactive components that I can embed into specific parts of plain old .html files.
I intend to use HTMX for AJAX stuff, and ClojureScript for more complex interactivity. Haven't gotten very far yet, but that's the plan.