---
title: "How to install a Ruby gem the hard way"
publication: "Ruby Weekly"
issue: 793
published_at: "2026-03-26"
canonical_url: "https://rubyweekly.com/issues/793"
---

Plus, the final normal release of Ruby 3.3, running Python alongside Ruby, and making HTTP requests that look like they came from a real browser.        

#​793 — March 26, 2026 

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

Together with [![FastRuby.io\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_467,h_106/e_make_transparent/co_white,e_outline:14/y65nyff19ylf5udphsq4.png)](https://go.fastruby.io/tsv)   

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/jdm0tmdthhdb4zcdrj8g.jpg)](https://andre.arko.net/2026/03/24/how-to-install-a-gem/)  

[How to Install a Gem (It's Harder Than It Sounds)](https://andre.arko.net/2026/03/24/how-to-install-a-gem/) — As one of the people behind Bundler 1.0 and a former maintainer of [RubyGems.org](https://rubygems.org/), and _now_ working on [gem.coop](https://gem.coop/) and [rv](https://github.com/spinel-coop/rv), André knows a few things about how gems tick _(big understatement)_. This post is full of ‘aha’ moments as he walks through installing a gem _by hand_, giving us an idea of what tools like `gem` and `rv` do for us. 

André Arko   [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/e695ee0d.jpg)](https://go.fastruby.io/tsv) 

[A Solo Founder Story: 'I Got Fed Up Chasing Contractors'](https://go.fastruby.io/tsv) — Tim tried hiring and outsourcing, but nothing fit. Then he found Bonsai. Now he gets [reliable monthly Rails maintenance](https://go.fastruby.io/less_worry) with almost no oversight. "FastRuby.io works independently. I can trust their work without worrying if something will break." 

Bonsai by FastRuby.io® sponsor   

[Building Browser-Based Ruby Tutorials with Tutorialkit.rb](https://evilmartians.com/chronicles/tutorialkit-rb-interactive-ruby-tutorials-entirely-in-the-browser) — [TutorialKit.rb](https://github.com/Bakaface/tutorialkit.rb) is a toolkit for building interactive Ruby (and Rails!) tutorials that _run in-browser_ with WebAssembly. This post tours building your own experiences, shares working examples right in the post, and explains the tech behind it all, including a custom Ruby WASM build that can run Rails. 

Pazderin and Dementyev (Evil Martians)   

**⚡️ IN BRIEF:** 

- [Ruby 3.3.11 has been released](https://www.ruby-lang.org/en/news/2026/03/26/ruby-3-3-11-released/) with a fix for the recent [zlib vulnerability](https://www.ruby-lang.org/en/news/2026/03/05/buffer-overflow-zlib-cve-2026-27820/). **This is the final normal maintenance release of Ruby 3.3**, so it's time to plan an upgrade to 3.4 or 4.0.
- [Early-bird tickets](https://ti.to/rubyconf/rubyconf-2026) for [RubyConf 2026](https://rubyconf.org/) (taking place this July in Las Vegas) are available. Dave Thomas is one of the keynoters.
- Lots of minor Rails releases this week: [Rails 7.2.3.1, 8.0.4.1, and 8.1.2.1](https://rubyonrails.org/2026/3/23/Rails-Versions-7-2-3-1-8-0-4-1-and-8-1-2-1-have-been-released) to fix a variety of security issues, and [8.0.5 and 8.1.3](https://rubyonrails.org/2026/3/24/Rails-Versions-8-0-5-and-8-1-3-have-been-released) as regular bugfix releases.
- 🏴󠁧󠁢󠁳󠁣󠁴󠁿 [Haggis Ruby 2026](https://haggisruby.co.uk/) is a Scottish Ruby conference returning this April 23-24 with a fantastic lineup.
- JetBrains released [RubyMine 2026.1](https://blog.jetbrains.com/ruby/2026/03/rubymine-2026-1-ai-chat-upgrades-new-code-insight-stable-remote-development-and-more/), the latest version of its Ruby IDE.   

[Meet Duck Typer: Your New Duck Typing Friend](https://thoughtbot.com/blog/meet-duck-typer-your-new-duck-typing-friend) — Duck typing gives us polymorphism for free, but what if you want the interface to be _enforced?_ Duck Typer does just that, asserting that a set of classes share compatible public interfaces, catching signature drift and missing methods without fuss. 

Thiago Araújo Silva (Thoughtbot)   

[AI Shouldn't Cost More Than It Saves](https://sinaptia.dev/services/intelligent-rails-applications?utm_source=cooperpress&utm_medium=newsletter&utm_campaign=rubyweekly-2026q1&utm_content=sponsored) — We can find where LLMs pay off, validate with real data, and tune for cost/effectiveness. Need help from experts? [Let's talk](https://sinaptia.dev/contact-us?utm_source=cooperpress&utm_medium=newsletter&utm_campaign=rubyweekly-2026q1&utm_content=sponsored). 

SINAPTIA sponsor   

📄 [Ten Ways `CSV.read` Can Silently Corrupt or Lose Your Data](https://dev.to/tilo_sloboda/10-ways-rubys-csvread-can-silently-corrupt-or-lose-your-data-1g02) – Pitches [SmarterCSV](https://github.com/tilo/smarter_csv) (a library of 14 years' maturity) as the solution. Tilo Sloboda 

📄 [Transfer Manager Directory Support for AWS SDK for Ruby](https://aws.amazon.com/blogs/developer/transfer-manager-directory-support-for-aws-sdk-for-ruby/) – The _AWS SDK for Ruby_ Transfer Manager now supports directory uploads and downloads. Juli Tera (AWS) 

📄 [Deploying a Rails 8 App with Kamal on Hetzner](https://mooktakim.com/blog/deploying-rails-with-kamal/) – An exhaustive step-by-step walkthrough of the process. Mooktakim Ahmed 

📄 [Migrating from Devise to Rails' Authentication Generator](https://nithinbekal.com/posts/devise-to-rails-auth/) Nithin Bekal  

🛠 Code & Tools  

[Nokolexbor 0.7: A Faster Drop-in Replacement for Nokogiri](https://github.com/serpapi/nokolexbor) — A [Lexbor](https://lexbor.com/)-based HTML5 parser that’s multiple times faster than Nokogiri. Ruby 2.7 is dropped, but Ruby 4.0 is supported and gets precompiled gems (installed in <4 seconds on my machine). 

SerpApi   

[wreq-ruby: An HTTP Client with Real Browser TLS/HTTP2 Signatures](https://github.com/SearchApi/wreq-ruby) — Uses the Rust-powered [wreq](https://github.com/0x676e67/wreq) under the hood to make HTTP requests that appear as if they come from mainstream browsers by using the same headers, TLS extension and cipher suite ordering, HTTP/2 frame settings, etc. 

SearchApi   

[Your Rails App Has an N+1 Problem. AppSignal Will Show You Where](https://www.appsignal.com/?utm_source=newsletter&utm_medium=paid&utm_campaign=rubyweekly&utm_term=3-26&utm_content=sponsored-link) — Auto detect N+1 queries, slow ActiveRecord calls, and memory leaks in your app. One gem, and you're monitoring in minutes. Free 30-day trial, no card required. 

AppSignal sponsor   

[Rubyx-py: A New Way to Call Python Code from Ruby](https://github.com/yinho999/rubyx) — A Rust-powered bridge between Ruby and Python’s C APIs that brings Python into the same memory space as Ruby and shuttles objects back and forth (with no IPC or serialization) and uses [uv](https://docs.astral.sh/uv/) to manage dependencies. 

yinho999   

💡 rubyx-py is clearly experimental, so I gave it a try. Segfaults-a-plenty till I used Ruby 4.0.2 compiled with `--enable-shared`, but it works! I'll blog about this soon as it opens up some interesting capabilities.  

[simplecov-compare: Compare Coverage Reports Over Time](https://kevinjmurphy.com/posts/announcing-simplecov-compare/) — [SimpleCov](https://github.com/simplecov-ruby/simplecov) reports show the test coverage of code at a point in time, but this will help you track changes over time. 

Kevin Murphy   

- 🤖 [ruby-mcp-client 1.0](https://github.com/simonx1/ruby-mcp-client/releases/tag/1.0.1) – Ruby Model Context Protocol (MCP) client, now with latest spec support including support for audio content, OAuth 2.1 enhancements, and [a full RubyLLM integration example.](https://github.com/simonx1/ruby-mcp-client/blob/main/examples/ruby_llm_mcp.rb)
- 🤐 [Top Secret 1.0](https://github.com/thoughtbot/top_secret) – Filter sensitive information from free text before sending it to external services or APIs.
- 🖼️ [pure-jpeg 0.3](https://github.com/peterc/pure_jpeg) – My pure Ruby JPEG encoder/decoder library is now much faster (0.2s on a 1024x1024 image) thanks to some third-party contributors 🎉
- [The Ultimate Turbo Modal for Rails (UTMR) 3.0](https://github.com/cmer/ultimate_turbo_modal) – Tailwind or vanilla CSS modal dialog implementation for modern Rails apps.
- [Chewy 8.0](https://github.com/toptal/chewy) – A high level framework for Elasticsearch.
- 💬 [telegram-bot-ruby 2.6](https://github.com/atipugin/telegram-bot-ruby) – Ruby wrapper for [Telegram's Bot API](https://core.telegram.org/bots/api) – now supporting [Bot API 9.5](https://core.telegram.org/bots/api-changelog#march-1-2026).
- [Avo 4 Open Beta](https://avohq.io/blog/avo-4-open-beta) – A popular framework for building Rails apps for internal tools.
- 💳 [Stripe Ruby Library 19.0](https://github.com/stripe/stripe-ruby/releases/tag/v19.0.0) – Stripe's official library.
- [RubyGems 4.0.9](https://blog.rubygems.org/2026/03/25/4.0.9-released.html)       

📰 Classifieds   

🙋‍♂️ What’s next for Heroku? Jon [has some thoughts](https://judoscale.com/blog/heroku-whats-next?utm_source=ruby-weekly&utm_medium=newsletter&utm_campaign=content&utm_content=jon-human-whats-next). 

--- 

♦️ Build Ruby apps that never lose state, even when things fail. Learn by building an app from scratch in a [free Temporal Ruby SDK course](https://learn.temporal.io/getting_started/ruby/hello_world_in_ruby/?utm_source=newsletter&utm_medium=sponsorship&utm_campaign=newsletter-2026-03-26-ruby-weekly&utm_content=ruby-weekly-build-app-ruby). 

--- 

[Help us save the German healthcare system](https://reimbursement.info/softwareentwickler-in%20) - Develop the leading healthcare stats platform with a small dedicated team in a stress free environment (Cologne based). 

--- 

💎 [Hiring Senior Ruby on Rails Engineers at EverAI](https://jobs.ashbyhq.com/everai/3b22edca-5a41-4c00-9936-fda979904d81?utm_source=rubyweeklynewsletter): 50 million users, fully remote. Not used Ruby lately? That's okay, you can still apply!    

📢 Elsewhere in the ecosystem 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/qouk1w09lspr9hawiyuq.jpg)](https://github.com/redneckbeard/thanos)  

- Four years ago, we first mentioned [Thanos](https://github.com/redneckbeard/thanos), an experimental Ruby to Go transpiler. Its author has recently wielded AI to 'finish the job'. I took it for a spin and it's very cool, but type inference demands and a lack of metaprogramming make many potential use cases a no-Go...? 😅
- 37signals made its [Fizzy](https://www.fizzy.do/) Kanban app, built in Rails, ['source available'](https://github.com/basecamp/fizzy) a few months ago but maintained the paid, SaaS version. That paid version, however, is now entirely free to use.
- 🤖 GitHub has announced that, starting late April, data (including inputs and snippets) from Free, Pro, and Pro+ Copilot users [will be used, by default, to help train future AI models](https://github.blog/news-insights/company-news/updates-to-github-copilot-interaction-data-usage-policy/). You can, however, opt out.
- 🔒 More than ever, it's essential to ensure no secrets have snuck into your repos. [Secretlint](https://github.com/secretlint/secretlint) is a linting tool dedicated entirely to the task. It's written in Node but can be used with Docker against projects of any language.         

Curated by [Peter Cooper](https://twitter.com/cooperx86) 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/).
