Everything you need to know about Ruby 4.0
The Ruby 4.0 release marks the 30th birthday of the language! Read on to understand everything that's changed in Ruby 4, and how to upgrade with the least friction.
Brought to you by Honeybadger—simple application monitoring that helps developers move fast and fix things.
The Ruby 4.0 release marks the 30th birthday of the language! Read on to understand everything that's changed in Ruby 4, and how to upgrade with the least friction.
Learn how to use Rails Action Cable without Redis! Follow along and build a Solid Cable application with real-time features.
Deploying web applications in hard. Learn what's new in Kamal 2 and how to use it to manage multiple apps on a single host.
Rails handles many security concerns out of the box, but even small applications face real threats from automated attacks, botnets, and malicious actors. This comprehensive guide covers eight critical vulnerability classes and shows you how to protect your Rails applications using the framework's built-in security features.
At RailsConf 2025, I gave a presentation on the last 20 years of deploying in Rails. If you missed it, come check it out!
Big-O notation gives you insight into scaling. Uncover the meaning of things like O(N^2) and learn how to use these concepts to speed up your apps.
PostgreSQL table partitioning is a great way to improve database bloat but is hard to manage. Honeybadger's pg_partition_manager gem can help you maintain partitions.
Rails 8 promises to make it easier to deploy and host Rails apps, no-PaaS required. Jump in with us to see where it delivers and where it falls short.
Ruby supports using regular expressions in lots of interesting ways that go beyond String#match. Check out this article to learn some uncommon Ruby regex tricks.
Understanding how a program behaves given certain inputs is hard enough for experienced developers. This article explores how to use Pry to debug Ruby apps.
A chance conversation led me to the realization that the world of unique identifiers is larger and more wondrous than I ever could have imagined. In this post we discuss five types of UUIDs and their upstart cousin, the ULID. We explore what makes each of them special and when they may be particularly useful.
Every Rails app has a breaking point. Follow along and learn how to test your application's performance under load with the Apache JMeter's Rails load testing.
Learn how the database-backed Solid Cache gem can surprisingly outperform traditional memory-based caches in Rails.
There are lots of ways to sort data. Insertion sort is particularly interesting because it sorts the data in place and is pretty easy to understand. While most of us just use the #sort method, interviewers still love to ask questions about sorting algorithms and related topics like Big-O notation. In this post, you'll learn not only how insertion sort works but also how to implement it yourself in Ruby.
Rails' 7+ released the ability to utilize multiple threads out of the box which can drastically improve the performance of your application. Read this article to learn how Rails async queries work and when to use them.
Honeybadger recently migrated our background job processing from Sidekiq to Karafka. Dig in to see what we learned.
From frozen string literals to default block parameters, Ruby 3.4 brings some nice improvements and changes. Jump in to learn what's new.
The latest release of Rails includes a ton of new options and defaults that making shipping applications without a PaaS even easier. Dig in to learn what's new in Rails 8.
If you want to host custom domains for customers in your SaaS, you'll need to handle both DNS and SSL. Fortunately, Caddy can help with both. Read this article to learn how.
Continuous Integration is a vital tool for developing software, and GitHub Actions makes it easy to add to almost any project. Dig into this practical GitHub Actions pipeline example and learn how to setup Continuous Integration for a Ruby on Rails project.