- Short Ruby Newsletter
- Posts
- Short Ruby Newsletter - edition 130
Short Ruby Newsletter - edition 130
The one where Marco Roth launched RubyEvents website and mobile app and where the Ruby and AI scene is heating up with more gems

Read the full version on web at: https://newsletter.shortruby.com/p/edition-130
Table of Contents
(ad)

Visit JustCrossPost.app and Get 25% Off
JustCrossPost is the no fuss cross-posting app built for indie developers, creators, and teams who just want to write and publish content across platforms with ease.
β Clean, distraction-free post editor with smart sync between platforms
β Supports BlueSky, Mastodon, LinkedIn and X (more platforms are coming soon!)
β Cross-platform @-mentions
β Automatic image and video optimization
β Schedule posts and manage your history
β Affordable plans β no free tier gimmicks, no enterprise-level pricing
β Built by a solo dev for the people, not just brands and agencies
β Fast and focused
π Special offer for beta users
π Launches and discounts
π Marco Roth launched Ruby Events a mobile platform for Ruby events. The app is already available to download on App Store β RubyEvens App. For more details check out the blog post of Marco β Introducing RubyEvents.org: RubyConferences.org and RubyVideo.dev Join Forces to Build the Ruby Events Platform

Source: @rubyevents_org

Source: @marcoroth_
π Chris Oliver announced a $50 discount for Early Access to the LearnHotwire.com course, which currently features over 110 lessons and 8+ hours of content, with more being added. He claims it's the most comprehensive Hotwire course available

Source: @excid3
π Jeremy Evans announced a 30% discount on his book from Packt Publishing until April 30th, using the code 30RUBY
at checkout. Here you can grab a copy of it β "Polished Ruby Programming"

Source: @jeremyevans0
π Events
π Remember that this week two CFPs will close - Read more on rubyconferences.org/cfp:

Source: https://rubyconferences.org/cfp/
π African Ruby Community African Ruby Community announced that the Call for Papers for RubyConf Africa 2025 is now open, welcoming speakers of all experience levels to submit talk proposals by April 30, 2025. If youβre interested and willing to take this step, here is the submission link β CFP Ruby Conf Africa 2025

Source: @ruby_african
π All about Code and Ruby
π Ruby Central published a new article about Company Spotlight: Power Home Remodeling Scales a $1B Business With Ruby on Rails:
π» Code Samples
οΈοΈπ» Andy Croll shared his Ruby solution to a Cassidoo coding challenge, using Rails' Active Support for time manipulation to find the longest time gap between a series of times. Cassidoo is posting regularly this kind of challenges, if this grabbed your attention, go and check this weekβs problem on rendezvous with cassidoo

Source: @andycroll.bsky.social
οΈπ» Prabin Poudel shared a useful Ruby tip about Array.wrap, which returns an empty array if nil is passed, wraps a non-array value in an array, and leaves existing arrays unchanged

Source: @coolprobn
οΈπ» Hans Schnedlitz shared a tip about speeding up Rails migrations by using bulk migrations with the bulk: true
option in change_table
, which makes adding multiple columns more efficient by reducing database operations

Source: @hschnedlitz
π» Kirill Platonov shared how to customize Hotwire Turbo's page renderer to update only specific parts of a page rather than the entire body - especially useful when working with third-party iframe scripts

Source: @kirplatonov

Source: @kirplatonov

Source: @kirplatonov
οΈπ» Ruby Cademy highlighted String#scrub as an underappreciated Ruby method that helps clean up problematic character encodings, preventing issues in imports, logs, and APIs when dealing with malformed data from external sources

Source: @RubyCademy
π» Victor Cobos shared a useful technique for detecting newly attached files in Rails with Active Storage, using before_save callbacks to check if a file is both attached and a new record, for both single and multiple file attachments

Source: @elalemanyo
π» Nicolas Bouilleaud asked about the output of the following program:

Source: _[email protected]
οΈπ» Ruby Cademy shared a tip about using infinite ranges in Ruby's case/when statements to cleanly express "N or more" conditions, making code more readable

