blueprint

BiggerPockets product & engineering blog

Latest Posts

  • Finding unused Rails view partials with DataDog and Github Actions

    As a Rails application matures, views gets moved around and sometimes rewritten. This opens up the possibility of dead view partials lying around: partials that are no longer rendered by any views. These unused view partials clutter up our workspace and impose a small maintenance burden. At BiggerPockets, we use DataDog and Github Actions to identify these unused partials so that they can be manually cleaned up.

  • Checking for Rails schema drift in CircleCI

    Schema drifts happen when your local development environment stops matching the production environment. These occur naturally as engineers simultaneously work on modifications that affect the same database entities. For example, if two engineers both write a migration that adds a column to a table, they may end up in a situation where their databases have the columns in different order. This causes problems whenever the two engineers check in subsequent migrations: each of their versions of db/schema.rb are different because the migrations were run in a different order.

  • Gracefully handle errors in Rails 7

    Rails 7 includes a new error reporting pattern. Handle your errors in one simple clean line of code. Let's see how.

  • How we upgraded the BiggerPockets platform to Rails 7

    The Ruby on Rails team recently released version 7 of their web application framework, and BiggerPockets has been on Rails since 2009, so we were eager to upgrade for a number of reasons. Despite our application being 237kloc, the upgrade was mostly done by one engineer, John Gallagher, with zero downtime and only a few post-upgrade bugs encountered. This post documents our lessons learned, but overall we could not be happier with how much easier it has become to maintain our “magestic monolith.”

  • How we upgraded the BiggerPockets platform to Ruby 3.0

    The Ruby 2.7 to 3.0 upgrade was the riskiest Ruby upgrade in recent memory. We took a methodical approach to executing this upgrade in a (nearly) bug-free way.

  • A Simplistic Walkthrough of Deployments

    This is a basic introduction to how deployment of production code is structured with some tips on how you can be proactive to make your life easier.

  • Simplistic Synonyms for Elasticsearch

    For this article, you should already have knowledge of Elasticsearch and of some relatively basic concepts like tokens, analyzers, and simple bool queries. If you need some background on these topics, or help setting up a local Elasticsearch instance, check out: