GraphQL is a flexible, strongly-typed query language. It's useful because it gives front-end developers the ability to query the database without many changes to the back-end. In this article, David Sanchez shows us how to design and build our own GraphQL APIs in Rails.
Turbolinks is no longer being developed. It's been superceeded by Turbo, which is part of Hotwire. In this article, Julio Sampaio shows us how to port our existing Turbolinks apps to Turbo.
In the third and final article of our series on the OWASP Top 10 Web Application Security Risks, we’ll explore the lesser-known risks associated with the development of web applications on Rails when it comes to threats involving security misconfiguration, JSON escaping, etc.
Kubernetes is a popular way to deploy web services and applications using containers. In this, the second of a two-part series, Geshan finishes his step-by-step tutorial for getting up and running with Rails and k8s.
It's not every day that you learn a new approach to error handling for Ruby. In this article, Abiodun walks us through a novel error-handling process called Railway Oriented Programming and shows us how to implement it with dry-rb's monads.
Kubernetes has become very popular in recent years as a way to deploy applications using containers. In this article, Geshan shows us how to get a Rails app up and running inside a local K8s cluster.
DynamoDB is a NoSQL database offered by AWS. It can be a great way to avoid adding load to your primary database when you need tens of thousands of reads/writes per second. In this article, Julie Kent walks us through the basics of using DynamoDB with Rails.
The #descendants method is part of Rails. It returns all subclasses that inherit from a given class. In this article, Jonathan Miles shows us how to use this method and how it's implemented. It's a great lesson in the ins and outs of Ruby's object model.
If someone steals your password, they can pretend to be you. That's why many companies provide two-factor or multi-factor authentication via a fingerprint scan, a YubiKey, an authenticator app, or SMS. In this article, Petr Hlavicka will give you a solid foundation of knowledge about multi-factor authentication and will walk you through implementation with Rails, Webauthn, and Devise
Turbo and ActionCable make it a snap to create Rails applications that respond to user behavior in real-time. In this article, Abiodun shows us how to use them together to create a full-featured chat application in Rails.
Race conditions are arguably the most insidious kind of bug; they're intermittent, subtle, and most likely to occur in production. ActiveRecord's
update_counter provides us with a convenient way to avoid race conditions when incrementing or decrementing values in the database. In this article, Jonathan Miles shows us how to use it, how it's implemented, and other approaches to avoiding race conditions.
To decide on a front-end for your Rails app, you need a feel for the options. Does a certain JS framework speak to you or does it make you feel dirty inside? There's only one way to find out! In this article, Julio Sampaio walks us through creating a React app from scratch and integrating it with a Rails back-end via webpacker.
Before you can decide on a front-end for your Rails app, you need a feel for the options. Does a particular JS framework speak to you or does it make you feel dirty inside? There's only one way to find out! In this article, Julio Sampaio walks us through creating an Angular app from scratch and integrating it with a Rails back-end via webpacker.
Configuring your Rails app via environment variables works well, but sometimes you want to be able to update your configuration on the fly. Here's a way to update your app's environment using SSM Parameter Store.
Why would you want to do this? Well...
We added a useful debugging tool called Breadcrumbs. Check them out, and perhaps you will never need a random debug log in production ever again.
Last week we released version 4.0.0 of the
honeybadger Ruby gem. This release includes a long-awaited feature which makes it even easier to customize your error reports before they are sent to Honeybadger. We also did some much-needed refactoring, and made a few removals and deprecations for good measure. Don't worry, though—most of the API remains unchanged, so upgrading should be a relatively painless process for most users.
In this story, Jason Swett of The Ruby Testing Podcast discusses the pitfalls of external dependencies in your test suites, and how to avoid them.
We recently shipped version 3.2 of the honeybadger Ruby Gem, which includes a new feature to make it easier to add context to your error reports.