⚡️ Hotwire dev newsletter - January 2022 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! If you check out one thing from this edition I recommend the Remote Ruby interview with DHH on Rails 7. It’s so inspiring to hear someone with this much passion for Rails talk about the framework.

I’m linking to Reddit for the first time 😱 with a surprisingly healthy conversation on Hotwire vs. JavaScript front-end frameworks. There’s also some great tutorials this month like how to build authentication from scratch, side-by-side code comparisons of Rails 6 vs. 7, replacing Rails UJS, and more.

Oh! I’ve been building RailsDevs in public for the past few months and I’d love if you could check it out. It’s a reverse job board for Rails developers looking for their next gig. The best part? It’s open source and contributions are welcome!

📰 News

Hotwire vs React/Vue/Alpine/Whatsoever

by Shino Kouda @ShinoKouda

A (surprisingly) healthy Reddit discussion on Hotwire vs. JavaScript front-end frameworks. Yes, it was posted on the Rails subreddit so there is a bit of bias, but it’s still a conversation worth checking out.

Turbo Laravel hits 1.0

by Tony Messias @tonysmdev

The PHP port of Turbo for the Laravel framework has officially hit 1.0! I believe this is the first non-Rails implementation of anything Hotwire to reach this milestone.

🎙📹 Podcasts and videos

David Heinemeier Hansson on Rails 7.0, Hotwire, and the future of Rails

by Remote Ruby @remote_ruby

DHH joins the Remote Ruby crew again and gushes over the new Rails 7 features, especially the new answers on the front end. I find it inspiring to hear so much passion coming from someone who’s worked on an open source framework for this long. There’s also a recording of the live stream available.

Migrating from Rails UJS to Hotwire: Data Method, Confirm, and Disable With

by Chris Oliver @excid3

I linked to a similar tutorial on this last month, but if you are more of a visual learner than this video is for you. Chris covers confirmation dialogs, disabling form buttons on submit, and more.

📝 Articles

Hotwire in the real world.

by Finnian Anderson @developius

A deep dive into the architecture decisions, pitfalls, and wins of using Hotwire in non-trivial production application. I especially love the section on how important authorization is with Turbo Streams. Finnian recommends using Pundit and covers how they are using it in their app.

🎓 Tutorials

Rails Authentication From Scratch

by Steve Polito @stevepolitodsgn

Did you know that the Devise README recommends not using Devise if you are building your first Rails application? In this ambitions project, Steve walks through every single step needed to roll your own secure authentication system. It’s already received a major update since 1.0 based on reader feedback.

New Rails 7 features, Before and After

by Zakaria Fatahi @zakaria_fatahi

An exhaustive list of the changes you can take advantage of in Rails 7. What I love about this is everything has two code examples, which makes it easy to understand exactly where you need to make your own updates.

Breaking out of Turbo Frames

by Lewis Youl @lewisyoul

Clicking a Turbo Frame link can be set to render content inside their own frame or to navigate to a new page. Lewis covers how to wrap multiple links to do the same thing, and how to create an exception for just a few. Useful stuff if you have a lot of conditional logic on the navigation of your frames.

button_to conditionally respond with HTML or a Turbo Stream

by Yaroslav Shmarov @yarotheslav

I’ve been using the respond_to block to fork controller rendering for a while. But what’s exciting about this tutorial is the form: option on button_tag. This lets us set the data type and ensure it is handled as a Turbo Stream.

👩‍💻👨‍💻 Jobs

Hire David Sanders

Chicago based Rails dev. with 5+ years of experience in team management, technical project management, and full-stack web application development.

Hire Rinas Muhammed

I have over seven years of building, scaling, and maintaining web applications. I am currently leading a team of eight and looking for a new role as a mid-senior level programmer.

Hire Mihir Kumar Thakur

I am a senior software developer with 7 years of experience building and designing, deploying web apps with Ruby on Rails.

And finally…

Jumpstart Rails scaffolds now include realtime updates out of the box, powered by Turbo. These save a ton of time when building out new CRUD - and now they are practically supercharged!

Joe Masilotti
@joemasilotti joe@masilotti.com