Short Ruby Newsletter - edition 125

The one where Andy Croll launches Ruby-themed t-shirts, Matt Swanson shares their GOAT pattern for Hotwire apps and you can learn about Array#bsearch from Kevin Lou

Table of Contents

(ad)

Pagecord: Independent Blogging for a #NoSocial World

Pagecord is an independent, free and open-source (micro)blogging platform for a #NoSocial world. Publish effortlessly to your own blog — readers follow via RSS or email.
No ads. No tracking. No VCs. No doomscrolling. Just writing, on your terms.

Why Pagecord?

Independently owned & open-source
Publish by email (or use the in-app editor)
Use your own domain
Email subscribers & automated weekly digests
Automatic media embeds (YouTube, Spotify, etc.)
Post upvotes
Built with Ruby on Rails ❤️

Short Ruby readers can get the first year of Pagecord Premium for only $12 (then $20/year) using the code SHORTRUBY at checkout. 

🚀 Launches and discounts

🚀 Andy Croll launched a Ruby-themed merch store

👕 Grab one from rubytshirts.com

📅 Events

📅 Balkan Ruby announced their complete lineup for the upcoming event 🤩

📅 Rails Conf announced the availability of Supporter Tickets for Rails Conf 2025

🎟️ Here you can find the tickets: RailsConf 2025 Tickets

Source: @railsconf

👉 All about Code and Ruby

👉 Max Bernstein, Maxime Chevalier-Boisvert published an article about Interprocedural Sparse Conditional Type Propagation (check also the Github repo that shows a tool they built for this article):

👉 Henry Maddocks published a new article about Beginners Guide to Ruby on Rails Performance: Part 1 (you can also read part 2 here)

👉 Jean Boussier published a new article about What’s The Deal With Ractors?

💻 Code Samples

💻 Matt Swanson shared a Hotwire pattern using components and turbo_stream for better updates, instead of partials

Source: @_swanson (read it on Threadreader app)

He continued with more code samples demonstrating its usage;

Source: @_swanson (read it on Threadreader app)

💻 David Heinemeier Hansson suggested simple local CI can be sufficient, citing HEY’s recent setup

Source: @dhh (read on Threadreader app)

And he also posted some stats based on the setup ⏳

Source: @dhh (read on Threadreader app)

Mark Hesketh shared a similar script in response to DHH’s post

Source: @markahesketh (read it on Threadreader app)

💻Cédric Delalande shared how Ruby’s standard library can replace Dry::Struct

And Brandon Weaver added about the benefits of using Dry::Struct:

Source: ‪@baweaver.bsky.social

💻 Peter Bhat Harkins shared a handy Ruby irb snipped for identity/copy debugging

Source: @push.cx

💻 Alex Yarotsky shared a PostgreSQL trick for faster Rails JSON serialization 🔧

️💻 Kevin Luo shared a code sample about Ruby’s built-in method for binary search operations

👀 For more details, go and check out the full article version: Ruby Binary Search

Source: @kevinluo201

️💻 Ruby Cademy shared an example of Static Model in Rails for configuration management 💡

Source: @RubyCademy

Source: @RubyCademy

💻 Lucian Ghinda posted a thread about the evolution of writing Ruby code (the code has a typo as it should be url: String => url)

📲 You can read the entire thread on Bluesky for more details or on the blog

💻 Ismael Celis showcased a two-step workflow pattern using commands, events and reactions in Ruby

️💻 Ngan Pham shared how Gusto runs Brakeman without including it in the Gemfile 🔧

Source: @nganpham

️💻 Deepak Mahakale shared a tip for setting up basic authentication in Rails

️💻 Ruby Cademy shared a tip on creating reusable form components

Source: @RubyCademy

️💻Ismael Celis wrote a thread about mutable vs immutable data in the context of effective event handling

📐 Thinking about Code Design

📐 Nithin Bekal shared that Sorbet added support for experimental RBS comments

⛓️ You can read all the details here: rbs-support

📐 Ryan Bates reflected on preferring stateless class methods over traditional OOP

Source: @rbates.dev

and Jorge encouraged him to expand on his perspective in the near future ✨

Source: @jorgemanru

📐 Chris Oliver asked the community about the hardest aspects of Hotwire

Source: @excid3

Here are some of the replies 📞 (go and read the replies on Bluesky or on Twitter)

Source: @_swanson

Source: @zg_dev

Source: @KellySutton

💡Around code (news, findings, books, and more - all about Ruby)

💡 Nauman Tariq asked his network about their preferred charting libraries

Here are some community choices:

❤️ Why Choose Ruby and Rails

❤️ Mikel Lindsaar shared his appreciation for his dedicated team

Source: @lindsaar

❤️ Djah shared his joy of rediscovering Ruby after spending time in JavaScript development

Source: @Djahlor

❤️ Avi Flombaum emphasized Ruby’s continued relevance despite the dominance of other languages

Source: @aviflombaum

