If you do have a backend framework, then having the backend drive the dynamic updating is a pretty great way to go, so HTMX[1] is the least obtuse way of putting the most power in the hands of the backend. Really makes 'a light sprinkling of JS for interactivity' closer to reality than vanilla JS allows, without adding cognitive overhead.
[0]: https://svelte.dev/ [1]: https://htmx.org/
The book is a really quick and easy read. It’s pretty eye opening how productive, and effective, htmx can be with so little magic.
but for a large project still react.
Do you have any recommended learning resources on building with Lit?
Privately, I always go with vanilajs.
i set up routing with the views available and i write a class for each view. there is practically no boilderplate code. (eg what is $scope in angular is simply the class object itself in aurelia)
any class level function and variable is automatically made accessible from the html template. classes and templates are linked by sharing the same name: welcome.html, welcome.js, export class Welcome ...
while in angular you have to declare everything explicitly, aurelia mostly just figures it out by itself.