cd /news/artificial-intelligence/campfire-s-agent-built-rust-port-tes… · home › topics › artificial-intelligence › article
[ARTICLE · art-145177] src=runtimewire.com ↗ pub= topic=artificial-intelligence verified=true sentiment=· neutral

Campfire's agent-built Rust port tests whether Ruby's readability still pays

David Heinemeier Hansson, creator of Ruby on Rails, had coding agents port 37signals' Campfire chat app to Rust, and repository benchmarks run October 1st show the Rust version serving a room page at 36,120 requests per second versus 217 for Rails — a 166-fold difference — with message posting 25 times faster and 73 times as many chat deliveries per second in a 10,000-client test. The measurements came from production images, identical seed data and four pinned hardware threads per app on one AMD Ryzen AI MAX+ 395 machine, using the median of three runs, and are 37signals' own numbers rather than an independent benchmark or production traffic. Hansson said on October 4th that he still prefers Ruby for his own hand-written code and views Rust as a "prompt compile target," while acknowledging Rust's slow compile times and that he never inspected the generated code directly.

by read5 min views2 publishedOct 5, 2026
Campfire's agent-built Rust port tests whether Ruby's readability still pays
Image: Runtimewire (auto-discovered)

David Heinemeier Hansson says Ruby remains his choice for hand-written code; 37signals' October benchmarks show what its Rust port gains on a test machine.

        By [Ryan Merket](https://runtimewire.com/author/ryan-merket)
        · Published 

Primary source: [X](https://x.com/dhh/status/2106810173683851564)

Why it matters #

Hansson's Campfire port makes the agent-era language trade-off measurable, while its company-run benchmarks and small-scale testing show how much evidence remains between a fast port and a production verdict.

David Heinemeier Hansson, the creator of Ruby on Rails, had coding agents port Campfire into Elixir, Go and Rust, then asked whether a language's readability matters as much when people are no longer writing or reading most of the code. The Rust version of 37signals' chat app puts that question against an increasingly concrete trade: substantially higher benchmark throughput, alongside code Hansson says he never inspected directly.

Hansson first announced the Rust beta on September 29th. In an October 4th thread on X, he said that agents can write and validate code well enough to change the assumptions behind language and framework choices. He still prefers Ruby for his own hand-written code. His interest in Rust, he wrote, is as a "prompt compile target." That is a sharp turn for the Rails creator, whose career helped make Ruby's developer experience a selling point.

The experiment is open to inspection in the Campfire Rust repository. It is an implementation of Campfire, 37signals' group-chat product, and keeps the existing SQLite database, storage layout and signed cookies. The Rust build consolidates several runtime pieces into one executable, while retaining the Rails application's data and much of its interface. That makes the port a test of operational trade-offs as well as raw language speed.

What the benchmarks show

Repository benchmarks run October 1st report the Rust version serving a room page at 36,120 requests per second, versus 217 for Rails, a 166-fold difference in that specific test. Posting a message was 25 times faster, and a separate test with 10,000 connected clients reported 73 times as many chat deliveries per second. The repository says the results came from production images, identical seed data and four pinned hardware threads per app on one AMD Ryzen AI MAX+ 395 machine, using the median of three runs.

Those are 37signals' own measurements, not an independent benchmark or a record of production traffic. The test setup gives a useful comparison under controlled conditions; it does not establish that customers will see a 166-fold speedup, or that a real Campfire deployment needs that capacity. Hansson himself described the app as small and said the work ran on two personal subscriptions. In the thread, he estimated some conversions took under two hours, while qualifying that the codebase was small.

The Rust port retains the Rails app's database and cookie compatibility, and a repository parity harness compares rendered HTML, the live document structure, accessibility trees, assets, WebSocket frames and screenshots against Rails. Tests can check those observable behaviors without a person reading every generated line. They cannot, by themselves, demonstrate that future changes will be easy to diagnose, that untested workloads will behave the same way, or that the generated implementation will remain safe to change.

Hansson acknowledged drawbacks: Rust's compile times are slow, and he has no interest in learning its intricacies. He also argued that agents do not need frameworks for the same reasons human developers do. That claim shifts the framework debate from whether a tool makes code pleasant to write toward whether it helps agents generate and validate a working system. It leaves human operators responsible for deciding what to test, which trade-offs to accept and what to do when a test misses a failure.

A change in the work, not a verdict on Ruby

Hansson's position is more conditional than a declaration that Ruby has lost. In the X thread, he said he would still choose Ruby if he were personally writing the code. He also said he had not written code by hand in a while. The experiment measures his new workflow: delegate implementation, use automated checks to validate output, then judge the resulting application rather than the language's appeal to its author.

The Campfire port adds a more bounded test: reproduce an existing application's behavior across implementations, preserve its existing data, and measure the result. Its parity harness and repository make that test more inspectable than a claim that an agent simply "rewrote" an app.

The immediate practical case for the Rust version may be infrastructure consolidation. The repository says one executable replaces Ruby, Puma, Redis, Resque and Thruster in the deployment, while retaining the existing database and storage. That could reduce the number of moving parts for self-hosted Campfire operators. It also means that performance, deployment simplicity and developer familiarity are being bundled together in one comparison; the benchmark cannot tell an operator which of those benefits matters most for their installation.

Hansson's language experiment is persuasive as evidence that agents can produce working ports quickly and that a controlled benchmark can reveal meaningful implementation differences. It is not proof that human readability has stopped mattering. Someone still chooses the specification, decides whether the tests are adequate, handles production failures and maintains the system when its behavior changes. For now, the clearest shift is in where Hansson is willing to spend his own attention: less on the code's syntax, more on the result and the checks around it.

── more in #artificial-intelligence 4 stories · sorted by recency
── more on @david heinemeier hansson 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/campfire-s-agent-bui…] indexed:0 read:5min 2026-10-05 · —