Happy Wednesday! Here is issue #161 of our newsletter, bringing you news and the best tools for your current or future Rails projects… 1. ⚛️ A Redux store that mostly mirrors your database is a sign you're paying for every feature twice. Henrique lays out the real cost of replacing React and Redux with Hotwire. It's not a code-for-code translation; it's rethinking each screen to figure out where its state actually belongs. He gives you the A/B/C/D bucketing system to scope the work honestly, plus the two things teams always underestimate: testing and auth. 2. 🎯 A decade at 0.x, and SimpleCov just shipped its first stable release, with real breaking changes. Mateus covers what changed in SimpleCov 1.0, from silently shifted filter matching and a restructured coverage.json to the new cover allowlist and criterion-first config API. Grep your .simplecov for leading-slash filters before you upgrade. 3. 🔍 What does Rails look like from the outside, once you're actually standing there? Aaron Sumner worked through the official tutorial for Hanami 3.0 as a Rails developer taking a fresh look, and came away impressed by its per-action classes, RSpec-first testing story, and slices as an official answer to Django-style app composition. Honest notes on what felt familiar and what will take real relearning (the data layer, mainly). 4. 💣 Order.transaction do reads like a promise that everything inside either happens together or gets cleaned up. It isn't one. Brandon Weaver closes out his Rails Sharp Parts series by cataloging six ways transaction do...end fails to mean what it looks like it means: HTTP calls and job enqueues that don't roll back, nested blocks that silently swallow a rollback, and return inside a transaction quietly committing on Rails 8. Includes a RuboCop cop and a runtime gem for catching these in your own codebase. 5. 🔎 A line of Ruby executed. TracePoint swore it never happened. Samuel Williams' latest Holmes-and-Watson dive traces why a loop condition can vanish from a debugger's trace even though it plainly ran, a peephole optimizer quietly rerouting around the instruction that was supposed to report it. The fix landed in CRuby itself, with benchmarks proving it costs nothing once JIT is in the picture. 6. 🎙️ Claude Code can grind through a Rails upgrade, but it can't tell you if the tests it wrote are actually testing anything. Ernesto joins the Remote Ruby crew, Chris, Andrew, and David, to talk about using AI for Rails upgrades and maintenance without losing the judgment that makes the work good in the first place. They dig into the risk of over-trusting AI-generated tests, why strong development standards matter more (not less) as AI takes on more of the grunt work, and where open models fit into the picture. 7. 🏎️ Every score on that leaderboard came from a Python-esque tool the Rails team didn't want to keep using. The Rails Foundation's Agents on Rails team open-sourced lemans, the all-Ruby CLI harness behind every benchmark number published so far, complete with sandboxed verification an agent can't tamper with and network access locked to just the LLM provider. Four new models joined the leaderboard too: Sonnet 5 lands surprisingly low at 44/63, while an open-weight Qwen you can run locally scores respectably at 48/63, just slower. Check out our other articles on: Ruby | Rails | Compatibility | Upgrades | Tech Debt | AI Bookmark, share, or save them for later. We hope these links are helpful. 😉 Best, The FastRuby.io Team
|