Blogs


To Thread or Not to Thread: An In-Depth Look at Ruby’s Execution Models
Deploying Ruby applications using threaded servers has become widely considered as standard practice in recent years. According to the 2022 Ruby on Rails community survey, in which over 2,600 members of the global Rails community responded to a se...

Ruby on Rails — Welcoming Ryuta, Jean, John to Core and Yasuo, Jonathan to Committers
I’m thrilled to announce three new awesome members to the Rails Core team, which will increase the total number of core members to a cool twelve, and help ensure we have even more bandwidth to process the thousands of pull requests that go into ev...




Linting and Auto-formatting Ruby Code With RuboCop
Linting is the automated checking of source code for programmatic and stylistic errors. This checking is performed by a static code analysis tool called a linter. A code formatter, however, is a tool concerned with formatting source code so that i...

Shopify Invests in Research for Ruby at Scale (2022)
We want developments in programming languages and their implementations to be explored in Ruby, so that support for Ruby's unique properties are built in from the start. For example, Ruby's prevalent metaprogramming motivated a whole new kind of i...

Our Experience Porting the YJIT Ruby Compiler to Rust
Last year, my team at Shopify implemented YJIT, a new Just-In-Time (JIT) compiler for CRuby, which was recently upstreamed as part of Ruby 3.1. Because the CRuby codebase is implemented in C99, we also decided to implement YJIT in C99 so that inte...

How to Sell a One-time Purchase in Rails With Stripe
Used by millions of companies, Stripe provides payment infrastructure for applications to handle subscriptions and one-time purchases. Stripe Checkout allows us to easily accept card payments via a hosted payments page, which is crafted to increas...