We went down a similar path (using Hotwire, non the less!) and got to many of the same conclusions. It is impressive to see what CSS does and how many of the headaches are gone and :has is very powerful.
Alas, after several months we tore it all out and went back to React+Tailwind.
We still use native HTML popovers and :has selectors and other things we've have learned.
But writing UIs across three files (template, stimulus controllers, css) is such a tremendous bore. Concepts that belong together are spread out and I needed to be diligent with placing attributes and classes and remember to remove them all when removing functionality again. Obviously no compile-time checks, just magic strings and runtime errors. The Hotwire docs were also surprisingly hard to work with. All in all a lot of friction.
This just was not worth it.
inb4 rage, it is possible to use React for the UI alone and pass in fully formed view models, use form submissions and links.
We went down a similar path (using Hotwire, non the less!) and got to many of the same conclusions. It is impressive to see what CSS does and how many of the headaches are gone and :has is very powerful.
Alas, after several months we tore it all out and went back to React+Tailwind.
We still use native HTML popovers and :has selectors and other things we've have learned.
But writing UIs across three files (template, stimulus controllers, css) is such a tremendous bore. Concepts that belong together are spread out and I needed to be diligent with placing attributes and classes and remember to remove them all when removing functionality again. Obviously no compile-time checks, just magic strings and runtime errors. The Hotwire docs were also surprisingly hard to work with. All in all a lot of friction.
This just was not worth it.
inb4 rage, it is possible to use React for the UI alone and pass in fully formed view models, use form submissions and links.