Typing indicator via ActionCable + Turbo Streams

9398
0

Typing indicators can be done without a complex protocol. I broadcast a small turbo stream replace to a typing_indicator target when a user starts typing, and another replace to clear it after a timeout. On the client, a Stimulus controller sends “typing” pings over a simple ActionCable channel. The server tracks last-typed timestamps (in-memory or Redis) and broadcasts to the room stream. This keeps the UI server-rendered and avoids building custom JSON renderers. The key is throttling: don’t send a message per keystroke—send at most once every second. Also be mindful of privacy: only show typing indicators in small groups (like a chat room) and don’t store typing events permanently.