Hotwire as an alternative to a separate frontend framework
A large share of what teams build React or Vue frontends for is, at its core, a server-rendered page that needs to update parts of itself without a full reload: a form that submits without a page refresh, a list that updates when an item is added, a modal that loads its content on demand. Hotwire's Turbo handles this by sending HTML fragments from the server that replace or append to specific parts of the page, and Stimulus adds small, scoped JavaScript behaviors where a bit of client-side interactivity is still needed.
The result is an application that feels reactive to the user without a JSON API, a client-side state management layer, or a build step separate from the Rails app itself. We recommend this path for products where the interactivity is real but bounded, and reserve a full separate frontend for products where the client-side experience is genuinely complex enough to need its own state management and component architecture.










