#​748 — May 1, 2025

Read on the Web

Together with  Testdouble

Ruby Weekly

Itsi: A Fast, New Ruby Rack Server — Itsi is an interesting new player joining the world of Ruby app servers. It’s written in Rust, is Rack compliant, and works as a reverse proxy, API gateway and static file server. You can choose between a typical blocking model, an (optional) fiber-based scheduling approach, or even mix the two in a hybrid model.

Wouter Coppieters

📊 Ruby Gem Analytics Powered by ClickHouse and Ruby Central — How would you like to quickly run SQL queries to do analytics over every single Ruby gem download since 2017? Now you can. There’s a lot of interesting data in here, and it’s a fascinating collaboration to boot.

Clickhouse and Ruby Central

Rails Is Super Easy to Upgrade … — … as long as you're on 6.0 or higher. You don't need to pay a retainer to keep Rails up-to-date, but if you're stuck on Rails 5, 4, or 3, or a custom fork of 2 (we’ve seen it!) you might need help getting over the hump. Ready to enter the 2020s?

Test Double sponsor

Inline RBS Comments Support for Sorbet — The story of how engineers at Shopify added support for inline RBS typing comments to the Sorbet static type checker. It’s still experimental but could hugely improve the DX of using types.

Alexandre Terrasa

💡 In related news, Jake Zimmerman has an excellent post about the past, present, and future of Sorbet's type syntax.

IN BRIEF:

Creating Beautiful Charts with JRuby and JFreeChart — One of the biggest wins of using JRuby is the direct access you get to established, mature libraries used in the Java ecosystem. Here’s an example of taking advantage of that by using JFreeChart to render graphs, but you could use the same technique with many other Java libraries too.

Charles Oliver Nutter

🕹️ I took advantage of this feature of JRuby myself many years ago when I ported one of Notch's Ludum Dare entries from Java to Ruby – it still runs too!

Streaming LLM Responses with Rails: SSE vs. Turbo Streams — If you want to get the results of LLMs into the hands of users ASAP, streaming is the way to go, but in a Rails app there’s more than one way to pull it off..

Justin Paulson

Sharding a Real Rails App (Mastodon) with PgDog — PgDog is a Postgres proxy server that can be used to shard data and route queries appropriately.

Leo Kokotov

The Ultimate Guide to Scaling Sidekiq — Ooooh, pretty diagrams! Yeah I made them myself and I think they’re quite nice.

Judoscale sponsor

📄 Use Getter Methods Instead of Instance Variables in Ruby Objects Lucian Ghinda

📄 Autoscaling on Heroku Fir: Your Options Today in 2025Fir is Heroku’s latest ‘generation’ of its platform/stack. Adam McCrea

📄 Improving Rails Migrations Using bulk: true – It groups multiple schema changes into a single SQL statement, where possible. Mintbit

📄 Sorting Elegantly in Rails with in_order_of Trésor Bireke

📄 Turbo Drive, Frames, Streams, Morph? What to Use? Rails Designer

📄 Setting Up Rails with Dev Containers Mateus Pereira

🛠 Code & Tools

HUGLO: A Forthcoming Hyper-Ultra-Giga Low-Overhead Tracing Profiler — A tracing profiler that captures function calls, system calls, thread state changes and GC activity with overhead “low enough for continuous use in large-scale production systems.” It’s not open source yet but Matt says if there’s enough interest he’ll consider it..

Matt Stuchlik

💡 In the meantime, you might need to keep using ruby-prof.

🚀 Need to Upgrade to Rails 8.0 and Ruby 3.4 but Not Sure How? — Your 0-downtime upgrade journey begins with a Roadmap. Know how long it will take before you begin.

FastRuby.io | Upgrade Services sponsor

ruby-mcp-client: An MCP (Model Control Protocol) Client Library — We’ve recently highlight Fast MCP which provides a way to create MCP servers from Ruby – this project provides the other angle, giving you a way to use MCP servers, such as an AI agent would. Even if you don’t use AI, this could provide an interesting alternative to certain APIs.

Szymon Kurcab

  • Fast MCP 1.3 – A Ruby implementation of the Model Context Protocol.

  • 🤖 OmniAI 2.5 – A standardized API for multiple LLM platforms.

  • 📊 Gruff Graphs 0.26 – Long standing chart rendering library.

  • Torch.rb 0.20 – Deep learning for Ruby, powered by LibTorch.

  • RQRCode 3.1 – Create and render QR codes from Ruby.

  • Good Job 4.10 – Postgres-backed job queue for Rails.

📰 Classifieds

Your codebase is a masterpiece. Your logs? Abstract expressionism. Make your data gallery-ready with Scout Log Management.


🧠 It's not always about the size: how we helped a client achieve a shorter cycle time, lower infra costs and an improved communication. Smart augmentation: it's not always about scaling the team | SINAPTIA.

📢  Elsewhere

A quick roundup of some other interesting updates or useful resources in the broader developer landscape:

  • DHH doesn't want Google to be forced to sell its Chrome browser and says it could 'damage the web.'

  • PGlite is an interesting WASM build of Postgres so you can embed Postgres wherever you can run WebAssembly.

  • I've been dabbling with a little C# recently and enjoyed this TypeScript is Like C# guide oriented largely around showing TypeScript/JavaScript vs C# examples of doing the same things.

  • If you like the terminal-based life and want a powerful email client that can even support HTML emails, the Go-powered aerc is worth a look.

  • Former React core team member Dan Abramov has blogged about React's 'use client' and 'use server' directives. While it's about React, he suggests the idea of marking code in this way could be a useful universal paradigm.