Source: @RubyCademy
οΈπ» Hans Schnedlitz shared a practical code snippet showing how to implement reusable method options in Thor CLI

Source: @hansschnedlitz.com
οΈπ» David Heinemeier Hansson reflected on Basecampβs diff feature, unchanged since 2016, highlighting Rubyβs readability and longevity

Source: @dhh

Source: @dhh

Source: @dhh
οΈπ» Alex Yarotsky shared a cleaner way to bulk delete records in Rails using delete_by
, which is faster and skips callbacks. For callback-safe deletions, he recommended destroy_by
.

Source: @AlexYarotsky
οΈπ» Ruby Cademy highlighted Rails' parameterize(separator: ?_)
method as a cleaner alternative to using gsub
and underscore
when formatting messy strings as identifiers, showing how it elegantly handles converting "Hello \nWorld..." to "hello_world"

Source: @RubyCademy
οΈ
π» Hans Schnedlitz shared a trick to make Thor accept -h
and --help
for command help, solving one of its quirks with a simple workaround

Source: @hansschnedlitz.com
οΈπ» Nidhi Sarvaiya shared a code sample about how to submit a form with Stimulus:

Source: @sarvaiya_nidhi
οΈπ» Ruby Cademy highlighted a new feature in Rails 7.1 that lets you easily autoload your ./lib directory while ignoring specific subfolders using config.autoload_lib(ignore:), replacing the more verbose configuration previously required

Source: @RubyCademy
π Thinking about Code Design
οΈπ Nate Berkopec shared performance feedback on Hackclub's open-source codebase, recommending to run rack-mini-profiler in production, keep Sidekiq concurrency at the default of 10 instead of 4, and avoid using where
in ActiveRecord model methods which can cause N+1 queries in loops. Here you can check the code sample for example 3

Source: @nateberkopec.bsky.social
οΈπ Gregory Brown challenged the community to create the smallest program that randomly picks between two end states without using I/O but remains observable

Source: @skillstopractice.com
Xavier responded with a possible solution π§

Source: @fxn.bsky.socialβ¬
οΈπPascal LalibertΓ© noted that even in the age of AI coding tools like Cursor, his team still relied on the Bullet Train Rails starter kit for speed and reliability on a large project

Source: @pascallaliberte.me
οΈπ Charles Oliver Nutter shared that JRuby 10 is passing the Ruby spec suite with only a few issues left, and invited users to try the latest builds by installing "jruby-head" or "jruby-dev"

Source: @headius
οΈπ Shopify Engineering shared three key lessons from Tropical on Rails: strong defaults improve developer experience, standardized tooling enables reliable integrations, and standardization helps focus community efforts on high-impact areas

Source: @ShopifyEng
π‘Around code (news, findings, books, and more - all about Ruby)
π‘ Carmine Paolino announced a partnership with parsera.org to create a standardized API for LLM pricing and capabilities information, addressing the issue that LLM providers don't include this data in their model listing endpoints. For more details, you can check his blog post β Introducing a Standard API for LLM Capabilities and Pricing

Source: @paolino
π‘ Hans Schnedlitz shared insights from analyzing RubyGems.org database dumps, highlighting how fun it is to explore this data

Source: @hansschnedlitz.com

Source: @hansschnedlitz.com
And in this follow-up post, he counters the narrative that "nobody uses Ruby on Rails anymore" by noting that his analysis of RubyGems data shows Rails gem downloads are actually not declining π

Source: @hansschnedlitz.com

Source: @hansschnedlitz.com

Source: @hansschnedlitz.com
π‘ Kaleb Lape argued that JavaScript frameworks have misled developers into equating complexity with sophistication, while Rails demonstrates that simplicity leads to greater productivity

Source: @RailsQuest
β€οΈ Why Choose Ruby and Rails
β€οΈ Travis Hubbard highlighted Rails and SQLite as the obvious choice for independent developers looking to make a living

