- Short Ruby Newsletter
- Posts
- Short Ruby Newsletter - edition 135
Short Ruby Newsletter - edition 135
The one where EuRuKo has announced that their tickets are on sale, Rails World tickets will go on sale on the 13th of May, and Joel Drapper invites us to use the strict_ivars gem.

Table of Contents
(partnership)

Buy Tickets at balticruby.org
Thereβs no conference without attendees β and no community without its people.
We want as many of you as possible to join Baltic Ruby this year, so weβre introducing 1-day and 2-day passes, accessibility tickets, and fresh discounts on regular tickets. We truly hope this helps you find the time to come and have fun with friends in Riga!
Lineup: https://balticruby.org/lineup
Venue and accommodation: https://balticruby.org/location
Agenda: https://balticruby.org/agenda
π Events
π Ruby On Rails announced some updates about Rails World 2025. For more details, check out this blog β Rails World 2025: Two big updates
New ticket types, prices and release schedule - Tickets will be released on 13th May
Source: @rails
Also new this year: Rails at Scale Summit
Source: @rails
π Euruko announced the availability of tickets for this year event. Secure your spot now at β 2025.euruko.org

Source: @euruko
π All about Code and Ruby
π Ruby On Rails announced they've adopted the Ruby community guidelines for conduct

Source: https://rubyonrails.org/conduct
π Vishnu M published a new article in the series about Scaling Rails Rails about Tuning Puma max_threads Configuration with GVL Instrumentation
π David Morales published a new article about Rack for Ruby: The Complete Beginnerβs Guide
π You should check the new gem from Joel Drapper called strict_ivars - Make Ruby raise a NameError if you read an undefined instance variable
Joel also published a thoughtful article explaining the advantages of using this gem over other approaches that made Avdi Grimm gracefully deprecate his gem that set to solve the same problem differently. I still recommend reading his gem source code as it is very well documented and the code is easy to read and elegant.
(ad)
Run ads IRL with AdQuick
With AdQuick, you can now easily plan, deploy and measure campaigns just as easily as digital ads, making them a no-brainer to add to your teamβs toolbox.
You can learn more at www.AdQuick.com
π» Code Samples
π» Jamie Schembri shared a challenging Ruby interview question about writing a 'my_max' method using only 'length' and 'is_a?'. This is a thread, and is highly recommended to read it entirely on Bluesky

Source: @jamie.schembri.me
οΈπ» Hans Schnedlitz demonstrated a simple technique for implementing lazy-loading content with Hotwire and Stimulus

Source: @hschnedlitz

Source: @hschnedlitz

Source: @hschnedlitz
οΈπ» Oli Nelson shared a code sample where he implemented concurrency control in his Maestrocast application with just one line of Ruby on Rails code

Source: @o_j_nelson
οΈπ» Pedro Augusto Ramalho Duarte shared an important Inertia tip about always setting up the version option

Source: @pedroarduarte
οΈπ» Daveyon Mayne shared a Rails authentication tip for allowing multiple model types to sign in using email addresses

Source: @sylarruby
οΈπ» Devin Starks expressed amazement at Ruby on Rails, sharing code that demonstrates how Time.current.all_month
provides a convenient range for the current month and how it's automatically converted into optimized SQL when used in an ActiveRecord query condition

Source: @onedevdeving
οΈπ» Zeke Gabrielse expressed his love for Ruby while sharing complex test code that demonstrates bulk job processing

Source: @_m27e

Source: @_m27e
οΈπ» Samuel Williams highlighted a useful fixture gem from the Sus testing framework that helps validate or ignore console output. In this example he is using βSus::Fixtures::Console::CapturedLoggerβ

Source: @ioquatix
οΈπ» Nick Schwaderer shared how to use this new gem β 1901 - βA bloopsaphone cover of Phoenix's β1901β β

Source: @schwad_rb
And made a tune for it which is available on GitHub Gist
οΈπ» Mikkel Malmberg created a Ruby module that automatically generates Stripe-style unique identifiers (like 'xy_abc123') for Rails models. This code is available on GitHub Gist

Source: @mikker.dev

Source: @mikker.dev
οΈπ» Mohammad A. Ali published a new article announcing a new feature for TinyBits, allowing users to supply external dictionaries to pack/unpack methods

Source: @oldmoe.bsky.social

