Realtime Rails connects Turbo, Stimulus, Action Cable, and Solid Cable in one working application. Start with normal Rails requests and move through broadcasts, private streams, presence, optimistic UI, reconnects, and the tests that prove the second browser actually updates.
10 chapters · Rails 8.1 · source code included · Agent Companion coming soon
Turbo, Stimulus, and Action Cable are straightforward in isolation. The problems show up when one feature crosses all three.
Switchboard is a small team chat application built to expose the problems that simple real-time demos skip. Messages need to reach other sessions, private streams need real scoping, reconnects need sane behavior, and the tests need to prove it all works.
A Turbo Stream can update the page. A broadcast can reach every subscriber. A Stimulus controller can own browser behavior. A custom Action Cable channel can move arbitrary data. The decision is where to draw the line.
The book keeps all of those decisions in one codebase: sender response versus broadcast, public versus private streams, optimistic state versus server-rendered state, reconnect behavior, and tests that have to update a second session instead of only returning a 200.
Each chapter builds on the same application, so later features have to work with the decisions made earlier.
Realtime Rails covers the choices that show up once the examples stop being isolated snippets.
Normal Rails knowledge is enough. The goal is to add live behavior without turning the application into two applications.
You have used a frame or Turbo Stream before, but the boundaries between Drive, Frames, Streams, Stimulus, and Action Cable are not yet automatic.
You want to see where Rails can keep interactivity and live state server-driven without pretending every browser interaction belongs on the server.
You need live updates, notifications, presence, or collaborative features without adding another application to deploy and maintain.
Now the problems are duplicate updates, stream scoping, reconnects, DOM identity, testing, and deciding when a custom channel is warranted.
The book, the working Switchboard source, product updates, and the upcoming Agent Companion.
The complete book in both formats, with updates delivered through Gumroad.
The working Switchboard code for comparing an implementation or jumping directly to a later chapter state.
Material updates when framework behavior changes enough to affect the patterns or examples in the guide.
Coming soon. A portable context pack for Codex, Claude Code, and other coding agents to adapt the book's patterns inside an existing Rails application.
Build the full feature once, then use the same approach in your own Rails app.
One-time purchase · PDF + ePub + source + updates
Get Realtime RailsFull refund by email if the book isn't useful. No time limit.
Enter your email for a complete sample chapter. It uses the same code and level of detail as the full book.
Rails basics are assumed. React, Vue, Node, Redis, and a separate frontend are not.
Comfort with models, controllers, views, routes, and running a Rails app locally is enough. For a broader Rails-from-the-ground-up guide, Build a SaaS App in Ruby on Rails 8 starts much earlier.
No. The book starts from modern Rails 8 defaults: Turbo, Stimulus, import maps, and Solid Cable. Custom JavaScript and different infrastructure are covered where they become useful.
Chat forces real-time problems to surface quickly: multiple sessions, private streams, presence, typing state, reconnects, and optimistic UI. The same patterns apply to dashboards, notifications, status changes, collaborative UI, and background-job progress.
A portable context pack built from the book's implementation patterns so Codex, Claude Code, and other coding agents can inspect an existing Rails application and adapt those patterns instead of copying the demo app. It is coming soon and will be added to the existing Realtime Rails product.
PDF and ePub, plus the chapter-by-chapter source code and product updates through Gumroad.
A full refund is available by email. No time limit and no hoops.