⚡️ Hotwire dev newsletter - February 2023 edition

A curated, monthly roundup of the best Turbo (Native), Stimulus, and Strada articles, code, courses, and more by Joe Masilotti.

Welcome back to the ⚡️ Hotwire dev newsletter!

This month we have an exciting announcement from The Rails Foundation, official Turbo support from Devise, and a bunch of updates about upcoming conferences.

And it’s exciting to see two Turbo Native articles make it into the newsletter this month! Even if one of them was written by me. 😆 Anyone else wish there was more content around this topic?

Speaking of, this month I’ve been exploring a new approach to building iOS apps with Turbo Native. One that makes navigating between screens easier and more approachable for developers new to the framework.

The idea sparked from a call I had with a client. My first paid advisory call, too! 🎉 They are comfortable building a Turbo Native MVP but can’t connect the dots between different navigation workflows.

I’m excited to see where I can take this approach and how changes can be potentially merged upstream to the framework itself.

📣 Announcements

Amanda Perino is our new executive director for The Rails Foundation

Let’s all give Amanda a warm welcome and congratulations as the new executive director of The Rails Foundation! Amanda will lead the mission to improve the documentation, education, marketing, and events in the Rails ecosystem.

The announcement also hints at news about the first official Rails conference from the organization. 👀

Devise v4.9.0 released with improved Turbo support

After 1.5 years of workarounds, hacks, and monkey patching, Devise now officially supports Turbo out of the box. 🎉

To keep backwards compatibility, you can customize response status codes from Devise controllers. For compatibility with existing Hotwire apps, configure the following.

# config/initializers/devise.rb
Devise.setup do |config|
  config.responder.error_status = :unprocessable_entity
  config.responder.redirect_status = :see_other

What’s New in Rails 7.1

by Emmanuel Hayford @siaw23

This dot release has a ton of features I’m excited about! My favorites: support for common table expressions removes some boiler plate when dealing with Arel queries, stub_const is now built in to ActiveSupport::TestCase and doesn’t require a third-party gem, and #update_attribute! (note the bang) because I usually want to call #save!.

Ruby for Beginners book

by Andrea Fomera @afomera

A perfect book for beginners looking to learn Ruby. This books starts from zero and builds on the basics of the command line. It walks through installing your development environment and then into the basics of Ruby.

🎟️ Conferences and meetups

RubyConf Mini videos available

All 29 videos from RubyConf Mini are now available to watch on YouTube. This playlist, which includes RubyConf 2022, totals a whopping eighty videos. 44 hours of Ruby content to enjoy!

RailsConf 2023 registration is open

You can now buy your ticket to RailsConf 2023, taking place April 24-26 in Atlanta, Georgia.

I attended my first ever RailsConf last year in Portland and met a ton of amazing people. Folks I had only previously interacted with on Twitter and people I met for the first time. I’m hoping to make it out again this year.

Rails SaaS Conference registration is open

by Andrew Culver @AndrewCulver

Following up on the first ever Rails SaaS in Los Angeles last year, Andrew is running a second edition in Athens, Greece on June 1-2. The speaker list is live and registration is open.

Rails SaaS has some of the highest production quality of any conference I’ve ever attended. Take a look at the videos from Los Angeles if you need proof. 🤩

Friendly.rb, a new Ruby conference

Announced recently on Twitter, this new Ruby conference has a focus on community and will be kept to 100-ish attendees. It takes place in Bucharest, Romania on September 27-28. Early bird tickets are on sale now.

Ruby Conferences

by Jon Allured @jonallured

If you can’t make RailsConf or Rails SaaS this year then check out this list from Jon. It’s an aggregate of the upcoming Ruby/Rails/Hotwire conferences scheduled with links to buy tickets, submit proposals, and more.

Ruby Groups Around The World

by Dorian Marié @dorianmariefr

Looking for something a bit closer to home? This list from Dorian at thoughtbot is a regional directory of Ruby groups around the world, grouped by country, state, and city. Try ⌘F to search for your city.

🎙️ Podcasts

IndieRails - Episode #2

by Jeremy Smith @jeremysmithco, Jess Brown @bjessbrown, and Joe Masilotti @joemasilotti

I had the honor of being the first ever guest on the IndieRails podcast! Jeremy, Jess, and I talked about my first dev job, how getting let go kicked off my independent career, and how RailsDevs emerged.

Hotwiring Multi-Platform Rails Apps with Ayush Newatia

by Jared White @jaredwhite and Ayush Newatia @ayush

Fun fact: Ayush’s book, The Rails & Hotwire Codex, taught me about the hidden native routes built into the Hotwire Rails gem. Check out this episode to learn more about the book, Hotwire development, and why “vanilla” is awesome.

Code and the Coding Coders who Code it - Episode #17

by Drew Bragg @DRBragg and Joe Masilotti @joemasilotti

Drew and I dove into how I build in public, what it took to get RailsDevs off the ground, and how I combat burnout when I’m struggling to get stuff down.

📱 Turbo Native

Bringing Card Table to the small screen

by Jirka Hutárek

The latest 37signals dev blog is all about mobile. Jirka breaks down how they migrated a Kanban board from desktop to small screens.

A screen like this requires high-fidelity interaction. So they went native first then filled in the gap for mobile web with an MVP-like implementation. Another great example of bringing a Rails app to iOS/Android with Turbo Native!

Progressively enhanced Turbo Native apps in the App Store

by Joe Masilotti @joemasilotti

Here’s how 6 businesses are using Turbo Native to make high-fidelity mobile apps with native SDK integrations. Offline access, instant loading home screens, geofencing, and more. These apps tap into the power of the operating systems in ways that aren’t possible with “just” a mobile website.

🧑‍🏫 Tutorials

Advanced Turbo Streams in Hotwire

by Pete Hawkins @peteyhawkins

A quick and practical example of how to use a Turbo Stream to update content on a page asynchronously. Pete uses a checkout flow with a “payment processing” page to illustrate his point. After kicking off a background job (sleep 3 😆) the processing page automatically renders the success message, all without a redirect.

Create a drag and drop sortable list using Hotwire

by Pete Hawkins @peteyhawkins

Another five minute video from Pete, this time using Sortable.js and the acts_as_list gem to create a drag-and-drop list powered by Hotwire. The video includes the Stimulus controller to wire up the library as well as the Ruby code needed to receive and post updates to the database.

A quality of life Stimulus.js controller

by Spinal CMS @SpinalCms

A little Stimulus controller that makes filling out repetitive forms a little less painful.

When running in development, it adds a button to the page when a form is found. When clicked it fills in number, email, and password fields with random data. Perfect for speeding up manual testing! 🏎️

Joe Masilotti
@joemasilotti joe@masilotti.com