Community-driven Ruby news and articles
1184 articlesHow to build a feature as a Rails engine in a folder of the main app, loaded as a path gem. Covers isolate_namespace, appending the engine’s migration...
Learn what service virtualization is, how it works, its types and benefits, and compare testing approaches that simulate APIs, databases, and external...
https://amalrik.github.io/posts/ruby-4-threads-ractors-fibers/
When I attended Rails World, this is the kind of talk I was interested in: What does the future of Rails look like at scale? How are big corporations ...
I wrote up the code behind the AI-generated cover images on my blog: a text model summarizes a post, an image model draws the summary, and Active Stor...
Rails 8’s authentication generator mixes up users after a database restore: cookies that were already in browsers start resolving to other people’s se...
Long time no see, guys. I’ve just released actual_db_schema gem v0.10.0.
The Smart Rubyist #1: I prefer to be in the top 10% developers who train AI with new ideas https://x.com/AndyObtiva/status/2109689588474163310?s=20
Still keeping port 22 open and a key pair in your launch template just so someone can run rails console in staging? This guide walks through replacing...
I’ve been building a small 3D game engine using mruby: https://github.com/carlosdanielpohlod/redgem The engine is written in C++, but I wanted Ruby to...
I was in the audience in Austin when DHH opened Rails World 2026. The conference tagline was “Shaping the future of Ruby on Rails,” so I walked in exp...
runsheets is a Ruby gem that serves markdown runbooks as a local web page. Fenced code blocks you mark as runnable get a Run button. Every run is writ...
LLMCostTracker records the LLM calls your Rails app makes through RubyLLM, the official OpenAI and Anthropic SDKs or Faraday into your own database: p...
A start-to-finish walkthrough of shipping a Rails 8 app to a single VPS with Kamal 2, using Vite, Solid Queue, PostgreSQL as a Kamal accessory and Doc...
While searching for quality I found scrap. SCRAP is by Robert C. Martin (Uncle Bob): github.com/unclebob/scrap. The algorithm, the metrics, the smells...
Farce is a new library for Ractor-shareable, Fiber Scheduler-compatible, concurrent data structures, with support for software transactional memory an...
Workhorse keeps your background jobs in PostgreSQL and runs them in Ruby, TypeScript, Python, Go and Rust.
After working with agents and agent files for tons of apps, repos, projects, I decided to distill my thoughts on it:
I just released a gem that answers one question about a Rails app: what stands between it and Rails X?
Callbacks, concerns, and Current keep code close to the model, but can hide effects and dependencies. When to use them and how to make those dependenc...
Link preview crawlers don’t run JavaScript, so every route of a static SPA shares the same generic card. In Rails, a content_for :head block solves th...
Building a Rails 8 admin panel with Inertia and React instead of Hotwire: the trade-offs, the architecture, and a practical tutorial. https://rubyinsi...
Staging had grown past 130 GB, a full pg_dump was out of the question, seeds never reproduced real bugs, and the data was full of PII. This post walks...
This summer, Mike handled CVE-2026-66066, an Active Storage vulnerability that let a crafted image upload read files from the server, including your a...
SELECT * FROM posts carries no promise about the order of the returned posts. Yet, every relational database hands them back in some order, and code a...
https://dev.to/ciembor/brunch-gem-isolated-development-environments-for-git-branches-and-worktrees-4n38
A Rails job sends a webhook, then fails while saving its receipt. Trace what retry_on repeats, how attempts are counted, and how a failed retry enqueu...
I was in the audience at Rails World 2026 when Aaron Patterson (tenderlove) kicked off the closing keynote. Aaron opened with a well-worn line: “the p...
https://rubyai.beehiiv.com/p/ruby-ai-news-october-2nd-2026 A special edition of The Ruby AI Newsletter breaks down the Future of Rails now that AI can...
https://rubycode.co/blog/redesign-development-around-ai
https://www.rubyforum.org/t/monthly-update-september-2026/753
I used Stave, an open-source configuration safety tool, to answer those questions for three of the most popular open-source Rails applications: Mastod...
Building a Ractor-Native Ruby 4 Stack: RESP, Redis and Background Jobs
A summary of my time at Rocky Mountain Ruby 2026. https://kevinjmurphy.com/posts/rocky-mountain-ruby-2026-recap/
I just released Billing in Rails 8, a 126-page implementation guide for building subscription billing into a Rails app with Pay and Stripe. It focuses...
This applies to programming with any languages, including Ruby: Tech Repost 2026-09-29: Programming Is Building a Mental Model… https://andymaleh.blog...
Every time Bundler resolves your Gemfile, it’s talking to the compact index. In this post, the speaker walked us through what the compact index actual...
Ruby Memes 2026-09-30: DHH’s AI Vision https://andymaleh.blogspot.com/2026/09/ruby-memes-2026-09-30-dhhs-ai-vision.html
ReActionView adds real reactivity to your existing .html.erb templates, no Hotwire, no Stimulus, no JavaScript you have to write yourself. That is the...
The video and slides for the Montreal.rb September 2026 talk “Ruby Version Managers in 2026” have been published! https://andymaleh.blogspot.com/2026/...
I was in the audience at Rails World 2026 for Jorge Manrubia’s talk on Lexxy, a new rich text editor for Action Text. Jorge explained why 37signals bu...
Dissecting DHH’s RailsWorld 2026 Keynote Speech from a Software Engineering Point Of View https://youtu.be/VsM8Ej-em8I
LlmCostTracker tracks LLM spend and budgets in a Rails app by user, feature, or any tag, in your own database and with no proxy.
RubyLLM::Modes is an extension for RubyLLM: before each chat turn, a router picks the instructions, tools, model, and thinking for that reply. The rou...
What happens to queued Active Job payloads after a job-class rename? A runnable Rails 8.1.3 exploration of class lookup, exception handling, compatibl...
I’ve seen this pattern many times in my 55 years as a computer programmer. p(bloom) has always been greater than p(doom)
Creating tasks to support your development workflow has always been an easy thing to do with the Thor-based asgard ruby gem with its Loki files defini...