Systems | Development | Analytics | API | Testing

Everything you need to know about Ruby 4.0

Ruby 4.0 is a major release, launched on Ruby’s 30th anniversary (December 25, 2025) to celebrate three decades of the community, not due to major breaking changes. I was surprised to learn that Ruby doesn’t actually follow semantic versioning! Instead, Matz (Ruby’s creator) increases the major version when changes impress him. This version marks 30 years of Ruby and introduces features to extend the language.

Exploring Rails Action Cable with Solid Cable

Real-time features are becoming increasingly important in web applications, but not every Rails developer is familiar with Action Cable, the framework's built-in WebSocket library. Rails Action Cable has long supported web sockets, but comes with some additional complexity. Rails 8 introduces Solid Cable, a new database-backed adapter for Action Cable that eliminates the need for Redis. In this guide, I'll walk you through Action Cable by way of Solid Cable and show you how to build a real-time feature.

Honeybadger year in review: What we shipped in 2025

Happy holidays! 2025 has been a busy and productive time here at 'Badger HQ. While we shipped a lot of cool things, four features really stand out as we look back on the year. Our top features in 2025 include: We also attended some conferences this year! MicroConf, RailsConf, Laracon, ElixirConf, Rocky Mountain Ruby, and SF Ruby: It was great connecting with so many folks in person, discussing application monitoring, and sharing some delicious meals.

Get more from your Python integration testing with Honeybadger

Integration testing is an essential part of development, ensuring applications can survive the rigors of deployment and function in the real world. Getting the most out of them is key. It’s about making sure you write meaningful tests that ensure your code works as expected. If you’re running integration tests in Python, you may appreciate better visibility and deeper insights into application errors.

A comprehensive guide to error handling In Node.js

If you've been writing anything more than "Hello world" programs, you are probably familiar with the concept of errors in programming. They are mistakes in your code, often referred to as "bugs", that cause a program to fail or behave unexpectedly. Unlike some languages, such as Go and Rust, where you are forced to interact with potential errors every step of the way, it's possible to get by without a coherent error handling strategy in JavaScript and Node.js.

Writing Comprehensive Integration Tests for Django Applications

Integration testing verifies that multiple components of your Django application work together correctly. Unlike writing unit tests that examine isolated functions or methods, the Django integration testing process validates entire user workflows, tests database transactions, and system interactions. Django's testing framework provides specialized tools for creating realistic automated test scenarios that mirror production environments.

Deep dive into the Elixir Logger module

When your application suddenly fails at 3 AM, logs will be your best friend the next morning. But until this happens, we often treat logs as an afterthought. Sometimes there is a discussion on log levels or wording of the message, but we rarely go beyond that. After all, what's so interesting in pushing out a bunch of letters, perhaps with some additional metadata, which we will not use 95% of the time? The Elixir Logger module has us covered well. It's a solid foundation for our basic logging needs.

Kamal 2: Deploying multiple apps

Deploying more than one web application on a single server used to require a lot of infrastructure fiddling. Docker made this better, but some things that are new in Kamal 2 make deploying containerized applications even easier. Kamal is a deployment tool from Basecamp that leans on Docker and its own integrated proxy to simplify deploying web apps. Kamal 2 makes deploying more than one Rails app to the same server easier.

20 years of Rails deployments at RailsConf

Today, we're going to have a little history lesson for those of you who haven't been around since forever, but for those of you who have been around since forever, hopefully this will be a nostalgia fest. We can enjoy some good memories together. From FTP to Kamal, an oral history of deploying Rails apps. Watch the video for the full story!

Elixir background jobs: choosing the right tool for the job

With its vast ecosystem, Elixir offers multiple solutions for running things in the background. To a newcomer or even an experienced developer, the variety of options might seem daunting. Some tools that used to be popular have fallen into the maintenance limbo, while others have emerged as default choices.