意見
ReactとHotwireの大きな違いは、CSR中心かSSR中心かです。それぞれがどのような長所を持ち、どのような短所を持つかは、かなりの部分がそこで決まるように思います。ここではいくつかのポイントを取り上げて、議論したいと思います。
CSRはJSON APIを必要としていますが、これの作成およびメンテナンスには意外と多くの工数がかかります。いかに議論が活発に行われ、ツールが作成されているかという事実から、JSON APIの作成とメンテナンスが決して容易ではないことが伺い知れます。
Reactを使う限りはJSON APIは必須になります。SPAであればもちろんですが、Next.jsのようにSSRがあったとしても、(Hydrationのために)裏ではJSONが自動的に作成されていますので、JSXに渡すオブジェクトはシリアライズできるものに限られます。
一方でHotwireのようなSSRの場合はJSON APIが不要です。ERBの中でドメインモデルをそのまま扱うことが可能で、そのメソッドを呼び出せます。ドメインモデルをシリアライズしなくても、あるいはシリアライズできなくても、ERBでは自由に使えます。
つまりアプリ画面の要件によりJSON APIが複雑かする場合、その画面はReactのようなCSRではなく、HotwireのようなSSRで作った方が良いということになりそうです。
HTMLをサーバでレンダリングするSSRの場合、必然的にサーバ通信が必要になります。サーバ通信ができない、もしくは遅延を嫌ってサーバ通信をしたくない局面では、SSRだけに頼ることはできません。
サーバ通信できなくても正常に動作するアプリを作成したい場合は、SSRは不適です。HTMLをサーバで作成しますので、サーバ通信をしなければ画面に何も表示できないためです。
またサーバ通信をする場合でも、CSRであれば複雑な楽観的UIも作成しやすいです。
このようなケースにおいては、CSRを前提として開発されたReactが優れています。