Community-driven Ruby news and articles
1090 articlesA source-backed explanation of why two Rails uniqueness validations can pass concurrently, how a composite unique index arbitrates the inserts, and ho...
Just released typst-rails, a PDF templating solution for Rage and Rails apps:
https://robrace.dev/blog/i-tested-rails-baseline-by-leaving-architecture-out-of-the-prompt/
llm.rb is an advanced runtime for building agentic AI applications on CRuby. It has zero runtime dependencies by default, supports concurrent and para...
How to decide between raising an exception and returning a value in Ruby by separating expected outcomes from failures that break a method’s contract.
llm_cost_tracker is a Rails engine that records what your app spends on LLM APIs - per call, per model, per tag - into your own database, with a mount...
While using the spatial_features Ruby gem for a side project, I noticed that filenames were being passed to system. It led me to two command injection...
https://minitestrails.com/blog/testing-user-registration-rails-minitest/
I built RailsDocks because deploying a Rails application shouldn’t require becoming a part-time infrastructure engineer.
https://railsbaseline.com
If you’re already using mise and would like to try rv, you can install it by following this guide: https://www.rubyforum.org/t/install-rv-as-a-mise-to...
https://github.com/igorkasyanchuk/activerecord-returning - this could be useful to know what actual records were updated/deleted. A small utility gem ...
An AI assistant with read-only SQL is a superhero. Until it fails privacy responsibilities and leaks sensitive data to everyone. We noted this possibi...
I revisited Hanami recently, and liked it! Here are my initial thoughts and impressions after completing its starter tutorial. I’ll be digging in furt...
For website owners, choosing between Ezoic vs Google AdSense is not simply a question of which ad network pays more. The more important questions are ...
https://jpcamara.com/2026/08/24/a-guide-to-using-batches.html
Release video for Glimmer DSL for Web (Award-Winning Frontend Framework for Ruby on Rails) 0.10.0 & 0.10.1 Auto-Conversion of Date/Time Element Va...
Building an email list is easy compared with turning that list into a reliable source of traffic, leads and sales. A subscriber who receives nothing a...
A source-backed guide to what delete, update_columns, update_all, insert_all, and upsert_all do with callbacks, timestamps, locking, and loaded object...
JetUI is an open source Rails 8 component library we’ve been building at JetRockets — 29 components, 8 form fields, and 61 UI blocks, built on ViewCom...
When people compare Blogger and WordPress, the conversation usually ends with the same conclusion: “WordPress wins because of SEO plugins.” That assum...
I’ve been doing some explorations about deployment options for Ruby, so I’m curious to learn more about what you’re using to deploy your applicat...
Website downtime is one of the easiest technical problems to overlook until customers, readers, or clients discover it first.
Rails boot time is a DX metric now. Every restart costs deploys, CI, and human attention. And agents boot apps way more than people. So, our convenien...
Blogger remains one of the easiest ways to start a blog. It is free, reliable, and managed by Google. The one complaint many users have, however, is t...
https://thomasleecopeland.com/2026/08/17/from-sphinx-to-postgres-fts.html
One of the dumbest questions I see asked on the Ruby/Rails subreddits is “Are Ruby & Rails still worth learning today?”, plus other variations, su...
The HTML file input shows “n files selected” when multiple files chosen. Here’s how Stimulus can be used (with or without Rails) to turn that into a l...
A sitemap is one of the basic technical SEO files a website can have. It gives search engines a list of URLs that you want them to discover and crawl.
A Rails callback race traced across record saves, outer transactions, background-job connections, Active Job deferral, transactional tests, and the de...
Starting a new blog creates an obvious problem: nobody knows it exists. You can publish useful articles every week and still receive very little traff...
https://github.com/igorkasyanchuk/pluckr - a gem that can return results from multiple queries using 1 SQL statement.
I released Omakase 0.2, a small agent framework on top of RubyLLM about 800 lines. The idea is that an agent is an ordinary Ruby object: its fields ar...
Hi, I’ve pushed some updates to my work-in-progress book on using Rails defaults (mostly) for test-driven development, based on my approach and opinio...
In light of some Ruby community events that happened recently (you can lookup recent posts about discriminatory treatment against me), it never hurts ...
https://www.rubyforum.org/t/more-open-source-projects-coming-to-ruby-users-forum/627
Chapter 12 of the free Minitest Rails guide is live: https://minitestrails.com/guide/testing-authentication/
https://rubystacknews.com/2026/08/12/beyond-travel_to-the-block-scoped-state-pattern-hidden-in-rails-testing/
Magic Presenter is a presentation layer gem for Rails models designed to replace Draper. It retains the Decorator/Presenter pattern while addressing f...
We added OpenTelemetry logs to our Rails app without a Collector and fixed a few bugs in the Ruby SDK along the way. Here is how we did it: https://ww...
https://www.rubyforum.org/t/on-ruby-whitelabel-site-for-ruby-communities/618
So, I got contacted by the organizer of the XO Ruby conference (aka Travelling Ruby), Pascal Laliberté, on meetup.com because I organize the Montreal....
Fair by design: orchestrating background jobs in Ruby
wkhtmltopdf was archived in 2023, leaving Rails apps stuck between an unmaintained binary and spawning headless Chrome. I built sghtmltopdf, a new ren...
An Active Record transaction traced across one database connection, retained model state, remote side effects, false returns, non-local exits, nested ...
I’ve been building Solid Objects, a gem that brings the Durable Objects programming model (addressable objects, durable state, serialized turns) to or...