<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/37signals-releases-lexxy-1-0-a-new-rich-text-editor-for-rails-built-on-meta-s-lexical-stv9xcto4" -->

---
title: 37signals releases Lexxy 1.0, a new rich text editor for...
description: 37signals has released Lexxy 1.0, a new rich text editor for Rails that replaces Trix across Basecamp, Fizzy, and their other products, and ships as the...
canonical: https://daily.dev/posts/37signals-releases-lexxy-1-0-a-new-rich-text-editor-for-rails-built-on-meta-s-lexical-stv9xcto4
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: 37signals releases Lexxy 1.0, a new rich text editor for Rails built on Meta's Lexical | daily.dev
og:description: 37signals has released Lexxy 1.0, a new rich text editor for Rails that replaces Trix across Basecamp, Fizzy, and their other products, and ships as the...
og:url: https://daily.dev/posts/37signals-releases-lexxy-1-0-a-new-rich-text-editor-for-rails-built-on-meta-s-lexical-stv9xcto4
og:image: https://api.daily.dev/og/posts/StV9xctO4.png
og:image:alt: 37signals releases Lexxy 1.0, a new rich text editor for Rails built on Meta's Lexical
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# 37signals releases Lexxy 1.0, a new rich text editor for Rails built on Meta's Lexical

