Tutorials
37signals Dev — Running our Docker registry on-prem with Harbor
As of early 2025, we’re deploying all of our applications with Kamal using Docker as our containerization platform. The container registry that holds our app images is one of the most integral pieces of our deployment pipeline.
Like many organiza...
Friendship Ended with Rack::BodyProxy | Rails at Scale
The application responds to #call with a single argument, the environment, and returns an array of status, headers, body. All of the concepts seem straightforward, right? The status is an Integer, the environment and response headers are Hashes, a...
Using Tailwind AND Bootstrap side by side in Rails
Find out how to use both Tailwind CSS and Bootstrap in the same Rails application.Compared to a few years ago, it's a blast to develop Rails apps with modern frontend tools these days. The full JS and CSS ecosystems are first class citizens in any...
Easy Redesign in Rails: Run Old and New Side by Side with :variants
Rails variants are usually used to serve different views for devices — but you can use them for much more, like running a redesign side by side.Redesigning a mature Rails app can feel like a minefield. You're still pushing hotfixes to production, ...
User-Specific Content in Turbo Stream Partials | Rails Designer
Learn how to conditionally show user-specific content in Rails Turbo Stream partials using a custom turbo-show element for client-side rendering.How would you conditionally show or hide user-specific content in a partial sent over Turbo Stream? Th...
Organizing Mailer Templates with prepend_view_path in Rails
Learn how to organize Rails mailer templates with prepend_view_path. Keep all email templates in one centralized directory instead of scattered across your views folder for better code organization.
If you're using multiple mailers in your Rails a...
Create a macOS-inspired stack UI with Stimulus and Tailwind CSS | Rails Designer
The other day I accidentally enabled the “fan” option in my dock’s application folder (I have it normally set to just “list”). But this incident inspired me to recreate the effect in Rails with a simple Stimulus controller and lots of Tailwind CSS...
Joy of Rails | Sending Web Push Notifications from Rails
An embedded Web Push demo and deep dive recipe for Web Push notifications for a Ruby on Rails application in advance of Rails 8 Action Notifier.You may have heard news: Rails 8 will extract a new framework for Web Push in Rails. Web Push notificat...
Persistent Connections in Ruby: Streaming Bodies, SSE, and WebSockets with Rack | DevelClan
HTTP was born with a request/response model: the client opens a connection, sends a request, the server responds, and the connection closes. This works for most web pages but falls short when handling real-time data (notifications, dashboards, cha...
The /o in Ruby regex stands for “oh the humanity!” - JP Camara
Hi there! Do you like Regex? Do you like performance? Do you like creating confounding bugs for yourself rooted in the mechanics of the Ruby VM itself?
If you said yes to all of the above, have I got a feature for you!
But first, let’s start wit...