For the web projects I initiate, I'm settling into what I call the #mvjs framework (Minimum Viable JavaScript) - the least JS I can get away with.
This brings me to use a subset of:
- HTMX (only if I need partial page reload)
- alpinejs (only if I need some reactivity that only makes sense on the client side)
- vanilla javascript (for the rare cases I need to complemenf the former)
Thanks @carlton for helping me discover Alpine