**[Collections](https://daily.dev/sources/collections)** · 2 min read · 1 upvotes · 0 comments

## Summary

37signals has released Lexxy 1.0, a new rich text editor for Rails that replaces Trix across Basecamp, Fizzy, and their other products, and ships as the default editor in Rails 8.2 via Action Text. Trix's flat document model couldn't support tables and its contenteditable behavior was inconsistent across browsers, so the team evaluated TipTap (rejected due to VC-backed open-core risk) and chose Meta's Lexical, which already powers WhatsApp and Instagram. Lexxy adds tables, native markdown input, syntax-highlighted code blocks, image galleries, a mentions/emoji API, attachment previews, better accessibility, and stronger security (sanitization, allow-listed attachments, preliminary Trusted Types support), while cutting keystroke processing time in a 10,000-word document from 38ms to 4ms. A merged Rails PR introduces an ActionText::Editor base class with adapters for both editors, making the switch a one-line config change; Trix remains supported but won't see further development. The editor was built with heavy use of Claude-driven coding agents and validated with a 600+ test Playwright suite.

## Content

37signals has released Lexxy 1.0, a rich text editor for Rails built on Meta's Lexical framework. It already powers Basecamp and Fizzy, and it will become the default editor for Action Text in Rails. It ships with Rails 8.2, and switching from Trix is a one-line config change.

## Why Trix had to go

Trix's flat document model couldn't support tables. It was also a maintenance burden. Because it leans on contenteditable, every browser and OS update risked breaking something, and the quirks differed across browsers.

In his Rails World 2026 talk, Jorge Manrubia said 37signals looked at TipTap and passed. His reason was the risk of depending on a VC-backed open-core project. Lexical won out for two reasons: its document-model architecture, and the huge user base it already serves through WhatsApp and Instagram, which makes it a safer long-term bet.

## What Lexxy adds

- Tables
- Native markdown input
- Syntax-highlighted code blocks
- Image galleries
- Link creation and attachment previews
- Prompts for mentions and emoji, through a mentions API
- Extensibility through Lexical's extension mechanism
- Better accessibility

Security got attention too: sanitization, allow-listed attachments, and preliminary Trusted Types support.

It's also faster. Processing a keystroke in a 10,000-word document takes 4ms, against 38ms in Trix.

## Action Text becomes editor-agnostic

A merged Rails pull request introduces an `ActionText::Editor` base class, with adapters for both Trix and Lexxy. Action Text no longer assumes a single editor. Trix will keep working, but 37signals won't be updating it any more.

## How it was built

The team leaned heavily on Claude-driven agents, and checked the work with a Playwright-based suite of more than 600 browser tests. I find the test suite the more interesting half of that story. Agents writing editor code is easy to be skeptical about, and a big browser-level suite is what makes it believable.

Ruby Weekly's issue #819 led with the 1.0 release, and it links to a sandbox demo if you want to try the editor.

## Questions this post answers

### What replaces Trix as the default rich text editor in Rails 8.2?

Lexxy 1.0, built by 37signals on top of Meta's Lexical framework, replaces Trix as the default Action Text editor in Rails 8.2. Switching an existing app from Trix to Lexxy is a one-line config change thanks to a new ActionText::Editor base class with adapters for both editors, and Trix remains supported but won't receive further development.

_Rails developers weighing an editor migration can track how the Lexxy rollout unfolds on daily.dev._

### Why did 37signals choose Lexical over TipTap for their new rich text editor?

37signals passed on TipTap because it is VC-backed and follows an open-core model, which they saw as a long-term risk for something as foundational as a text editor. They chose Meta's Lexical instead, since it has a proper document-model architecture and already powers WhatsApp and Instagram, giving Meta strong incentive to keep maintaining it.

_Teams picking a rich text editor for their stack can weigh this same tradeoff via daily.dev._

### How much faster is Lexxy than Trix for processing keystrokes in large documents?

Lexxy processes a keystroke in a 10,000-word document in 4ms, compared to 38ms in Trix, roughly a 9x improvement. This performance gain comes alongside Lexxy's new document-model architecture, which also enables table support that Trix's flat document model architecturally could not provide.

_Developers benchmarking editor performance for content-heavy apps can follow these comparisons on daily.dev._

## Similar posts on daily.dev

- [Lexxy - The next generation rich text editor for Rails](https://daily.dev/posts/lexxy---the-next-generation-rich-text-editor-for-rails-rel04hi7t) · Saeloun · 3 upvotes · 0 comments
- [Basecamp Five](https://daily.dev/posts/basecamp-five-yhgpmtb3t) · David Heinemeier Hansson · 49 upvotes · 6 comments
- [Short Ruby Newsletter - edition 160](https://daily.dev/posts/short-ruby-newsletter---edition-160-qik9o6jox) · RUBYLAND · 0 upvotes · 0 comments
- [Texttile, a multiplayer blog engine for people who write together – Klaus Breyer](https://daily.dev/posts/texttile-a-multiplayer-blog-engine-for-people-who-write-together-klaus-breyer-7lmmhkexm) · Awesome Elixir · 0 upvotes · 0 comments
- [Schema-Enforced JSON Access, Postgres Type Decoding, and more\!](https://daily.dev/posts/schema-enforced-json-access-postgres-type-decoding-and-more--r45avjrlz) · This Week in Rails · 1 upvotes · 0 comments

---

Tags: [#rails](https://daily.dev/tags/rails)

[View this post on daily.dev](https://daily.dev/posts/37signals-releases-lexxy-1-0-a-new-rich-text-editor-for-rails-built-on-meta-s-lexical-stv9xcto4)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"37signals releases Lexxy 1.0, a new rich text editor for Rails built on Meta's Lexical","url":"https://daily.dev/posts/37signals-releases-lexxy-1-0-a-new-rich-text-editor-for-rails-built-on-meta-s-lexical-stv9xcto4","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/37signals-releases-lexxy-1-0-a-new-rich-text-editor-for-rails-built-on-meta-s-lexical-stv9xcto4"},"datePublished":"2026-09-29T05:45:31.632Z","dateModified":"2026-10-01T13:21:26.989Z","description":"37signals has released Lexxy 1.0, a new rich text editor for Rails that replaces Trix across Basecamp, Fizzy, and their other products, and ships as the...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/3f80f5c3189b567eabea53fc9d96b05d?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/3f80f5c3189b567eabea53fc9d96b05d?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Collections","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Collections","logo":"https://media.daily.dev/image/upload/s--fk_6ycEi--/f_auto,q_auto/v1780996001/logos/collections?_a=BAMAMiWQ0","url":"https://daily.dev/sources/collections"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/37signals-releases-lexxy-1-0-a-new-rich-text-editor-for-rails-built-on-meta-s-lexical-stv9xcto4","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"rails","timeRequired":"PT2M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Collections","item":"https://daily.dev/sources/collections"},{"@type":"ListItem","position":3,"name":"37signals releases Lexxy 1.0, a new rich text editor for Rails built on Meta's Lexical"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/37signals-releases-lexxy-1-0-a-new-rich-text-editor-for-rails-built-on-meta-s-lexical-stv9xcto4#faq","mainEntity":[{"@type":"Question","name":"What replaces Trix as the default rich text editor in Rails 8.2?","acceptedAnswer":{"@type":"Answer","text":"Lexxy 1.0, built by 37signals on top of Meta's Lexical framework, replaces Trix as the default Action Text editor in Rails 8.2. Switching an existing app from Trix to Lexxy is a one-line config change thanks to a new ActionText::Editor base class with adapters for both editors, and Trix remains supported but won't receive further development. Rails developers weighing an editor migration can track how the Lexxy rollout unfolds on daily.dev."}},{"@type":"Question","name":"Why did 37signals choose Lexical over TipTap for their new rich text editor?","acceptedAnswer":{"@type":"Answer","text":"37signals passed on TipTap because it is VC-backed and follows an open-core model, which they saw as a long-term risk for something as foundational as a text editor. They chose Meta's Lexical instead, since it has a proper document-model architecture and already powers WhatsApp and Instagram, giving Meta strong incentive to keep maintaining it. Teams picking a rich text editor for their stack can weigh this same tradeoff via daily.dev."}},{"@type":"Question","name":"How much faster is Lexxy than Trix for processing keystrokes in large documents?","acceptedAnswer":{"@type":"Answer","text":"Lexxy processes a keystroke in a 10,000-word document in 4ms, compared to 38ms in Trix, roughly a 9x improvement. This performance gain comes alongside Lexxy's new document-model architecture, which also enables table support that Trix's flat document model architecturally could not provide. Developers benchmarking editor performance for content-heavy apps can follow these comparisons on daily.dev."}}]}
```