and Michael Chaney agreed Ruby’s community is a major strength 💪

❤️ Joe Masilotti expressed his love for Hotwire, highlighting the efficiency and simplicity of Ruby on Rails

Gems, Libraries, Tools and Updates

🆕 New Gems and Repos

🆕 Andrea Fomera created a new gem: solid_cache_dashboard

Source: @afomera.dev

🆕 Henrik Hauge Bjørnskov created a new gem for Cloudflare Turnstile integration with Rails: turnstiled

Source: @henrik.fyi

🧰 Updates

🧰 John Nunemaker announced a new version of Flipper 1.3.3

🧰 Bozhidar Batsov (a.k.a. Bug) announced a new release of RuboCop 1.73

🧰 Justin Bowen announced an update for Active Agent

🤝 Jorge Manrubia shared an insight about software development

Source: @jorgemanru

🤝 Jason Swett posted his thougs the side effects of “tidy“ code

Source: @JasonSwett

More content: 📚 🗞 🎧 🎥 ✍🏾

🗞 Newsletters

🗞 Andrey Eremin published a new edition about Static Ruby Monthly | Edition 2, February 2025

🗞 Ruby Weekly published a new article about A fresh way to package Ruby apps as binaries

🗞This Week In Rails published a new article about Ignoring indexes in MySQL has never been so easy…

🗞 Hotwire Weekly published a new article about Week 09 - Picture in Picture Videos, Hotwire Native Deep-links, and more!

🗞 Awesome Ruby Newsletter published a new article about 💎 Issue 458 - Why Ruby on Rails still matters

🗞 Ruby Central published a new article about The Ruby Central README: February 2025 Newsletter

🎧 Podcasts

🎧 Jason Swett shared a new podcast: The Code with Jason Podcast 250

🎧 Brendan Buckingham and Ryan Frischt published a new podcast: Navigating the Freelance and Product Development Landscape with Jason Swett

🎧 Joël Quenneville published a new episode of The Bikeshed: 456: Typescript with Jimmy Thigpen

🎧 Remote Ruby published two new episodes Annotating Models to Esbuild Challenges and Cyberpunk, Vite and Ruby Releases

🎥 Videos

🎥 Cameron Dutro posted a new video with his development experience: Neato Demo

🎥 Andy Maleh published a new article about Montreal.rb February 2025 Design Patterns in Ruby

✍🏾 Articles

What’s new 🆕

🆕 Avo published a new article about Building an InertiaJS app with Rails

🆕 Rails Designer published a new article about Create a Animated Counter in Stimulus

🆕 Bill Tihen published a new article about Rails: Table Filtering & Sorting

🆕 Jean Boussier published a new article about There Isn’t Much Point to HTTP/2 Past The Load Balancer and about What’s The Deal With Ractors?

🆕  Max Bernstein, Maxime Chevalier-Boisvert published a new article about Interprocedural Sparse Conditional Type Propagation

🆕 Mateus Pereira published a new article about A Tale of 3 Aliases

🆕 Rails Designer published a new article about Alternative to Ruby's Monkey Patching

🆕 Olly Headey shared an article about Migrating the Pagecord Rails app from AWS to Hetzner

🆕 Chandra Shettigar published a new article about Building Real-time Apps with Rails 8, Hotwire & ActionCable in Production

🆕 Daniel Lempesis published a new article about Advanced Queries in ActiveRecord

🆕 Harsh patel shared a new article about Essential Security Best Practices for Ruby on Rails

🆕 Andrey Novikov shared his slides about Generating OpenAPI schema from serializers throughout the Rails stack

🆕 Alexey shared a new article about Building a Multi-Connection Redis Server with Ruby

🆕 Dennis Paagman published an article about Deep link into apps with Hotwire Native and universal links (iOS)

🆕 Brad Gessler published a new article: Compile Ruby apps with Tebako

🆕 Mika Henriksson published a new article: Customizing Trix Editor with DaisyUI

🆕 Daniel Schoppmann published a new article about Use Rails I18n for more than translations

🆕 Camillo Visini published an article about Phlex for Rails Emails: Action Mailer without ERB

How-TOs 📝

📝 Sami Birnbaum and Valeria Graffeo published a new article about about Zero-downtime with Rails credentials part III

📝 Dennis Paagman published a new article about Deep link into apps with Hotwire Native and universal links (iOS)

📝 Anusree Anilkumar shared a new article about Jekyll Github Pages Website - DEV Community

📝 Davide Santangelo shared a tutorial about Building a simple URL Shortener with Rails 8: A Step-by-Step Guide

📝 Jon Sullivan published a new article about Using Typora as a custom Buttondown front-end

📝 Barry Hess published a new article about Fixing Broken Action Text Images in Atom Feeds

✍️ Bozhidar Batsov shared a new article: Automate the Creation of GitHub Releases

✍️ Test Double Blog published a new article about Want top talent and diversity? RTO mandates aren't the answer

Reply

or to participate.