Source: @wtravishubbard
π§° Gems, Libraries, Tools and Updates
π New Gems and Repos
π Gumroad unveiled their codebase as source available, inviting developers to dive straight into it. Check antiwork/gumroad on GitHub (you can also read the discussion on HN here)

Source: @gumroad
π Felipe Vogel published a new gem called advent_of_ruby - CLI tool for Advent of Code in Ruby
πDieter S. published a new gem bidi2pdf - Convert a url to pdf using ruby & chrome / chromedriver / chromium
π Scott Werner published a new gem monkeyspaw - A prompt-driven web framework for Ruby that grants your web development wishes through the power of AI. You should read also the launch article Introducing MonkeysPaw - a prompt-driven web framework in Ruby
π Ben Roesch published a gem called raif - Ruby AI Framework
π KAWAKAMI Moeki published a new gem called active_mcp - A Ruby on Rails engine that provides Model Context Protocol (MCP) capabilities to Rails applications
π Arda Tetik published a new gem Standalone-Ruby: A project that allows Ruby projects to be opened without the need to install a Ruby interpreter.
π Salajan Silviu created a new gem active_registration - A simple gem that adds generators for sign up with Rails Authentication Generator
π§° Updates
π§° Avo announced version 3.19.0 with a new nested records feature and many other improvements π₯ - βAvo is a code-based app builder framework for Ruby on Rails that enables engineers and teams to build and maintain their internal tools incredibly fastβ
π§° Avo announced a new version of Marksmith v0.4.0 - βGitHub-style markdown editor for Ruby and Railsβ
π§° Jeremy Evans announced a new version of Sequel 5.91.0 - βSequel: The Database Toolkit for Rubyβ
π§° Cirdes Henrique announced a new version of ruby-ui - βA UI component library, crafted precisely for Ruby devs who want to stay organized and build modern apps, fastβ
π§° rhannequin.bsky.social announced an update for ruby-ephem - βEphem is a Ruby gem that provides a simple interface to the SPICE binary kernel. Compute astronomical ephemerides from NASA/JPL DE and IMCCE INPOPβ
π§° Peter Boling announced an update for kettle-soup-cover - βA Covered Kettle of SOUP (Software of Unknown Provenance)β
π§° Camden Narzt announced that a new version of Passenger has been released, with a detailed blog post available for those who want to know more about this update β Blog Passenger 6.0.27 - βPassenger is an app server that runs and automanages your web apps with ease. Also improves security, reliability and scalability.β
π§° Ruby Gems published a new version of RubyGems β 3.6.7 Released
π€ Noel Rappin shared insights about the RailsConf program committee's selection process. Here you can check the complete post in more detail

Source: @noelrappin.com
π€ Gregory Brown emphasized that a bug exists from the moment it's introduced into a system, regardless of when it's caught. He advocates for finding and fixing bugs as early as possible to maintain a calm and consistent development process, noting this approach takes practice but is worthwhile

Source: @skillstopractice.com
π€ Adrian Oprea cautioned that misusing link[rel=preload] can harm performance by altering download priorities. When preloading the wrong resources (like LCE before stylesheets or too many font variants), you can clog the network queue with non-critical assets

Source: @oprearocks
π€ Sam Altman announced they're changing plans to release o3 and o4-mini in a couple weeks, with GPT-5 coming in a few months. This change allows them to make GPT-5 much better than initially planned, address integration challenges, and ensure they have capacity for the expected high demand

