Hooking into ActiveRecord’s Connection Pool: A Clean Way to Enable PostgreSQL Row-Level Security

August 6, 2026 Most Rails applications that implement multi-tenancy eventually face the same question: Where should the PostgreSQL tenant context be established? Many implementations set the tenant at the controller or middleware level. While that identifies the current tenant, it doesn't necessarily guarantee that every database connection carries the correct PostgreSQL session state. A cleaner … Continue reading Hooking into ActiveRecord’s Connection Pool: A Clean Way to Enable PostgreSQL Row-Level Security

RSpec Expectations: You’re Probably Using the Wrong Matcher

RSpec Expectations: You're Probably Using the Wrong Matcher August 3, 2026 If you've been writing Ruby tests for a while, chances are you've reached for eq more times than you can count. While it works for many scenarios, RSpec Expectations offers a much richer vocabulary for expressing intent. Choosing the right matcher isn't just about … Continue reading RSpec Expectations: You’re Probably Using the Wrong Matcher

Understanding the Rails Middleware Stack

Understanding the Rails Middleware Stack July 31, 2026 Middleware is one of the core building blocks of every Ruby on Rails application, yet many developers never interact with it directly. Every incoming HTTP request passes through a chain of middleware before it reaches your routes and controllers, and every response travels back through the same … Continue reading Understanding the Rails Middleware Stack

Rails Isn’t Getting Bigger It’s Getting Sharper

Rails Isn't Getting Bigger It's Getting Sharper July 27, 2026 Every week, This Week in Rails highlights the latest changes merged into the framework. Most weeks, it's easy to focus on the individual features. But the July 10 edition suggests something more interesting: a broader trend in how Rails is evolving. Instead of shipping large, … Continue reading Rails Isn’t Getting Bigger It’s Getting Sharper

Beyond tenant_id: Treating Multi-Tenancy as a Database Invariant

Beyond tenant_id: Treating Multi-Tenancy as a Database Invariant July 20, 2026 Most Rails applications that become SaaS products follow the same trajectory. They begin with a single customer, acquire a second, then a third, and eventually someone adds a tenant_id column to every table. From that moment forward, every query is expected to remember to … Continue reading Beyond tenant_id: Treating Multi-Tenancy as a Database Invariant

How to Safely and Efficiently Transform Payloads in Ruby and Ruby on Rails Workflows

July 2, 2026 Modern applications rarely consume external data exactly as it arrives. Whether you're integrating with payment gateways, CRMs, ERPs, or third-party APIs, incoming payloads almost always need to be normalized, enriched, or reshaped before they can be processed. A common workflow looks like this: Incoming Payload β”‚ β–Ό Transformation Layer β”‚ β–Ό Normalized … Continue reading How to Safely and Efficiently Transform Payloads in Ruby and Ruby on Rails Workflows

Dependabot Resolves Remaining Bundler 4 Compatibility Issues

Dependabot Resolves Remaining Bundler 4 Compatibility Issues July 1, 2026 Teams adopting Bundler 4 can breathe a little easier. After several weeks of community reports and investigation, the remaining compatibility issues between Dependabot and Bundler 4 have now been addressed through merged fixes in dependabot-core. The fixes resolve two separate issues that affected projects relying … Continue reading Dependabot Resolves Remaining Bundler 4 Compatibility Issues

Design Patterns, the Ruby Way (Part 3): Behavioral Patterns in Real Ruby Applications

Design Patterns, the Ruby Way (Part 3): Behavioral Patterns in Real Ruby Applications June 30, 2026 In the previous article, we explored how Ruby simplifies many creational and structural design patterns. But some of the most interesting patterns aren't about creating or organizing objects. They're about how objects collaborate. Behavioral patterns define how responsibilities are … Continue reading Design Patterns, the Ruby Way (Part 3): Behavioral Patterns in Real Ruby Applications

Design Patterns, the Ruby Way (Part 2): Modern Creational and Structural Patterns

Design Patterns, the Ruby Way (Part 2): Modern Creational and Structural Patterns June 28, 2026 In the first article of this series, we explored why Ruby changes the way developers think about design patterns. Features like duck typing, modules, blocks, and delegation often replace the ceremony required in more rigid object-oriented languages. Now it's time … Continue reading Design Patterns, the Ruby Way (Part 2): Modern Creational and Structural Patterns

Design Patterns, the Ruby Way (Part 1): Why Ruby Changes the Conversation

Design Patterns, the Ruby Way (Part 1): Why Ruby Changes the Conversation June 25, 2026 Software developers have been talking about design patterns for more than thirty years. Since the publication of Design Patterns: Elements of Reusable Object-Oriented Software in 1994, the Gang of Four (GoF) patterns have become a shared vocabulary for solving recurring … Continue reading Design Patterns, the Ruby Way (Part 1): Why Ruby Changes the Conversation