Languages

Hotwire/Turbo

SPA-like UX without the JavaScript complexity

Assessment
Adopt
Ring
status
Languages
Quadrant
category
2025-11
Updated
last eval
3
Related
technologies

Why Adopt

Hotwire (HTML Over The Wire) lets you build modern, reactive UIs while keeping your logic on the server. It’s the antidote to JavaScript fatigue.

Core Components

  1. Turbo Drive - Makes all navigation instant via AJAX
  2. Turbo Frames - Decompose pages into independently-updating sections
  3. Turbo Streams - Push HTML updates over WebSocket
  4. Stimulus - Modest JavaScript for behavior that needs it

My Experience

JoyCork’s entire dashboard is built with Hotwire. The analytics update in real-time via Turbo Streams, forms submit without page reloads, and the whole thing is maybe 200 lines of custom JavaScript.

Compare this to a React app where you’d need:

  • State management (Redux/Zustand)
  • API client (React Query/SWR)
  • Form library (React Hook Form)
  • Routing (React Router)

That’s 4 dependencies and thousands of lines of code for the same functionality.

The Mental Model Shift

The key insight is: HTML is the API response format.

Instead of:

  1. Client requests JSON
  2. Client renders JSON to DOM
  3. Client manages state

Hotwire does:

  1. Server renders HTML
  2. Turbo swaps HTML into DOM

Your server is the single source of truth. No state synchronization bugs.

When to Reach for React

  • Complex client-side state (think Figma, Google Docs)
  • Offline-first applications
  • Native mobile apps (React Native)
  • Team already fluent in React

For everything else, Hotwire is simpler and faster to build.

Quick Facts

My Verdict
The right default for Rails applications
Use Cases
Interactive dashboards Real-time updates Form handling Infinite scroll

Stay updated on my tech choices

Get insights on tools, frameworks, and technologies I'm evaluating for my builds.

Subscribe Free