Source: @sama
More content: π π π§ π₯ βπΎ
π Svyatoslav Kryukov announced that the slides from his Tropical on Rails talk are now available online, hurry up and gain all the knowledge from here β Defying Front-End Inertia: Inertia.js on Rails
π Igor Alexandrov shared their slides about Kamal 2 β Get Out of the Cloud - Speaker Deck from Tropical on Rails
π This Week in Rails published a new article about must-understand, with_default_isolation_level, Rails World CFP and more!
π Ruby Weekly published a new edition about RubyUI 1.0
π Hotwire Weekly published a new article about Week 14 - Hotwire Starter Kit for Laravel, new Hotwire Native App, and more!
π Ruby Central published a new edition about The Ruby Central README: March 2025
π Awesome Ruby Newsletter published a new article about Issue 463 - Your Product Should Be Shiny. Your Stack Should Be Boring.
π Andrey Eremin published a new edition of Static Ruby Monthly | Edition 3, March 2025
π Hotwire Weekly published a new edition of the newsletter β Week 14 - Hotwire Starter Kit for Laravel, new Hotwire Native App, and more!
π§ Podcasts
π§ Indie Rails published a new podcast β IndieRails | Time, Energy, Capital...LOL
π§ Coding Coders who Code it posted a new podcast β Episode 49 - Radan SkoriΔ
π§ Chris Oliver, Andrew Mason published a new podcast β Adam McCrea of Judoscale
π§ Chris Oliver, Andrew Mason published a new podcast about β Turning The Big 30-Oh
π₯ Videos
π₯ Adrian Marin shared a video β How a Self-Taught Developer Built a SaaS Business
π₯ Lukasz Reszke posted a new video from his workshop β Rescuing Ruby on Rails Applications - To Rewrite or Modernize
π₯ Nate Berkopec posted a new video β How to tell what WebP would save you in terms of bandwidth and about Why should you avoid calling βwhereβ in ActiveRecord model instance methods?
π₯ Lucian Ghinda posted a new video β Example of value objects using Ruby's Data class and about How to define a data class in Ruby: block definition vs inheritance definition
π₯ Ken Greeff posted a new video β Build Pages Automatically with Programmatic SEO in Rails
π₯ Jason Swett published a new video about Renaming is Tricky - Live Coding in SaturnCI and about Software Design Theory
π₯ Dave Kimura published a new video about Vibe Coding
π₯ GracefulDev published a new video about Pay it Forward - Command Query Separation
βπΎ Articles
Whatβs new π
π Ruby Central published a new article about Company Spotlight: Power Home Remodeling Scales a $1B Business With Ruby on Rails
π Scott Werner published a new article about Introducing MonkeysPaw - a prompt-driven web framework in Ruby
π Mehdi Farsi published a new article β My Two Cents on Coding and LLMs
π Aaron Sumner published a new article about Testing with RSpec book updates for April 2025
π Daniela Baron published a new article about Reject Nested Attributes in Rails
π Akshay Khot published a new article about Profiling Ruby on Rails Applications with Rails Debugbar
π Ben Sheldon published an article about Wide Models and Active Record custom validation contexts
π Davide Santangelo published an article about Understanding Model-Context-Protocol (MCP) in Ruby
π Dom Christie published a new article β Component Partials in Rails
π TrΓ©sor Bireke posted a new article β Rails 8βs Propshaft, A Sprocketsβ quiet replacement?
π Mike Perham published a new article about Sidekiq 8.0: Improvements to the Web UI
π Rails Designer published a new article about Beyond translations in Stimulus: formatting dates, time and currency
π Ryan Bigg published a new article about Cursor-based querying with Rails
π Joey Wang published an article about Retry Mechanisms in Ruby: Best Practices, Pros, and Cons
π Adam McCrea published a new article about Heroku SSL Revisited (2025 Edition)
π Tejas Bubane published a new article about Pattern matching on custom objects in Ruby
π TrΓ©sor Bireke published a new article about Avoiding N+1 queries the Railsy way with strict loading
How-TOs π
π Reinteractive published a tutorial β Effortless AI Chat: Rails RubyLLM Tutorial
π Brooke Kuhlmann published a new article about Hanami Assets
π Alexey Poimtsev published a new article about Kamal Deployment: The Newest Form of Self-Torture
π Rails Designer published a new article about Create an Email Drip Campaign Using Rails Vault
π Sandip Parida published a new article about Speeding Up Test Suites in Rails Applications with parallel_tests
βοΈ Test Double Blog published a new article about Beyond MVP: Why your most valuable tactic matters
Reply