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
Building user-customizable themes with Tailwind CSS
https://railsdesigner.com/building-customizable-tailwind-themes/ — Using OKLCH you can tweak one custom property, e.g. :root { --color-value: 60; } and get a UI in all the colours of the rainbow! 🌈😊
The Better Primary Key: A Guide to ULIDs for Rails Developers
In a previous article, I talked about Snowflake IDs. They are great, but they require a bit of… [more inside]
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… [more inside]
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… [more inside]
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. [more inside]
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.
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… [more inside]
🎙️ 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. [more inside]
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… [more inside]
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. https://msg.samsonov.io/2026-05-21-generative-ui-ruby-llm/
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,… [more inside]
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… [more inside]
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. [more inside]