- Short Ruby Newsletter
- Posts
- Short Ruby Newsletter - edition 131
Short Ruby Newsletter - edition 131
The one where Ruby 3.3.8 is released, where Charles Nutter shares about what's new in JRuby 10 and where we find out that Ex-CEO and Buildkite’s cofounder started streaming Ruby coding on Twitch

In partnership with
Table of Contents
(ad)
Please excuse the lack of polish in this ad—we’re a team of developers, not marketers. 😅
Judoscale autoscales your web and worker deployments on Heroku, Render, Railway, Fly, and Amazon ECS.
Whether or not you use Judoscale, you should check out our guides to configuring Rails for production, scaling Sidekiq, and understanding request queue time.
🚀 Launches and discounts
🚀 Donn Felker announced the release of Gramifier, his first "vibe coded" utility app that creates simple, clean Instagram images from X posts and quotes. He built it using Middleman, Stimulus JS, and Tailwind, and deployed it within hours. If it piqued your curiosity, you can try it right away → Gramifier

Source: https://gramifier.com
🚀 Nate Berkopec announced a 20% discount on The Speedshop retainer service for April, offering Ruby application performance optimization. Go on speedshop.co and check this offer in more detail

Source: @nateberkopec.bsky.social
📅 Events
📅 Kasper Timm Hansen announced his Rails deep-dive session happening Thursday, promising to compress 6-8 hours of learning into a 90-minute workshop. If you are interested, here you can save your spot and gain all the knowledge→ Guiding You through the Rails Source Workshop ✈️

Source: @kaspth.bsky.social
📅 Rails Conf announced that the schedule for this year event is now live. Here you can check the entire schedule more easily → RailsConf 2025 Schedule

Source: @railsconf
📅 XO Ruby is inviting developers of all levels who want to learn or refresh their Rails knowledge to join their book club reading 📖

Source: @xoruby.com
👉 All about Code and Ruby
👉 Nagachika announced the release of Ruby 3.3.8 ✨
👉 Charles Oliver Nutter wrote about JRuby 10, Part 1: What's New
👉 Radan Skoric wrote about Adding a bundled package alongside vanilla setup
👉 Thomas Cannon published an article about Flip on the Awesome - A component first, indentionally structured view layer with ViewComponent for Rails apps
👉 Exequiel Rozas from Avo published an article about Adding Structured Data to a Rails application
💻 Code Samples
💻 Andrei Kaleshka shared his experience with Ruby's endless method definitions, showing how they make specialized wrapper methods more elegant and readable in his dose calculation code

Source: @widefix.bsky.social
💻 Xavier Noria shared a Ruby insight about how nested class and module keywords don't create actual nesting in the names or constants

Source: @fxn.bsky.social
Later Xavier Noria added:

Source: @fxn.bsky.social
💻 Bhumi shared a tip about the “rails runner” command, which allows you to execute Ruby code in a fully initialized Rails environment without having to start a Rails console

Source: @bhumi1102.bsky.social
💻 Nick Schwaderer showed how Ruby's “or” operator can lead to unexpected variable assignments, with variables being set even within logical expressions

Source: @schwad_rb
And Dennis showed how Ruby's “||” operator behaves differently from “or” when assigning variables

Source: @djfpaagman
️💻 Ruby Cademy shared a useful Rails tip about creating temporary SQL tables in migrations using “temporary: true”, which is perfect for short-lived data needs like calculations or data transformations

Source: @RubyCademy
️️💻 Hans Schnedlitz shared that you can run Kamal Proxy alongside Nginx for gradually migrating apps, just making sure to use non-conflicting ports in your configuration

Source: @hansschnedlitz.com
️💻 Ruby Cademy highlighted “up_only” as a valuable ActiveRecord migration method that lets you specify operations that run only when migrating up

Source: @RubyCademy
️💻 Ruby Cademy showcased the Builder-to-Proc pattern, one of their favorite Rails patterns. It demonstrates how to convert builder classes to procs for transforming raw data (like API responses) into objects through a simple “to_proc” method, making data mapping more elegant

