---
title: "Rails' next rich text editor hits 1.0"
publication: "Ruby Weekly"
issue: 819
published_at: "2026-10-01"
canonical_url: "https://rubyweekly.com/issues/819"
---

Plus _why's Shoes lives on, updating C extensions for the modern Ruby VM, and we say goodbye to Rails 7.2.        

#​819 — October 1, 2026 

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

Together with [![AppSignal logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_1280,h_372/co_white,e_outline:7/nl4ksfby2hmtz6vx5vzw.png)](https://www.appsignal.com/alternative?utm_medium=paid&utm_campaign=rubyweekly&utm_source=rubyweekly&utm_content=primary&utm_term=1001)   

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/uudizcraa0cb23qxa1zb.jpg)](https://dev.37signals.com/lexxy-1-0/)  

[Lexxy 1.0: Rails' New Rich Text Editor to Replace Trix](https://dev.37signals.com/lexxy-1-0/) — Built on [Lexical](https://lexical.dev/) and already powering 37signals' Basecamp 5, it gives you tables, Markdown shortcuts, smart links, syntax-highlighted code and mentions, and it's easy to swap into [Action Text](https://guides.rubyonrails.org/action_text_overview.html) in place of [Trix](https://trix-editor.org/). 

Jorge Manrubia (37signals)  

💡 The [Lexxy site](https://lexxy.dev/) has [a sandbox demo](https://lexxy.dev/sandbox/) if you'd like to try it out first.  [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/00ac7ccd.png)](https://www.appsignal.com/alternative?utm_medium=paid&utm_campaign=rubyweekly&utm_source=rubyweekly&utm_content=primary&utm_term=1001) 

[Switching APM? One Ruby Gem Now Covers Distributed Tracing](https://www.appsignal.com/alternative?utm_medium=paid&utm_campaign=rubyweekly&utm_source=rubyweekly&utm_content=primary&utm_term=1001) — Errors, N+1s, Sidekiq jobs, logs, host metrics and now distributed tracing (beta) in one Ruby gem. Every feature on every plan, unlimited users, one predictable bill. See how AppSignal compares to Datadog, New Relic and Sentry. 

AppSignal sponsor   

▶[Tenderlove Closes Rails World with a Counterpoint to DHH](https://www.youtube.com/watch?v=t0knYnEYBRo) — Aaron's Rails World closing keynote dug into ZJIT, Ractors, Mike Dalessio joining Rails Core, and Ruby 4.0's [disappearing `Class#new` stack frame](https://railsatscale.com/2025-05-21-fast-allocations-in-ruby-3-5/#downsides-to-inlining). He also pushed back on DHH's keynote (which we [boiled down last week](https://rubyweekly.com/issues/818)), saying _"I'm going to keep reading my code, and I hope that you will too."_ 

Aaron Patterson  

💡 Meanwhile, [▶️ Matz and DHH had a 'fireside chat'](https://www.youtube.com/watch?v=IEOqgPfGLQ8) hosted by Jeremy Daer, largely covering Ruby's place in the AI era, with Matz discussing [Spinel](https://github.com/matz/spinel) and DHH saying he'll still start all his new web apps on Rails.  

**⚡️ IN BRIEF:** 

- New Rails 8.2 apps will [compile HTML+ERB templates through Herb by default](https://github.com/rails/rails/pull/58721), so an issue like an unclosed tag becomes a compile error. [Herb 0.11](https://github.com/marcoroth/herb/releases/tag/v0.11.0) is out too, and there's [a write-up of Marco Roth's _Rails World_ talk](https://www.fastruby.io/blog/reactionview-and-herb-in-rails-8-2.html) for context.
- [An adjustable compilation budget has landed for Ruby 4.1's YJIT](https://bugs.ruby-lang.org/issues/22236), letting apps spread warmup overhead over time to reduce latency spikes.
- Shugo Maeda [proposes letting refinements define `&&` and `||`](https://bugs.ruby-lang.org/issues/22392) for more natural query DSLs.
- [Rails 7.2.4 was released last week](https://rubyonrails.org/2026/9/24/Rails-Version-7-2-4-has-been-released) as the final 7.2.x release. Security and bug fixes will now only be provided for 8.0 and 8.1.
- Hiroshi Shibata has [an open PR bringing YJIT to 64-bit MSVC builds of Ruby on Windows](https://github.com/ruby/ruby/pull/19114).   

[Updating C Extensions for the Modern Ruby VM](https://ivoanjo.me/blog/2026/09/23/updating-a-c-extension-for-a-modern-vm/) — Ruby's C API is stable enough that ancient C extensions often still _run_ on Ruby 4, but they may not play as well with modern VM features as they could. Ivo has created [this handy (and official) document](https://github.com/ruby/ruby/blob/master/doc/contributing/efficient_extensions.md) for bringing older extensions up to date. 

Ivo Anjo   

[Hanami, Why? A Maintainer on Building Apps Differently to Rails](https://aaronmallen.me/writing/hanami-why-introductions) — A Hanami maintainer begins a series explaining what makes Hanami different to Rails with a tour of its core building blocks. 

Aaron Allen   

[🤖 Ready for Rails Upgrades on Autopilot? Rails 8.0 EOL Nov 7](https://go.fastruby.io/xch) — Our AI agent opens tiny, reviewable PRs once your test suite passes CI. Starting at $497/mo. 

FastRuby.io | Rails Upgrades on Autopilot sponsor   

📄 [Access Control for AI Agents on Rails: Gating SQL with Action Policy](https://evilmartians.com/chronicles/access-control-for-ai-on-rails-gating-sql-with-action-policy) – How to make an LLM's SQL queries obey your [Action Policy](https://actionpolicy.evilmartians.io/) rules. Platonov and Senkovskiy (Evil Martians) 

📄 [Why You Should Check a Gem's Lines of Code](https://spinel.coop/blog/why-you-should-check-your-gems-lines-of-code) – A rough measure of complexity when choosing dependencies. Kasper Timm Hansen (Spinel) 

📄 [Renaming a Rails Job Without Breaking Queued Work](https://railsrevelry.substack.com/p/job-enqueued-by-older-code) Rails Revelry  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/qmj3ih633sqlvhdr4vy3.jpg)](https://github.com/excid3/madmin)  

[Madmin 3: A Hotwire-Powered Rails Admin Interface](https://github.com/excid3/madmin) — A Rails admin built around scaffold-style views and Hotwire rather than a heavy DSL. v3 adds dark mode, filters on index pages, and replaces Pagy with built-in pagination. 

Chris Oliver   

[rv 0.7: The '`uv` for Ruby' Adds JRuby and a Built-In Formatter](https://spinel.coop/blog/rv-0.7-released/) — The fast Ruby version and gem manager can now install and manage JRuby too, and adds a `librubyfmt`-powered `rv fmt` command to format code. Here's [how to get started with `rv`](https://github.com/spinel-coop/rv/#install). 

Spinel Cooperative   

[Build Smarter Ruby Applications With Live Search Data](https://serpapi.com/cooperpress-newsletter) — Add search, shopping, maps, news, trends, flights and hotels results with one developer-friendly API built by Ruby engineers. 

SerpApi sponsor   

[Singed 0.4: Get a Flamegraph Anywhere in Your Code Base](https://github.com/rubyatscale/singed) — Wrap code in `flamegraph { }` to profile it with [stackprof](https://github.com/tmm1/stackprof) or, new in v0.4, [Vernier](https://github.com/jhawthorn/vernier) (which gives per-thread graphs), and view the results with [speedscope](https://github.com/jlfwong/speedscope#readme). 

Gusto   

[Active Search: Pluggable Full-Text Search for Rails Apps](https://github.com/basecamp/rails-active_search) — A new _alpha_ gem that gives Active Record models one search API across ten backends, from SQLite FTS5 and Postgres `tsvector` to Elasticsearch, Meilisearch and Typesense. 

Donal McBreen (37signals)   

[Herringbone: Pure-Ruby Parquet File Reader/Writer Library](https://github.com/julik/herringbone) — Includes full nesting support, filtered reads using statistics and bloom filters, plus `Herringbone.write(io, Order.all)` for dumping AR relations to Parquet. 

Julik Tarkhanov   

- [RDoc 8.1](https://github.com/ruby/rdoc/releases/tag/v8.1.0) – Ruby's documentation generator gets faster Markdown parsing and deprecates the Darkfish template. [The RDoc site](https://ruby.github.io/rdoc/) is a good demo of how it looks by default now.
- [Campfire 1.5](https://github.com/basecamp/once-campfire/releases/tag/v1.5.0) – 37signals' Rails-powered chat app. Bots can now read messages (even when not mentioned), add reactions, and edit their own messages.
- [Solid Cable 4.1](https://github.com/rails/solid_cable/releases/tag/v4.1.0) – Rails' database-backed Action Cable adapter. Adds encrypted messages and batched writes.
- [gems 3.0](https://github.com/rubygems/gems/releases/tag/v3.0.0) – Official Ruby client for the [RubyGems.org](https://rubygems.org/) API. Adds modernizations including trusted publishing and OTP support.
- 🖼️ [PureJPEG 0.4](https://github.com/peterc/pure_jpeg) – Pure Ruby JPEG encoder/decoder. Now works on [Spinel](https://github.com/matz/spinel)too.
- [Brakeman 8.1](https://brakemanscanner.org/blog/2026/09/30/brakeman-8-dot-1-dot-0-released) – Static analysis security scanner for Rails apps.
- [Mutineer 1.4](https://davidteren.github.io/mutineer/) – Mutation testing for Ruby code.       

📰 Classifieds   

💀 Your site is dead, bro! Will you hear it from [DeadBro.com](https://www.deadbro.com?utm_source=rubyweekly&utm_medium=newsletter&utm_campaign=classified-oct) or from your users? N+1s, errors, slow SQL, uptime, Slack alerts. 

--- 

Bring your wild ideas to [Mozilla Festival](https://www.mozillafoundation.org/en/festival/?utm_medium=paid&utm_source=newsletter&utm_campaign=26-mozfest&utm_content=ad_ruby-weekly&utm_term=cooperpress). Gather and connect with other developers and creatives in Barcelona, Oct. 28-30. [Get your badge](https://www.mozillafoundation.org/en/festival/?utm_medium=paid&utm_source=newsletter&utm_campaign=26-mozfest&utm_content=ad_ruby-weekly&utm_term=cooperpress).    

👠 A modern rewrite of _why's Shoes 

![](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ydvbs1ql0cbd1euw4h7m.jpg)  

Back in 2007, the mysterious and much-loved [_why the lucky stiff](https://en.wikipedia.org/wiki/Why_the_lucky_stiff) created [Shoes](https://en.wikipedia.org/wiki/Shoes_%28GUI_toolkit%29), a tiny toolkit for building desktop apps in Ruby. It famously powered [Hackety Hack](https://en.wikipedia.org/wiki/Hackety_Hack), his app for teaching people to code in Ruby. 

Over the years, Nick Schwaderer and contributors have been resurrecting Shoes in the form of [Scarpe](https://github.com/scarpe-team/scarpe#readme) (Italian for _shoes_!) which runs the same Shoes code rendered to a webview. 

As of this week, Scarpe now has [an (initial) native renderer written in Rust.](https://github.com/scarpe-team/scarpe/blob/main/docs/native.md) _"Ruby thinks and Rust draws"_: your app and its blocks stay in Ruby, while a separate Rust process lays out and paints the window. It can package apps for macOS and comes with [a guide for coding agents](https://github.com/scarpe-team/scarpe/blob/main/FOR_AGENTS.md) so you can ask one to build you an app (as I tried, successfully – see the screenshot above).         

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/).