Source: @oldmoe.bsky.social
οΈπ» Glenn Ericksen shared a code sample about how_to_build_an_agent_in_ruby: A Ruby exploration of Thurston Ball's "How to Build an Agent"
If youβve read this far, you probably enjoy this newsletter. You can support it by sharing it on social media and inviting your friends or colleagues to subscribe. Additionally, you can help keep it free for a long time for the entire community by upgrading to a paid subscription.
π Thinking about Code Design
οΈοΈπ David Heinemeier Hansson shared his experience with Rails testing performance, claiming FactoryBot slows down test suites while Rails Fixtures offer superior speed

Source: @dhh
οΈGot some replies:

Source: @nateberkopec

Source: @bartlecki
π Jeremy Smith highlighted the dual benefits of using database constraints in Rails applications

Source: @jeremysmith.co
οΈπ Aaron Sumner asked his community about wiping Active Storage files after RSpec test runs

Source: @ruralocity.bsky.social
οΈπ Ciaran Lee shared his satisfaction with Ruby on Rails performance

Source: @ciaran_lee

Source: @ciaran_lee
π Jason Fried shared the first preview of Fizzy, Basecamp's upcoming idea/issue/bug tracker designed with simplicity at its core

Source: @jasonfried

Source: @jasonfried
David Heinemeier Hansson replied:

Source: @dhh
οΈπ Andrew White expressed concerns that Action Text and Active Storage don't align well with Rails philosophy, particularly regarding VPS hosting and SQLite in production. This is an interesting thread, take your time and read it all on Bluesky

Source: @pixeltrix.bsky.social
Rosa replied:

Source: @rosa.codes
οΈπ Donn Felker shared about using the overcommit gem:

Source: @donnfelker
οΈπ Errol Schmidt shared five things learned about building and maintaining apps for enterprise clients:

Source: @eSquareDesign
π‘Around code (news, findings, books, and more - all about Ruby)
π‘ Joe Masilotti announced that his book Hotwire Native for Rails Developers is officially content-complete π₯³. The book is available on The Pragmatic Bookshelf

Source: @joemasilotti
Print preorder available at Amazon.
π‘ Phil Smy offered practical advice for developers

Source: @psmy
π‘ Gumroad announced they're extending their open source hackathon until September

Source: @gumroad
β€οΈ Why Choose Ruby and Rails
β€οΈ George Tobias from Reinteractive published an article about Ruby on Rails 8: Why It's Still a Top Contender in the Modern Web Framework Landscape
β€οΈ Josh Pigford showed how amazing Rails is for building software

Source: @Shpigford
β€οΈ Ivan Morgillo highlighted how Rails' 'Convention over configuration' principle gives it a major advantage in the AI era

Source: @hamen

Source: @hamen
β€οΈ Freedom Dumlao shared that Flexcar successfully switched from Java to Ruby on Rails one year ago, and the impact was massive

Source: @APIguy
β€οΈ Ruby Central published an interesting video with amazing insights β Ruby Talks: John Dewsnap on Moving Flexcar From Java to Rails in 4 MONTHS + Keynoting RailsConf 2025

Source: @rubycentral.org
π§° Gems, Libraries, Tools and Updates
π New Gems and Repos
π Mohammad A. Ali created a new gem β tinybits-rb - βA Ruby gem that wraps the tinybits packing/unpacking C library for space (both in memory and on disk) and time efficient encoding/decoding of JSON like structuresβ
π Sergiobayona created a new gem β vector_mcp - βA easy-to-use and minimal server implementation for the Model Context Protocol (MCP) in Rubyβ
π Joshua Young created a new gem β dial - βA modern profiler for your Rails applicationβ
π Γ©tienne BarriΓ© created a new gem β autolib - βSet up autoloads for the standard libraryβ

Source: [email protected]
π Robert created a new gem llm-shell - is an extensible, developer-oriented command-line console that can interact with multiple Large Language Models (LLMs)
π Simon J published a new gem called dotkey - Interact with nested Ruby data structures using dot-delimited strings
π§° Updates
π§° Stan Lo announced a new version of Introduce standalone C parser for RBS with arena allocation by st0012 Β· Pull Request #2398 Β· ruby/rbs Β· GitHub

Source: @jacksharkey11
π§° Avo for Ruby on Rails announced a new release Avo 3.20 - βAvo is a very custom Admin Panel Framework, Content Management System, and Internal Tool Builder for Ruby on Rails that saves engineers and teams months of development time.β
π§° Bozhidar Batsov (a.k.a. Bug) announced an update for rubocop - βA Ruby static code analyzer and formatter, based on the community Ruby style guideβ
π§° Brad Gessler announced that Terminalwire is now open source π₯³ - βTerminalwire streams terminal I/O between a web server and client over WebSockets. This means you can use your preferred command-line parser within your favorite web server framework to deliver a delightful CLI experience to your usersβ. For more details check the blog mentioned in this post β Terminalwire is open source. Also, this gem is available on GitHub β terminalwire/ruby