Source: @RubyCademy
️💻Hans Schnedlitz shared a useful Ruby pattern for making gems easily configurable. The pattern uses a dynamically created Configuration class with “attr_accessors”, a singleton configuration instance, and a configure method that yields the configuration to a block 👀

Source: @hansschnedlitz.com
️💻 Alba Rosttöpfer shared her appreciation for RubyLLM's clean API, showing a simple code example that demonstrates how to use it for image description

Source: @TryCandyCV
📐 Thinking about Code Design
️️📐 Joel Drapper showed how branded types work in Literal, demonstrating email address type constraints. If you want to read more, he mentioned more details on this take here → joeldrapper/literal/pull/303

Source: @joel.drapper.me
️📐 Gavin Morrice explained how good code design provides inherent flexibility, challenging the notion that simpler always means better in software development

Source: @MorriceGavin
️📐Robby Russell proposed a scenario where Rails developers can ask meaningful, technical questions to a more experienced developer from a larger company, encouraging deep, practical learning beyond typical surface-level discussions

Source: @robbyrussell
And here are some potential questions posted by his community 🧐

Source: @Zeko369

Source: @kaokun

Source: @GabrielChuan

Source: @pan_sarin
📐 Juraj Kostolanský asked his community about the best method to preload the latest message in a Ruby on Rails application

Source: @jkostolansky
He got some interesting solutions 🤩:

Source: @MichaelDChaney
Check this gem → activerecord-has_some_of_many - “Optimized top-N-per-group Active Record associations using lateral joins“

Source: @kevin8b8
Check blog post → Rails 7.1 - construct Common Table Expression using .with query method

Source: @jakeonrails
Check blog post → 5 ways to fix the latest-comment n+1 problem

Source: @bhserna
💡Around code (news, findings, books, and more - all about Ruby)
💡 Keith Pitt ex Twitch CEO started streaming Ruby coding on Twitch:
💡 Nauman Tariq invited Ruby and Rails developers to share their most memorable, timeless technical resources for a curated collection

Source: @naumanthanvi
Here are some of the resources included in this post:
💡 Svyatoslav Kryukov announced a community-driven page to showcase Inertia Rails resources, inviting developers to share their work and contributions → Awesome Inertia Rails

Source: @skryukov_dev
💡 William Kennedy highlighted the UK government's design system, praising its comprehensive approach with minimal JavaScript and strong accessibility considerations. Check their page for more insights → GOV.UK Design System

Source: @_williamkennedy
❤️ Why Choose Ruby and Rails
❤️ Ivan Morgillo shared his journey of transitioning from Android development to Rails, highlighting the freedom of web development and the changing landscape of software creation

Source: @hamen
❤️ Ruby Cademy showcased a helpful Rails code snippet demonstrating date comparison methods, highlighting the elegance of Ruby's active support helpers

Source: @RubyCademy
🧰 Gems, Libraries, Tools and Updates
🆕 New Gems and Repos
🆕 Matthias Grosser published a new gem nodo - "Fast Ruby bridge to run JavaScript inside a Node process"
🆕 Georgie Boy created a new gem → rails_svelte - “Svelte Starter Template for Ruby on Rails“

Source: @george_kettle
🆕 Anthropic launched a new gem → anthropic-sdk-ruby
🧰 Updates
🧰 Carmine Paolino announced a new version of ruby_llm - “A delightful Ruby way to work with AI. No configuration madness, no complex callbacks, no handler hell – just beautiful, expressive Ruby code”
🧰 Andrei Kaleshka released an update on actual_db_schema - “Wipe out inconsistent DB and schema.rb when switching branches. To do that, install this gem and use the standard rake db:migrate command“
🧰 Jeremy Evans announced a new version of roda - “Routing Tree Web Toolkit“
🧰 Brian Knoles announced a new version of inertia-rails - “The Rails adapter for Inertia.js“
🤝 Andrew Culver shared a shell script trick for creating quick aliases to navigate project directories, improving development workflow efficiency

Source: @andrewculver
And his community provided some recommendations 💪
zoxide - “A smarter cd command. Supports all major shells“

Source: @adrianthedev
zsh-z - “Jump quickly to directories that you have visited "frecently." A native Zsh port of z.sh with added features“

Source: @dpaluy
autojump - “A cd command that learns - easily navigate directories from the command line“

