Submit a post
Post Preview
Note: Only the first pargraph is shown on the front page and overly long paragraphs may be broken up.
Yesterday
Getting Started with Ruby
Ruby 2D v1.0 released
Years in the making, rebuilt from the ground up, tons of new features, full WebAssembly support, a new website with live examples. Check it out! https://github.com/ruby2d/ruby2d [more inside]
Turbo Drive, Frames and Streams: a reference verified against the source
Turbo’s documentation isn’t incomplete, it’s unconnected: Drive, Frames and Streams sit side by side with nothing saying what links them or how to choose. This is the reference I wanted when I started, written by reading the source of Turbo 8.0.23 and turbo-rails 2.0.23 rather than the docs, because that is where the gaps are. [more inside]
The Shopify Goldmine: How to Build Your First App in Rails
From Rails Dev to Shopify Partner: A Beginner’s Guide to Building Apps If you know Ruby on… [more inside]
From Conditionals to Polymorphism
A conditional that keeps growing is a design problem, not a style problem. How to turn each branch into an object, one green step at a time. [more inside]
Running a Ruby MCP Server in Production
In this article, Amanda goes through what a Ruby MCP server needs once it stops being a subprocess: Streamable HTTP instead of stdio, a choice between a standalone service and an endpoint inside an existing Rails app, statelessness so it survives more than one Puma worker, Host and Origin validation that a security advisory made mandatory, a shared token as the internal floor with OAuth as the answer beyond it, and read-only models and server_context deciding what any caller can actually reach. [more inside]
Install any Ruby version in seconds using rv
In this guide, you’ll learn how to use rv, a very fast version and package manager for Ruby to get started in minutes instead of hours:
wurk: Sidekiq Pro and Enterprise features, MIT licensed
wurk is a drop-in, 100% API-compatible replacement for Sidekiq that ships the Pro and Enterprise features Batches, unique jobs, rate limiting, periodic jobs, encrypted arguments under MIT. Swap the gem, keep your existing perform_async calls and your Redis. [more inside]
Wide Events: Token-efficient Rails telemetry for coding agents
I released Wide Events, a Rails gem that records each request or job execution as one dense, high-cardinality telemetry event. It gives coding agents queryable production context without making them reconstruct what happened from scattered logs, spans, and metrics. Agents can retrieve only the relevant rows and fields for a route, account, build SHA, feature flag, or error, keeping the context compact. [more inside]
Function Calling
In this episode, we look at adding function calling or tool use to our Rails application when making generative text LLM requests.
Ruby and Rails investigations
Curated Ruby and Rails investigations on application design, performance, concurrency, databases, deployment, assets and maintainability. [more inside]
Multiple named cache stores for Rails, through Rails.cache(:name)
An easy way to organize your different caches. A familiar API. Production-ready, and actually in use in production to cache small numbers (when accuracy of 30 second is acceptable) in memory. [more inside]
What Happens When You Call save
An Active Record save traced from pending dirty state through validations, callbacks, persistence, and its transaction wrapper. It explains false returns with empty errors, validate: false, callback-chain inspection, successful no-op saves, and why a failed inner save can leave other work committed. RailsRevelry publishes one source-backed Rails mental model each week. [more inside]
Ruby Memes 2026-07-30: One Bad Monkey Spoils The Bunch
Ruby Memes 2026-07-30: One Bad Monkey Spoils The Bunch
Courrier: a Ruby gem to send emails without SMTP
Gem to send email via API, not STMP https://railsdesigner.com/new-rails-courrier/ [more inside]
Why Active Record’s Snapshot Semantics Are a Trade-off, Not a Missing Feature
Active Record objects hold the database-derived state they loaded; they do not stay synchronized when another process changes the row. I built four small, reproducible experiments covering stale reads, lost updates, optimistic locking, and association-cache staleness, then looked at Rails’ abandoned Identity Map and what genuinely live objects would require. [more inside]
Tracking LLM Latency & Cost with Rails Events
Wiring an LLM into a Rails app takes a handful of lines. Understanding what it actually costs you (feature by feature, user by user) is harder. [more inside]
error_track: Drop-in Rails error dashboard with zero external services
Sentry and Honeybadger are great — until you don’t want another vendor, another bill, or exception data leaving your infrastructure. [more inside]
Why is Ruby on Rails a great fit for AI agents
I wrote a longer post on why I believe Rails is a great fit for AI agents
Ruby.org just got a built-in search! 🔍
Press Cmd+K or Ctrl+K to quickly find docs, news, and security advisories. A small but welcome quality-of-life improvement for the Ruby community. 💎 [more inside]
The Embarrassing Ruby/Rails Community Chronicles 2026-07-28
While going through Bystander Intervention training for my job, I stumbled upon “Persistent unwanted personal questions” being mentioned as a form of verbal abuse. I have to confess I recently experienced that at a Ruby tech event… [more inside]