The Ruby and Rails community linklog
Made a library? Written a blog post? Found a useful tutorial? Share it with the Ruby community here or just enjoy what everyone else has found!
Submit a post
Post Preview
Note: Only the first pargraph is shown on the front page and overly long paragraphs may be broken up.
Stop Chasing Hype: Why I Chose Postgres Over 'New-Age' Databases
I’ve lost count of how many times I’ve been tempted by a “revolutionary” new database. Every few… Read more
Revisiting this experiment in pure Ruby GIS rendering.
Still one of my favorite projects: drawing real cities from GeoJSON data using only Ruby + GD. Read more
n8n vs ByteChef: Which Automation Engine Should You Self-Host?
Automating the “glue work” of a SaaS business is a survival skill for a solo developer. You need to… Read more
Robert released
Robert is a native FreeBSD AI assistant. He can read man pages, search documentation, and help you troubleshoot. It is distributed as a 2MB standalone binary. Built with mruby, and llm.rb.
How Rails Turns a Controller Action Into a Response
Rails controller actions do not return HTTP responses directly. They perform response state through render, redirect_to, head, or implicit rendering, and Rails turns that into status, headers, and body. Read more
rails-llm v0.2.0 has been released
rails-llm provides generators and an engine for the llm.rb runtime inside Ruby on Rails. The engine includes a chat interface, and the generators take care of migrations & models.
I shipped a mostly AI-generated Ruby gem, got roasted, and rethought the whole job
A month ago I published llm_cost_tracker (a self-hosted Rails gem for attributing LLM spend by feature/user/tenant) — and almost all of it was LLM-generated. I shipped it without really reading it, got called out, and the criticism was fair. This is an honest write-up of what that taught me: writing code got cheap, so the actual work moved to review and ownership. I’m still cleaning up generated code in the gem and looking for early adopters running real LLM calls in Rails to tell me what breaks. MIT. Read more
Distributed Uniqueness: Implementing Twitter Snowflake IDs in Rails 8
When you run rails generate model, Rails defaults to using a standard auto-incrementing integer for… Read more
🎙️ Remote Ruby – Blue Ridge Ruby Insights & Experiences
New episode is out. David recaps Blue Ridge Ruby and talks about coming back motivated to contribute more to open source, which leads into a broader discussion on why smaller single-track Ruby conferences create better hallway conversations, networking, and lightning talks. We also get into real-world Rails and Stripe lessons covering workshop prep, validation decisions, webhook recovery, subscription edge cases, and the growing complexity of payment integrations. Listen now
Ruby Beyond the Server
A collection of the various Ruby libraries and execution environments for building desktop, mobile, terminal, game, and browser applications. Read more
Inside Ruby’s Object Model 🔍
How MRI really implements: include, prepend, extend, singleton classes and method lookup. Read more
The Art of Deleting Code: Why Your One-Man App Should Be Shrinking
Most developers think that “progress” means adding lines of code. We feel good when we finish a new… Read more
Connect an LLM to man(1) and apropos(1)
I wrote a post as an introduction to developing your own AI agent that is backed up an ActiveRecord model. The agent can search and read man pages, and provide answers from those sources rather than training data.
Generative UI in Rails with RubyLLM
A walk through the design choices for showing rich UI in an LLM chat app instead of plain text bubbles. Tools, schemas, and a tiny gem for generative UI on top of RubyLLM.
💎 llm_cost_tracker 0.11.0 — self-hosted LLM cost ledger for Rails
New dashboard pass: a Pricing page that lists per-model rates from your overrides, prices file, and the bundled fallback as separate tabs, plus filter pills for provider/model/stream on Overview and Calls, and clickable column-header sorting on the Calls/Models/Tags tables. Read more
Just published a visual cheat sheet for ruby-libgd 🔥
Native graphics rendering in Ruby: PNG • JPEG • GIF • Filters • FreeType • Drawing APIs • Alpha blending Read more
The Vibe Coder’s Survival Guide: Concepts You Can’t Just Prompt Away
We are living in a wild time for software development. With tools like Cursor, Windsurf, and ChatGPT,… Read more
The Solo Developer's Secret: Why Boring Tech is More Profitable
Every morning, I see the same thing on my Twitter feed or the GitHub Trending page. A new Ruby gem is… Read more
I built an APM tool for Rails apps – DeadBro
I got tired of the existing APM options being overkill for smaller Rails projects, so I built DeadBro. It detects N+1 queries, tracks errors with full stack traces, and sends alerts via Slack or Pushover when things break. Real-time dashboards, multi-app and multi-environment support, installs via the dead_bro gem. Read more
Everyone Deserves a Wiki: Bridgetown 2.2 is Here
Springtime in Portland is always a true delight, and the perfect backdrop for our newest release of Bridgetown, version 2.2 “Verdant River City“. Featuring “wikilinks” in Markdown, support for Falcon the highly concurrent Ruby web application server, performance enhancements, bugfixes, new sponsorship opportunities, and more.
ActiveHarness gem has been released
ActiveHarness — a Ruby framework for building production-ready AI agents with multiple LLM providers, lifecycle hooks, and a Rails-friendly DSL. Made for Rails but works in plain Ruby too.
stimulus_grid_rails: user editable data grid for Rails + Hotwire
I just released stimulus_grid_rails v0.1.0 — Rails + Hotwire bindings for a server-driven, multi-user editable data grid over Turbo Streams and Action Cable. No React, no client-side grid framework, no JS build step. Read more
Duck Typing and Inheritance in Ruby
When to reach for duck typing and when for inheritance in Ruby. Template Method, hook messages, and the signals that point to a hidden abstraction. Read more