Week 40 - How does Turbo listen for Turbo Streams, detect Safari and iOS version, and more!
Discover the latest Hotwire insights, tutorials, and releases in this week edition of Hotwire Weekly!

Welcome to Hotwire Weekly!
Welcome to another, sligthy shorter, issue of Hotwire Weekly! Happy reading! 🚀✨
📚 Articles, Tutorials, and Videos
How does Turbo listen for Turbo Streams? - Sid Krishnan explains how Turbo automatically detects and applies Turbo Stream updates when a response includes <turbo-stream>
tags.
How to elegantly update other UI when a Turbo Frame is updated - Radan Skorić shares a Rails trick to update UI elements outside a Turbo Frame from a frame update. His turbo_aware_content_for
helper switches between content_for
and a matching Turbo Stream replacement to keep extra frame content in sync.
How to detect Safari and iOS versions with ease in 2025 - Evgeniy Valyaev on the Evil Martians blog details modern approaches for distinguishing Safari or iOS versions by combining feature detection, behavioral tests, and selective user-agent hints, especially since User Agents can be misleading or cloaked.
Visual loading states for Turbo Frames with CSS only - Rails Designer shows how to use the aria-busy="true"
attribute Turbo injects during frame loading to overlay a Loading…
message or spinner using pure CSS.
Async Modal on Rails with Native <dialog>
Element - Alexey Solilin shows how to build an asynchronous modal in Rails using Turbo Frames and the native HTML <dialog>
element. The method handles dynamic loading, focus management, and graceful fallbacks.
🧰 Libraries and Tools
reactionview - A new ActionView-compatible ERB engine with modern DX.
🎉 Releases
bridge-components v0.9.1 and v0.9.2 - A collection of bridge components for Hotwire Native apps.
shakapacker v9.0.0.beta.3 - beta.11 - Use webpack to manage app-like JavaScript modules in Rails.
herb v0.7.5 - Powerful and seamless HTML-aware ERB parsing and tooling.
Feel free to follow us on Twitter/X, Bluesky, Linkedin, or on Mastodon!
See you next week!