- Short Ruby Newsletter
- Posts
- Short Ruby Newsletter - edition 125
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

Source: @andycroll.bsky.social
π Events
π Balkan Ruby announced their complete lineup for the upcoming event π€©

Source: @balkanruby.bsky.social
π 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

Source: @moskitohero.bsky.social
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
π» Alex Yarotsky shared a PostgreSQL trick for faster Rails JSON serialization π§

Source: @AlexYarotsky
οΈπ» 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

Source: @lucianghinda.com
π» Ismael Celis showcased a two-step workflow pattern using commands, events and reactions in Ruby

Source: @ismaelcelis.com
οΈπ» 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

Source: @deepakmahakale
οΈπ» 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

Source: @ismaelcelis.com
π Thinking about Code Design
οΈπ Nithin Bekal shared that Sorbet added support for experimental RBS comments
βοΈ You can read all the details here: rbs-support

Source: @nithinbekal.bsky.social
π 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: @zackgilbert.com

Source: @_swanson

Source: @zg_dev

Source: @KellySutton

Source: @peterphillips.bsky.social
π‘Around code (news, findings, books, and more - all about Ruby)
π‘ Nauman Tariq asked his network about their preferred charting libraries

Source: @naumanthanvi
Here are some community choices:
Rails Charts - Rails Charts using eCharts from Apache
Chart.js - Simple yet flexible JavaScript charting library for the web
Apache ECharts - An Open Source JavaScript Visualization Library
Chartkick - Create beautiful JavaScript charts with one line of Ruby
Highcharts - Simply Visualize
β€οΈ 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 πͺ

Source: @MichaelDChaney
β€οΈ Joe Masilotti expressed his love for Hotwire, highlighting the efficiency and simplicity of Ruby on Rails

Source: @joemasilotti
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
πTodd Kummer to share his new creation: Filterameter: Simplify and Speed Up Development of Rails Controllers
πMatheus Richard published a new gem called rails-diff - Compare Rails-generated files with the ones in your repository
π Jonathan Rochkind published a new gem called bot_challenge_page - Show a bot challenge interstitial for Rails, usually using Cloudflare Turnstile
π Dominik Matoulek published a new gem called takagi - a Sinatra-like CoAP framework for IoT and microservices in Ruby.
π§° Updates
π§° John Nunemaker announced a new version of Flipper 1.3.3
π§° Joel Moss announced an update for delivered: Simple runtime type checking for Ruby method signatures
π§° Bozhidar Batsov (a.k.a. Bug) announced a new release of RuboCop 1.73
π§° Justin Bowen announced an update for Active Agent

Source: @tonsoffun.bsky.social
π€ 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: π π π§ π₯ βπΎ
π 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
π₯ Ken Greeff published a new video about Setting up custom domain for Fly.io and about Rails 8 + Zero Config Monitoring | Production Ready in Minutes
π₯ Jason Swett published a new video about Scrutinizing the Visual Design - Live Coding on SaturnCI and about Diagnosing a Performance Problem - Live Coding on SaturnCI
π₯ 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
π Henry Maddocks published a new article about Beginners Guide to Ruby on Rails Performance: Part 2 and about Beginners Guide to Ruby on Rails Performance: Part 1
π 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