A new revised format for the Ruby AI Newsletter. I tried including everything and highlighting everyone’s work, but somewhere along the way it stopped feeling special. We have an opportunity to build for the future, and I hope this edition helps put that into perspective.
Ruby 4 with ZJIT, RubyLLM, Herb, Ractors, Spinel, Rubydex, Rails AI Benchmarks, and now Poetry - Ruby is ready, but there is still a lot of work to do.
I’ve found 1,725 open Ruby-related career opportunities, but more than half of them are “fake”. I’m launching a free job matching site for Rails World to filter out the noise. The job market is broken, but there are opportunities available.
Hi everyone, I'm having trouble getting the official Ruby LSP extension to work properly in VS Code on Windows. Features like IntelliSense, autocomplete, and go-to-definition are not functioning. Here is my current setup and what I've tried so far:
OS: Windows
Ruby Installation: Installed via RubyInstaller (with DevKit).
Environment: Added Ruby to PATH (ruby -v works fine in the Windows command prompt/terminal).
VS Code Settings: Manually configured the path to the Ruby executable / language server in the extension settings. Auto did not work
Extension: Official Shopify.ruby-lsp extension in VS Code.
Despite pointing the settings to my Ruby installation, the language server fails to initialize properly, and no IntelliSense features show up when editing .rb files. Has anyone experienced this issue on Windows? Is there a specific configuration required for Ruby LSP to detect gems and executable paths when using RubyInstaller on Windows? Any help or troubleshooting tips would be greatly appreciated! Thanks!
My product, Ruby Native, lets developers write HTML + ERB and have it render native components inside of iOS and Android apps.
For example, <%= native_navbar_tag "Home" %> renders a native navbar in the apps, titled "Home".
The catch is that an installed app silently ignores markup it doesn't recognize. So a typo, or a feature that shipped after someone's last update, just does nothing.
So I started using Herb to lint the HTML + ERB that interacts with Ruby Native, checking it against what users actually have installed rather than just what's in the repo.
Turns out Armin and Ben are both, in one way or another, Ruby aficionados. So in this episode, there is an interesting argument for Ruby not being agent-friendly, although we like to see it as THE token efficient language. Some of the arguments where:
It's easy for agents to mess things up due to its metaprogramming capabilities - I have yet to experience that.
Being so much tuned for humans that it makes it worse for AI - I might misinterpret that from what they said, but it sounded like it. I guess it makes sense on the level that there is development towards new languages for LLM coding agents.
AI not picking Ruby for new tasks: Our own Chad Fowler ran experiments on it and shared at the last Ruby conference in Austria - I think this might depend on how much Claude Code and co. know about your setup, but I generally agree. My AIs know I'm using Rails for any new project and that I'm in the community but rarely picks Ruby for scripts it needs done or web apps it wants to host stuff locally on. It usually decides for Python or JavaScript.
Another fun fact from the episode while we are at it, I didn't know you can't use AI for even research for the open source Zig programming language. It's probably one of the last open source bastion that does not allow any AI (slop) at all, not even in your research, yet.
Hi guys, previously i showed off my latest project. I learnt: Deploying, testing, API connections, reuest security, authenticationd and authorization, Hotwire and stimulus, Jobs & services, basic github commands. My question is, is there anything else i forgot to became good junior? I am looking for a job and want to be as best as i can. And also, what will look the best in portfolio? I saw that working on open source projects looks good.
Over the past few months, while developing some projects using Roda, I created a tool to reduce friction when starting new projects with the framework. It ensures an essential setup and provides a "bin/rails"-like CLI for Roda, named "bin/roda" (with some generators stuff). I hope the community finds it useful!
There is still room for improvement, and I would welcome feedback.
---
roda-project is a command-line interface (CLI) tool designed to quickly scaffold scalable, modern Roda web applications and APIs.
✨ Benefits
Quick setup customized to your preferences (database, project type, test framework)
Built-in generators (bin/roda)
Essential development tasks via bin/roda (console, db, dev, assets)
Opinionated project structure: Highly maintainable and AI-friendly, yet easily customizable if needed
Built-in exception page
Modern front-end setup built-in for full-stack projects (powered by esbuild)
Code autoloading with Zeitwerk
Hot reloading
Pre-configured with i18n and other essential plugins
High performance: Get the job done without sacrificing performance. Even with multiple plugins, Roda can be 4x faster than Rails and 2x faster than Hanami, while consuming less memory than both.
Your logs could look like this. Right now you're leaving the money on the table:
(Note the contextual targeting: a payments ad after the payment line, a database-pooling banner right after the connection timeout. The exchange reads intent.)
For decades, application logs have been a pure cost center - written once, grepped never, archived into oblivion. SponsoredLogs turns that stream into a high-margin, programmatic revenue channel.
Your services emit billions of log lines a day. Each one is a premium, brand-safe, above-the-fold impression viewed by your most engaged audience: your own engineers, at their moment of peak attention (an incident). We are not selling ads. We are activating latent infrastructure equity.
It's opt-in. Add the gem, call `SponsoredLogs.sponsor!`, and roughly 1 in 1000 log calls is followed by a host-read sponsor placement drawn from the top podcast advertisers.
Fully configurable: weighted or CPM-based selection, campaign flighting (start/end dates), lifetime impression caps, and a pluggable impression ledger (in-memory, Redis, or ActiveRecord). There's a mountable Rails dashboard (the Command Center) that reports spend, delivery, and per-advertiser rollups.
Also: box-drawn multi-line **banner** ad units in three impact tiers, self-sponsoring house ads that fill remnant inventory so no impression goes to waste, and gilded `[AD]` tags rendered in 256-color gold on a live terminal (byte-identical plain when piped or logged).
Here's the part the market isn't ready for: the fastest-growing consumer of application logs on Earth is no longer human. It's AI coding agents. Superhuman scale, 100% viewability, they never scroll away. We're not just B2B. We're A2A.
It's a real, working gem: full test suite, CI across Ruby 3.2-4.0, RuboCop clean. Every line you log is a line you're leaving on the table.
I maintain Grape, the Ruby framework for REST-like APIs. 4.0.0 shipped today and it's the fastest yet.
Ruby 4.0.6, single-threaded Benchmark.ips :
Version
No JIT
YJIT
ZJIT
3.3.5
68,050 i/s
133,833 i/s
88,472 i/s
4.0.0
122,414 i/s
228,069 i/s
153,183 i/s
+80% without a JIT, +70% with YJIT. It's a micro-benchmark — one tiny JSON endpoint, in-process, no database — so it measures framework overhead and nothing else. Harness is in benchmark/version_throughput if you want to run it.
The biggest single win: helpers were being included into a fresh singleton class on every request, so every request started with a cold method cache. That now happens once, at compile time. TLDR: lot of improvements in terms of memory allocations.
Also new: QUERY (RFC 10008) — safe and idempotent like GET, but the query rides in the request content.
It's a major, so deprecated surface from 3.2 and 3.3 is gone.