Submit a post
Post Preview
Note: Only the first pargraph is shown on the front page and overly long paragraphs may be broken up.
Today
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]
Meet gem nosj, gem json's evil powerful twin. Faster, more features, easy to debug
Meet gem nosj, gem json’s evil powerful twin. [more inside]
Ruby creator Matz headlines the Ruby Association Activity Report 2026
Ruby creator Matz headlines the Ruby Association Activity Report 2026 alongside Fastly’s Kazuho Oku and speakers from ClearCode, STORES, and Evil Martians. [more inside]
Ruby Method Arguments: a new book, from your first call to metaprogramming
A new book on Ruby method arguments that
follows one thing all the way down: how a Ruby method receives its arguments. From
def greet(name) to keyword arguments, splats, blocks, closures, method_missing,
instance_eval, and building a small DSL — with the patterns behind Rails and
RSpec rebuilt from scratch. Every example was run before it was printed, and the
exercises have self-checking solutions in a free companion repo.
How Rails Knows What Changed
An Active Record Dirty-tracking lifecycle traced through a broken audit callback: pending changes before save, saved-change history afterward, net typed differences, object-local baselines, reload, and type-aware in-place mutation. [more inside]
Talk to you Rails app with your agent
Run queries against your production DB, change feature flags, reset cache, check background jobs, etc from your agent using MCP. Extend with custom plugins. All securely.