Hanakai, and Hanami 3.0 in Full Bloom
Hanami, dry and rom have joined forces as Hanakai, a single family of Ruby tools. The first release under that banner is Hanami 3.0: built-in mailers and i18...
Hanami, dry and rom have joined forces as Hanakai, a single family of Ruby tools. The first release under that banner is Hanami 3.0: built-in mailers and i18...
Why returning plain data instead of models made some of my Rails code simpler, faster and easier to test.
Years ago I added Elasticsearch to a Rails app and search got faster. I credited the search engine. Looking back, I’m not sure that was the lesson. Here is h...
Rails 8 isn’t really a bag of new methods. Its headline is a stance: drop Redis, drop the PaaS, and run a real app from a single box you own — with the datab...
A short tour of five dry-rb gems I keep coming back to: validation, types, structs, configuration, and composable business logic. Small, focused libraries th...
Service objects keep business logic out of fat controllers and models. A handful of conventions (one entry point, a consistent return value, a simple constru...
You don’t need a database table to get Rails-style validations. With ActiveModel you can validate plain Ruby objects (a contact form, a search form, an API p...
Before reaching for Elasticsearch, it’s worth knowing that PostgreSQL has capable full-text search built in. Here’s how to use it from a Rails app — tokenizi...
Hanami 2 arrived in three acts: the app rewrite in 2.0, views in 2.1, and a full ROM-based database layer in 2.2. With that last piece, it’s a complete full-...
Rails 7.1 isn’t a headline release. It’s a pile of quality-of-life additions that quietly remove boilerplate you write all the time — normalizing attributes,...
Sometimes you’ll have to create a deeply nested hash without knowing how deep it can be at first. This hash should allow reading and setting values at any le...
Most people using Ruby nowdays are using it for Rails. They often defined themselves has ‘Rails developers’, not ‘Ruby developers’. I’m an early adopter of R...