profile

Static Ruby Monthly

Static Ruby Monthly | Issue 11, December 2025


Static Ruby Monthly

The only newsletter dedicated to static typing in Ruby

Welcome to another issue of the Newsletter!

The year is wrapping up, but the typing ecosystem shows no signs of slowing down. From JRuby compatibility efforts to fresh experiments in inline type syntax, plus more gems embracing typed interfaces - there’s plenty to unpack this month.

Let’s dive in. 🚀

You can find all the previous issues of the newsletter in my archive.

I’d really appreciate any feedback that could help improve the newsletter. Feel free to share your thoughts using this form.

Cheers,


First up, a call for community support: the effort to bring RBS support to JRuby is gaining momentum. The PR (ruby/rbs#2572) is looking for contributors, and a lively discussion on Reddit highlights how impactful this integration would be for expanding typed Ruby beyond CRuby. If you’ve ever wished JRuby could join the typed future now’s a good moment to lend a hand. 🧱

Meanwhile, a brand-new approach to inline types has surfaced: Lowtype, an elegant take on built-in type annotations. It’s early days, but the concept is fresh, ambitious, and sparks a lot of curiosity about what native Ruby typing might look like someday. Huge respect to @medi for taking on a challenge that many have dreamed of. Let’s see where this one goes. ✨

And speaking of ambitious: @highwayvaquero published a thoughtful deep dive into dspy.rb, highlighting how typed Ruby integrates beautifully with modern AI workflows. Typed pipelines, structured reasoning, deterministic behavior - this is exactly the kind of synergy many of us hoped typing would bring to Ruby’s AI story. 🤖

Not stopping there, he also released a new gem: sorbet-toon a decoder/encoder for Sorbet Runtime payloads to and from TOON. It’s niche, clever, and another example of how typing tools keep pushing the ecosystem forward in unexpected ways. 🧩

PROMOTION

Level up your Ruby skills with Static Typing!

Master RBS and write more robust, maintainable, and error-free Ruby code. This course gives you practical, real-world techniques you can apply immediately to any Ruby project.

🚀 Start building smarter Ruby software today!

A few important gem updates worth your attention:

tree-sitter-rbs → v0.2.2 A polished update to the RBS grammar for Tree-sitter. If you’ve ever relied on incremental parsing or editor tooling, Tree-sitter is likely somewhere in the background doing the heavy lifting. This keeps RBS aligned and snappy. 🌳

aasm_rbs → v0.3.1 Generates RBS signatures for your AASM classes, and now supports only modern Ruby versions. A small but meaningful tightening of compatibility. ⚙️

New: rails_mcp_engine - a fresh addition to the Rails 8 ecosystem. It lets you define Sorbet-typed service class signatures once and auto-generates both RubyLLM and FastMCP tool classes on boot. A unified tool-definition pipeline for modern typed Rails apps. 🔧

vscode-sorbetto → v0.3.9 The community-driven fork continues to refine the Sorbet experience in VS Code. New features include:

  • A sorbetto.compactSorbetDiagnostics setting for more compact diagnostic formatting
  • Improved compaction heuristics applied to diagnostic message fields Small UX improvements that make a real difference during long coding sessions. 💻

scip-ruby → v0.4.7 The experimental SCIP indexer for Ruby—powering precise navigation, go-to-definition, references, and more—receives updates to stay compliant with the SCIP spec. It also fixes local variable behavior for newer Sourcegraph versions. A win for code exploration. 🔍


A bit adjacent to static typing, but too good not to include: a clear breakdown of static vs dynamic code analysis using Rubocop as the example. If you’ve ever wondered how Ruby tools “understand” your code from the inside, this piece is a great read and ties nicely into how RBS and Sorbet reason about structure. 🧠

And rounding out the month: typeprof → v0.31.0 The experimental type-level Ruby interpreter continues its slow and steady evolution, offering new insights into Ruby’s behavior and pushing the boundaries of automated type discovery. 🔍


TL;DR

JRuby is inching closer to RBS compatibility, new experiments like Lowtype revisit the dream of native inline types, and maintainers across the ecosystem continue to polish and expand typed Ruby tools: from editors to interpreters to AI-driven workflows. The energy remains high, and the movement keeps growing. 🌱

Your faithful static typing guy ✍️

Your essential Static Typing toolset


rbs

official Ruby Signature solution from the Ruby team

repo


rbs-inline

extension to rbs lets you write signatures in line with your code

repo


steep

type checker for the Ruby signatures

repo


sorbet

type signature and type checking solution designed by Stripe

repo


ruby-lsp

essential toolset and extension, which helps with Ruby development in the VS Code

repo


steep VS Code extension

steep integration with the IDE

repo


rbs syntax VS Code extension

ease the work with RBS signature files

repo


“Let's do TDD - type-driven development”


Ringheide, Hamburg, 21149
Unsubscribe · Preferences

Static Ruby Monthly

Discover insights, tips, and updates on RBS, Steep, Sorbet, and more. Perfect for developers who want to master type-safe Ruby programming.

Share this page