[HN Gopher] How does Turbo listen for Turbo Streams
       ___________________________________________________________________
        
       How does Turbo listen for Turbo Streams
        
       Author : sidk_
       Score  : 84 points
       Date   : 2025-10-13 21:39 UTC (6 days ago)
        
 (HTM) web link (ducktypelabs.com)
 (TXT) w3m dump (ducktypelabs.com)
        
       | hakunin wrote:
       | Nice deep dive. On a tangential point: nowadays Turbo Streams are
       | less needed in Rails, because of the way Turbo automatically
       | kicks in by default. And in most (not all) situations, backend
       | doesn't really save much time returning a piece of a page vs a
       | full page, since in most backends preparing data for response
       | takes 10s of milliseconds. So might as well just stick with
       | default, unless you know that you specifically need to serve some
       | granular change. While learning this stuff, I wrote a little FAQ
       | (where I was the frequent asker of questions) that clarifies some
       | things: https://notes.max.engineer/turbo-8-faq
        
         | cientifico wrote:
         | I wouldn't generalize it that much. There are few patterns
         | where Turbo Streams, subscriptions, and permanent frames still
         | make a lot of sense.
         | 
         | One classic case is user notifications - like the user icon in
         | the corner. That's perfect as a permanent lazy frame, with a
         | subscription watching for any user-related updates. This way
         | you don't have to think about updating that widget across
         | different pages, and you can centralize all user-related async
         | events in
         | 
         | one controller.
         | 
         | Another pattern is real-time dashboards. You never know which
         | part of the dashboard will change, and it's actually simpler on
         | the backend: you just track what was updated and push that
         | specific part. Clean and efficient.
        
           | hakunin wrote:
           | Yeah, these are examples of situations I was referring to,
           | where it makes sense.
        
       | bradgessler wrote:
       | I recently finished shooting a video course for Phlex and I found
       | that naming the Turbo Stream section at
       | https://beautifulruby.com/phlex#unit-5 was the most challenging
       | because of Turbo Streams and Turbo Broadcasts.
       | 
       | My recommendation: Turbo Drive & Pagemorphs are what most people
       | should use for most problems. Drive reduces flickering between
       | page loads and Pagemorphs list to channels on the server to
       | reload the page if something changed.
       | 
       | I think Turbo would benefit from positioning itself more closely
       | to Rails and simplifying the terminology. If you look at the
       | https://hotwired.dev website, you won't find Rails and you'll
       | find a bunch of words like Stimulus, Drive, Streams, Broadcast,
       | etc. The docs aren't entirely coherent either.
        
         | New_California wrote:
         | Exactly that.
        
         | cientifico wrote:
         | Been using Turbo (and Turbolinks before it) for 10+ years,
         | mostly outside Rails. It's awesome in that context.
         | 
         | Can't really see how making it more Rails-centric would help -
         | more likely it'd just cause a fork for everyone using Hotwire
         | without Rails/Ruby.
        
         | ruby89 wrote:
         | Any plans for purchase parity for South East Asia?
        
           | bradgessler wrote:
           | Shoot me an email, brad@beautifulruby.com
        
         | tomstuart wrote:
         | What do you mean by "Pagemorphs"? A quick Google search
         | suggests you're the only person using this term so it's hard to
         | know what you're recommending. I think it must mean e.g.
         | https://turbo.hotwired.dev/handbook/page_refreshes?
        
       ___________________________________________________________________
       (page generated 2025-10-19 23:01 UTC)