#​762 — August 7, 2025

Read on the Web

Together with  Testdouble

Ruby Weekly

What’s Wrong with the JSON Gem API? — Fed up with json’s unsafe defaults? Following on from his fantastic deep dive into json’s performance, Jean is back with thoughts on json’s API, changes he’s making, forthcoming deprecations, and why shedding global state is a worthwhile trade-off.

Jean Boussier

Wat?! Why Is Literally Everything Broken? — TFW you scale super fast: nothing works, everyone is frustrated with everything, and you don’t know what to fix or where to start. Our pragmatic assessments uncover root causes and prioritize real fixes we can help you with, not slide deck solutions.

Test Double sponsor

😱 The /o in Regex Stands for “Oh, the Humanity!” — JP says it best: “Do you like regex? Do you like performance? Do you like creating confounding bugs for yourself rooted in the mechanics of the Ruby VM itself? If you said yes to all of the above, have I got a feature for you.” What follows is a fantastic look through the consequences of a feature Ruby borrowed from Perl that’s best avoided in most cases.

JP Camara

IN BRIEF:

Persistent Connections: Streaming Bodies, SSE, and WebSockets with Rack“Rack proves itself versatile, capable of handling basic connections and any persistent connection strategy in Ruby.”

David Morales

Sending Web Push Notifications from Rails — From last year but somehow I missed it. It’s a handy guide though, and includes a live demo right in the page.

Ross Kaffenberger

🔥 Outdated Gems Are a Risk. Bonsai Keeps You Compliant — Security patches, version upgrades, & monthly reports — Fixed-cost maintenance plans geared to reduce your risk. 🧯

🌳 Bonsai by FastRuby.io sponsor

📄 Please Create Debuggable Systems – Good logging and easily understandable error states become even more essential in an agentic world. David Bryant Copeland

📄 Achieving Multitenancy in a Rails App Using CurrentAttributes – How ActiveSupport::CurrentAttributes was leveraged to achieve multi-tenancy when working with a legacy database. Mary Lee

📄 How to Create a MacOS-Inspired 'Stack' UI with Stimulus and Tailwind CSS in a Rails App Rails Designer

📄 Consider Thruster with Puma on Heroku Ben Sheldon

📄 Adding a 'Konami Code' with Stimulus – It’s not Easter, but you can still add Easter eggs to your app.. Rails Designer

🛠 Code & Tools

Herb: HTML-Aware ERB Parsing and ToolingERB templating is one of the Ruby ecosystem’s longest standing features but it hasn’t evolved much. Herb significantly ups the level of tooling around ERB (and makes it available to JavaScript too) including a new, fast parser, linter, editor integrations, and more. GitHub repo.

Marco Roth

🧠 Build Intelligent Applications with Rails — Learn about the strengths of Ruby and Rails in the AI era and why we choose them for AI applications development.

SINAPTIA sponsor

RubyEnv: Ruby Development 'Perfected on macOS' — A very new project but with a lot of heart. RubyEnv bundles the essential tools you need for Rails development (plus ‘a little magic’) on macOS in one place. There’s a beta you can try for now, and Andrea explains the motivation behind the project here. We look forward to seeing more from this.

Andrea Fomera

📖 gepub 2.0: EPUB Parser and Generator Library — EPUB is a popular e-book file format that’s essentially a ZIP file of XML files. This lets you work with such files from Ruby.

Satoshi KOJIMA

💬 Is It Ruby or Rails? Introducing a New Discord Bot — Have you ever wondered if a method you’re using comes from Ruby or was introduced by Rails? FastRuby has a Discord bot which you can add to your own Discord server to quiz you on a daily basis.

Amanda Bizzinotto

📰 Classifieds

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


🧰 Ruby devs build better with AppSignal. Catch bugs, track performance, and ship code fast. Start your free trial, no credit card needed.

📢  Elsewhere

A roundup of some other interesting stories in the broader landscape, in case you've missed them:

👋 We'll see you again on Thursday, August 21, but feel free to hit reply and send in any submissions you have for the next issue :-)