I used Rails+Turbo+Alpine in two projects and agree with you.
However, especially with Turbo morph, I often need to manually re-run effects after a page is refreshed using morphing. What’s your general approach to this?
You can keep your frontend state in the form input. It can be simple hidden input with json data inside it. And when you do request, you can use value of the input to restore/modify state of your block.