Source: @bradgessler.com
π§° Jeremy Evans announced an update for capybara-validate_html5 - βValidate HTML5 for each page accessed when testing with capybaraβ
π§° Ruby On Rails announced a new update for Rails documentation. If youβre interested, check it out β [RF-DOCS] Rails Application Template Guide - merge with Rails Generators Guide

Source: @rails
π€ Joel Drapper shared his evolving perspective on tests

Source: @joel.drapper.me
π€ Adrian Oprea shared how to use dynamic importmaps as dependency manifests by parsing their JSON content from the DOM

Source: @oprearocks
π€ Avi Flombaum shared his thoughts about AI code generation

Source: @aviflombaum
π€ Lemon Squeezy announced reaching a significant milestone following their acquisition by Stripe last year, sharing that Stripe Managed Payments will be launching in private preview this summer β±οΈ. For more details, check out the blog post β Stripe + Lemon Squeezy Update: A Big Milestone Reached

Source: @lmsqueezy
π€ Irina Nazarova encouraged women and minorities in tech to accept invitations for public activities like speaking, podcasting, and interviews

Source: @inazarova
π€ Adrian Oprea documented his process of making this product called CarKeep. This is a thread, and is highly recommended to read it all on X

Source: @oprearocks
π€ Donn Felker shared his take on IDE preferences based on programming languages

Source: @donnfelker
π€ David Heinemeier Hansson explained his approach to using LLMs as development tools

Source: @dhh
More content: π π π§ π₯ βπΎ
π Jeremy Smith posted his slides from Balkan Ruby 2025 β In Limbo: Managing Transitional States
π This Week In Rails published a new article about New Guides PR, Rails World Updates and more!
π Ruby Weekly published a new edition β Coming back to Rails from Next.js
π Ruby Central published a new edition β The Ruby Central README: April 2025
π Hotwire Weekly published a new article β Week 19 - From Next.js to Rails, Building a Password Manager, and more!
π Any Cable published a new edition β Any Cables Monthly #28: of past and presence
π Matt Solt published a new edition β Ruby AI News - May 6th, 2025
π Awesome Ruby Newsletter published a new article about Issue 468 - We Fell Out of Love with Next.js and in Love with Ruby on Rails and Inertia.js
π§ Podcasts
π§ Jason Swett published a new podcast β Code with Jason: 254 - Amanda Perino, Executive Director of The Rails Foundation
π§ The Bikeshed published a new podcast β 462: Decomposition as a key developer skill with Steve Polito
π§ The Ruby On Rails Podcast published a new edition β Episode 536: Better With Becky with Becky Searls
π§ Remote Ruby published a new edition β Why is the Test Suite Hanging?!
π§ Ruby Rogues published a new edition β Demystifying the Rails Codebase with Ridhwana Khan - RUBY 675
π₯ Videos
π₯ Tropical published all of the talks on the first day of this year's event β Tropical.rb Day 1 videos
π₯ Balkan Ruby published all of the talks from this yearβs event β Balkan Ruby 2025
π₯ Ken Greeff published a new video β Using AI Tools with RubyLLM
π₯ Chris Oliver published a new video β How to add Lazy Load Hooks to Rails Plugins
π₯ Dave Kimura published a new video β Scaffold Templates
βπΎ Articles
Whatβs new π
π Jose Blanco published a new article β Developing a voice AI app in Rails for drive-through ordering
π Brad Gessler published a new article about Terminalwire is open source
π Hans-JΓΆrg Schnedlitz published a new article β An Introduction to Solid Queue for Ruby on Rails
π Vishnu M published a new article β Finding ideal number of threads per process using GVL instrumentation
π Avo published a new article β Multistep Forms in Rails with the Wicked gem and about Cloudflare R2 with Active Storage
π Adrian Marin published a new article β Building admin panels sucks
π Joel Drapper published a new article β Comparing Ivar and Strict Ivars
π Mohammad A. Ali published a new article β Smaller, faster serialization for Ruby apps and beyond!
π Stanko KrtaliΔ published a new article β Adding MCP to a Rails app
π MirosΕaw PragΕowski published a new article about Multi tenant applications with horizontal sharding and Rails Event Store
π Ernesto Tagwerker published a new article about β DIY Ruby on Rails Upgrades: Essential Open Source Tools
π Blazej published a new article about My Journey Through The Odin Projectβs Chess Game
How-TOs π
π Rails Designer published a new article about Recurring Calendar Events in Rails
Reply