0:00
/
0:00
Transcript

My failed live stream yesterday 😅

Yesterday I hosted my first live stream on Substack. And it was kind of a failure.

Yesterday I hosted my first live stream on Substack. And it was kind of a failure.

Who would have thought streaming in 2025 could be so difficult! Not me. 🤪

So, what went wrong? In short, my screen sharing feed kept freezing. I think this has to do with one of two things:

  1. I have something misconfigured in OBS

  2. Substack’s RTMP connection is still in beta

Oh well, there’s always next time… right?

Better Bridge Components

So, what did I actually talk about on stream? I ran a little experiment to see if I could build better bridge components.

To get a native UI element on the screen currently requires:

  1. HTML markup

  2. Stimulus controller

  3. Native Swift/Kotlin

What if we could do that with just Ruby? That’s what I explored.

And by the end of the stream I had a proof-of-concept working. To add a native tab bar to your iOS app would only require the following Ruby code:

render HotwireNative::TabBar.new(tabs: [
  {
    title: “Comments”,
    path: comments_path,
    ios_image: “bubble.right”
  },
  {
    title: “Posts”,
    path: posts_path,
    ios_image: “text.page”
  },
])

Under the hood, this implemented all the necessary bridge component pieces. But Rails developers would only deal with this high-level API!

Taking this further, I could see integrating first-party bridge components into Hotwire Native and maybe even Rails itself. Or exposing a small Ruby gem that mimics the code above.

And if they don’t become first party, then adding them to my bridge component library seems like the obvious next step!

Where were all the comments?

A huge shoutout to Jonas who texted during the stream to let me know my screen had frozen. I kind of expected to see the chat somewhere in OBS… but probably should have read the docs first. 🙈

Next time I I’ll try StreamYard instead of OBS. That will at least remove one of the two variables. Stay tuned!


Will you join my next live stream? What should I cover? Let me know!

Discussion about this video

User's avatar