---
title: "Why Shopify's CLI dropped Ruby for Node"
publication: "Ruby Weekly"
issue: 636
published_at: "2023-01-12"
canonical_url: "https://rubyweekly.com/issues/636"
---

Plus do Rubyists like static typing, a WebAssembly demo, and a Ruby library for Facebook's APIs. |        

#​636 — January 12, 2023 

[Read on the Web](https://rubyweekly.com/issues/636)  

Together with [![Crunchydata\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_430,h_100/e_make_transparent/co_white,e_outline:7/xyflkz7n00elwtgja9ne.png)](https://crunchybridge.com/start?utm_source=cprb-prim-0111)  

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/bm5ov6uto6u08ww2lxg4.jpg)](https://shopify.engineering/overhauling-shopify-cli-for-a-better-developer-experience)  

[From Ruby to Node: Overhauling Shopify’s CLI](https://shopify.engineering/overhauling-shopify-cli-for-a-better-developer-experience) — Aw, Shopify.. we thought you loved only us ([and Rust](https://shopify.engineering/shopify-rust-systems-programming))! In this post, a Shopify engineer explains why they took a different route with Shopify’s CLI app by rewriting it in Node. There are numerous reasons, though easier cross-platform packaging was a big motivation. 

Pedro Piñera (Shopify)   

[Some More of What's New in Ruby 3.2](https://nithinbekal.com/posts/ruby-3-2/) — Our [previous issue](https://rubyweekly.com/issues/635) was essentially dedicated to Ruby 3.2, but if you want a quick, accessible ‘here’s a few interesting things in Ruby 3.2’ post, this is for you. 

Nithin Bekal   [![\](https://copm.s3.amazonaws.com/9b6dafc1.png)](https://crunchybridge.com/start?utm_source=cprb-prim-0111) 

[❤️ Postgres](https://crunchybridge.com/start?utm_source=cprb-prim-0111) — You need a database provider that loves Postgres as much as you do. We'll take care of all the hassle - monitoring, backups, HA, disaster recovery so you don't have to. Want amazing support? We'll be there when you have questions. 

Crunchy Bridge sponsor   

[Ruby WebAssembly Todo App Example](https://hparker.xyz/ruby_todo.html) — A fun example with editable code in the browser that you can change and rebuild on the fly. Yes, Ruby is running entirely in the browser here (at the cost of an 8MB WASM payload). 

Adam Hess   

▶[Don't Sleep on Ruby and Rails](https://changelog.com/podcast/521) — Justin Searls joined Jerod Santo and Adam Stacoviak to share his enthusiasm for Rails 7, Turbo and Stimulus (in particular) and how the modern Rails approach stands up so well in 2023. 

The Changelog podcast   

**QUICK BITS** 

- [Lars Greiving noted](https://twitter.com/larsgreiving/status/1612484079324127233) that AWS's _Lambda_ serverless platform uses Ruby 2.7 as its _official_ Ruby runtime, but Ruby 2.7 goes 'end of life' in just 2 months.. Can they get Lambda up to Ruby 3 by then?
- ['Microfeatures I'd like to see in more languages'](https://buttondown.email/hillelwayne/archive/microfeatures-id-like-to-see-in-more-languages/) isn't about Ruby, but Ruby's _symbols_ are picked out as a compelling feature.
- On Reddit's /r/ruby, there was [a discussion about the merits of static typing in Ruby.](https://www.reddit.com/r/ruby/comments/105sdax/whats_the_latest_on_static_typing) _Spoiler: there are rather few fans.._😬
- There appear to be some [file permission issues](https://github.com/mikel/mail/issues/1489) remaining on the popular `mail` gem and [folks are keen to see a 2.8.0 release](https://github.com/mikel/mail/issues/1541#issuecomment-1376959858) that will fix it.
- [GitHub has a new option](https://github.blog/2023-01-09-default-setup-a-new-way-to-enable-github-code-scanning/) for code scanning called 'default setup' to automatically set up code scanning (of Ruby, JS and Python code) on repos.  

📕 Tutorials, Articles & Features  

['My First Code Commit in Ruby'](https://kevinjmurphy.com/posts/my-first-code-commit-in-ruby/) — The story behind Kevin’s small (but not insignificant) contribution to Ruby may inspire you to dig a bit deeper, share your own knowledge, and end up contributing in ways you didn’t expect. 

Kevin Murphy   

[An Easily Overlooked Way to Break Eager Loading in Rails Apps](https://pawelurbanek.com/rails-eager-ordered) — If you think using `includes` means you’re safe from N+1 queries, think again. There are many ways to introduce these errors into your app if you aren’t careful. 

Paweł Urbanek   

[Rails Upgrades You Can Depend On](https://www.upgraderails.com) 

upgraderails.com sponsor   

▶[A Different Way to Think About Rails Models](https://www.youtube.com/watch?v=NUfe_ncKhYE) — Models in Rails don’t _have_ to be derived from Active Record, or even involve a database at all. Jason thinks about other ways to model concepts in your apps. _(28 minutes.)_ 

Jason Swett   

▶[Ruby on Wasm: Is This The Future?](https://www.fullstackruby.dev/podcast/7/) — Real Ruby in the browser everywhere? Not exactly, but Ruby’s WebAssembly developments are exciting for sure. _(20 minutes.)_ 

Jared White podcast   

[Creating a Business Language for a Rails App](https://blog.appsignal.com/2023/01/11/create-a-business-language-for-a-rails-application.html) — Building and processing a DSL to extend a Rails app's functionality. 

Paweł Świątkowski   

[What If Writing Tests Were a Joyful Experience?](https://blog.janestreet.com/the-joy-of-expect-tests/) — Jane Street’s developers use ‘expect tests’ to make writing tests easier. They’re using OCaml, but the idea is interesting and the author makes a comparison with RSpec and how a Ruby equivalent could look. 

James Somers (Jane Street)   

[Free eBook: Advanced Database Programming with Rails and Postgres](https://pganalyze.com/ebooks/advanced-database-programming-rails-postgres?utm_source=RubyWeeklySecondary01122023) 

pganalyze sponsor   

[Testing Rails Loggers with Minitest](https://richstone.io/testing-rails-loggers-with-minitest/) — Not something you might usually consider testing, admittedly. 

Rich Steinmetz   

[Effective and Easy Strategies to Hate Bugs a Little Less](https://blog.testdouble.com/posts/2023-01-03-effective-and-easy-to-implement-strategies-to-hate-bugs-a-little-less/) 
Pier-Luc Faucher  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/qgwpg2jij0ltysaoprcd.jpg)](https://github.com/red-data-tools/YouPlot)  

[YouPlot: A Command Line Tool That Draw Plots on the Terminal](https://github.com/red-data-tools/YouPlot) — A sweet little Ruby-powered tool. The underlying plotting library is [Unicode Plot](https://github.com/red-data-tools/unicode_plot.rb) if you want to pull off similar feats from your own code. 

Red Data Tools   

[Free Website Speed Test: Does Your Site Meet Google's Core Web Vitals?](https://www.debugbear.com/test/website-speed?utm_source=newsletter&utm_medium=sponsored&utm_campaign=ruby-weekly-1) — Get an in-depth technical analysis of your site and learn how to make it fast. Rank higher in Google & deliver great UX. 

DebugBear sponsor   

[Koala 3.4: Ruby Library for Facebook's APIs](https://github.com/arsduo/koala) — If you need to work with Facebook’s Graph, Marketing or Atlas APIs, this is for you. 

Alex Koppel   

- [Phlex 1.1](https://github.com/joeldrapper/phlex)
 ↳ Framework for building object-oriented views in Ruby itself.
- [Rubocop 1.43](https://github.com/rubocop/rubocop)
 ↳ Popular code analyzer and formatter.
- [Sidekiq 7.0.3](https://github.com/mperham/sidekiq)
 ↳ Popular background processing system.
- [Listen 3.8](https://github.com/guard/listen)
 ↳ File modification notification library.
- [RubyGems 3.4.3](https://blog.rubygems.org/2023/01/06/3.4.3-released.html)     

Jobs  

[Curious How Great Products Get Made?](https://www.linkedin.com/jobs/view/3411948952/) — Come help us craft the operating system for modern manufacturing. 
Wherefour   

[Land Your Next Rails Job Without the Hassle ✨](https://railsdevs.com/?ref=ruby-weekly) — Create your profile and have companies reach out to YOU. ❤️ Get hired on RailsDevs, the open source REVERSE job board for Rails developers. 
RailsDevs      

**WORTH A LOOK:** 

- [Rails Email Preview](https://github.com/glebm/rails_email_preview)
 ↳ Preview and edit app mailer templates.
- [RuCaptcha](https://github.com/huacnlee/rucaptcha)
 ↳ Captcha generation for Rails by way of Rust.
- [MessageBus](https://github.com/discourse/message_bus)
 ↳ Robust messaging bus for Ruby and Rack.
- [Refrigerator](https://github.com/jeremyevans/ruby-refrigerator)
 ↳ Freeze all core Ruby classes.
- [ValidatesTimeliness](https://github.com/adzap/validates_timeliness)
 ↳ Date and time validation plugin.         

Curated by [Peter Cooper](https://x86.social/@cooper) and [Glenn Goodrich](https://twitter.com/ruprict).
Published by [Cooperpress](https://cooperpress.com/). 

[Change your email](https://rubyweekly.com/edit_subscription/*|UID|*) or [Stop getting this newsletter.](https://rubyweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom   

Other weekly newsletters we publish include [Postgres Weekly](https://postgresweekly.com/), [React Status](https://react.statuscode.com/), [Frontend Focus](https://frontendfoc.us/), and [JavaScript Weekly](https://javascriptweekly.com/).
