Hotwire è la scommessa di Rails: interfacce reattive inviando HTML invece di JSON, con pochissimo JavaScript. Il pezzo centrale è Turbo.
<%# la lista si aggiorna da sola quando cambia %>
<turbo-frame id="launches">
<%= render @launches %>
</turbo-frame>
# il controller trasmette un aggiornamento a chi guarda
def create
@launch = Launch.create!(launch_params)
render turbo_stream: turbo_stream.prepend("launches", @launch)
end
I Turbo Frame isolano porzioni di pagina che si aggiornano da sole; i Turbo Stream spingono frammenti di HTML dal server (anche via WebSocket) e il DOM si aggiorna senza reload.
Il vantaggio: ottieni gran parte della reattività di una SPA restando in Rails, scrivendo view invece di componenti. Per molte app CRUD è più che sufficiente, e ti risparmi un intero frontend separato.