In a previous post, we saw that the goal with Ractors is to achieve parallelism and optimize for CPU-heavy work. What if we wanted to optimize for IO-heavy work, where the CPU is waiting for the results of some external work? Ruby Fibers have this goal.
What does a web server actually do? I imagine all of us at least half understand it, let’s explore the remaining half! In a previous post, I covered how rack-based web servers like Puma pass an incoming HTTP request to a Rails application by creating an env hash. The env part is specific to rack-based servers. But the main responsibility of all web servers is to:
Rails 8.1 beta was announced at Rails World 2025 in Amsterdam last week. New things in this release include Active Job continuations, structured event reporting, local CI, deprecated associations. And more to come like Turbo offline, Active Native Push, Active Record tenanted, etc.
Let’s explore how Inertia works under the hood. Because many production codebases use Rails with some frontend thing (which is not Hotwire), in practice. From Rails API + single page app (SPA) to Rails views along with React components in some hybrid setup, with varying degree of complexity. Inertia is an option in this space and it seems simple. What allows it to serve as a glue between Rails and…
What happens when we run the rails server command? A lot. It initializes the entire Rails framework, boots the application, and starts the web server. In this post, we go over the timeline of what happens and why it’s useful to understand this in practice.
Have you ever wondered about the config.ru file in your Rails app? How does a web server (e.g. Puma) talk to your Rails app? What does it mean for Rails to be a Rack app? And what’s a middleware? These are all related, let’s understand how!
I am going to the last RailsConf in Philadelphia in a few weeks. In addition to attending, I am also going to be helping out behind the scenes as a Program Committee member.
Let’s talk about doing CSS with Rails. Rails asset management has evolved quite a bit over the years. The aim has been to simply but in the process we are left with multiple choices for doing something. And confusion about which way to use when, what’s the “old way” vs. “new way”.
I was at Rails World in Toronto couple weeks ago and Rails 8 beta was announced with the goal of simplifying deployment with Kamal 2 and Thruster, reducing the number of accessory services by using SQLite with Solid Cache, Solid Cable, and Solid Queue, new simplified asset pipeline called Propshaft (which replaces Sprokets) and Authentication. We are going to talk about Authentication in this…