Source: @MathiasHansen
🤝 Nate Berkopec highlighted a significant web performance insight, explaining how making all JavaScript on a page asynchronous can effectively eliminate Largest Contentful Paint (LCP) issues. Here is the link he provided for async

Source: @nateberkopec
🤝 Tobi Lutke shared an internal Shopify memo highlighting the company's commitment to integrating reflexive AI usage as a standard expectation for supporting merchants and entrepreneurs. Here is just a part of the article, you can read it entirely on Twitter for more insights 👀

Source: @tobi
More content: 📚 🗞 🎧 🎥 ✍🏾
🗞 Ruby On Rails published a new edition → Refactoring Active Record Signed ID verifiers
🗞 Ruby Weekly published a new edition about JRuby 10 begins to appear
🗞 Hotwire Weekly published a new article about Week 15 - CodeMirror with ImportMaps, Resize Observer with Stimulus, and more!
🗞 Awesome Ruby Newsletter published a new edition about Issue 464 - Shopify CEO says no new hires without proof AI can’t do the job
🎧 Podcasts
🎧 David Hill posted a episode → Ode to RailsConf - Fable Tales
🎧 Maintainable Software Podcast posted a new episode → Mercedes Bernard: Friendly Code Welcomes Everyone In
🎧 The Bikeshed published a new episode about 458: Learning Typescript with Aji Slater
🎧 Remote Ruby published a new episode about Ryan Castillo of Knowatoa and More Listener Questions
🎧 The Ruby On Rails Podcast published a new episode about Episode 534: Good Enough with James Adam and Cade Truitt
🎥 Videos
🎥 Nate Berkopec published a new video → Let's take a look at Gumroad's recently open-sourced codebase
🎥 SupeRails published a new video about #236 Run Moneygun SaaS locally. Configure Stripe Plans and Webhooks
🎥 Dave Kimura published a new article about Boolean vs Datetime
🎥 Chris Oliver published a new article about How to use CodeMirror with ImportMaps
🎥 QuantumFire published a new video about Using Grok 3 to build a Grok version of Claude Code
🎥 Scott Werner published a new article about Wasting Inferences With Aider
✍🏾 Articles
What’s new 🆕
🆕 Charles Oliver Nutter published a new article → JRuby 10, Part 1: What's New
🆕 Radan Skoric published a new article → 8 Assets: Adding a bundled package alongside vanilla setup
🆕 Julik Tarkhanov published a new article → Template-Scoped CSS in Rails
🆕 Exequiel Rozas from Avo published a new article about Resize Observer API with Stimulus and Adding Structured Data to a Rails application
🆕 Richard Schneeman published a new article about Migrating Your Ruby Apps to the Latest Stack
🆕 Cirdes Henrique published a new article → Beyond Autocomplete: How Cursor AI is Helping Standardize and Write Ruby on Rails Code
🆕 Josef Strzibny published an article about Design system options for Rails | Business Class Blog
🆕 Joël Quenneville published a new article → Ruby Strings: DnD Alignment chart
🆕 Emanuel Facundo published a new article → 🛠 How I Reduced Product Page Load Time by Nearly 85%
🆕 Davide Santangelo published a new article → Train Your Own LLM: A Deep Dive with Ruby
🆕 Andrey Novikov, Travis Turner published an article about Let there be docs! Generating an OpenAPI schema across the Rails stack—Martian Chronicles, Evil Martians’ team blog
🆕 Kendra Riga published a new article about Solidus Permissions
🆕 Andres Chacon published a new article about Automatic API Documentation for Rails with OasRails and AI: Fast and Easy
🆕 Alessandro Dias Batista published a new article about How does Rack work?
How-TOs 📝
📝 Steve Polito published a new article about How to respect OpenAI's rate limits in Rails
📝 Szymon Fiedler published a new article about Installing Precompiled Native Gems with bundle lock --add-platform
✍️ Alaka Acharya published a new article → More Than Code: Highlights from The Ruby Community Meetup in Kathmandu, Nepal
✍️ Jorge Manrubia published a new article → 37signals
✍️ Rails Designer published a new article about Console Utilities You (Didn’t) Know
Reply