Skip to content

Build1 publisher3 min readPublished

DHH says 37signals treats hand-written code like a bug in Sentry

David Heinemeier Hansson said in his Rails World keynote that 37signals, the 27-year-old company behind Ruby on Rails, is done writing code by hand. Its stack now follows how well agents write each language, and other teams can measure that on their own code first.

The Engineer · Build desk

Drafted by a language model from the sources cited here and checked against its claim ledger before publication. How we use AISend a correction

What happened

  • 37signals is moving backend services from Ruby to Rust, for performance and because agents write good enough Rust, according to the Pragmatic Engineer.
  • Rails stays for the company's web apps because its convention-over-configuration design makes it easy for agents to work with.
  • 37signals, long bearish on native iOS and Android apps, is now building new ones on the bet that AI lets a small team build them.
  • DHH named November 24, 2025, when Opus 4.5 arrived, as his personal tipping point, likening it to the camera's arrival for painters.
  • DHH said he retired as a professional programmer around March, after a quarter century of writing code by hand.

Compiled by The EngineerSomething wrong?How this is made

Why it matters

  • decision Teams weighing the same policy gain a language-selection input they can measure on their own code: how often agent output in each language needs a human rewrite.
  • constraint The exception-state model depends on someone owning the agent setup; a team with no way to log and fix agent failures gets the hand-coding ban without the feedback loop.
  • cost Near-free repetition moves cost from writing code to reviewing and changing it, since each duplicated copy still has to be read and fixed when it breaks.
  • precedent A shop known for code quality making hand-writing the exception gives other engineering leaders a named example to cite, though the record so far is one company.

DHH described an error path. "Writing code by hand at 37signals is now an exceptional state. It is like seeing a bug in Sentry," he said [4]. An engineer may patch the gap by hand for a while [4]. Then, he said, "we fix the machine, we fix the factory, we get things going again" [4].

I think this is the right shape for a policy like this. An incident model leaves a record each time a person reaches for the old pencil. Over time, that record shows where the agent setup falls short and what to fix. The talk as excerpted by the Pragmatic Engineer does not say how 37signals logs those cases or how often they occur.

The stack choices all apply one test: how well an agent writes the language [6][7][8]. For a 27-year-old company that created Ruby on Rails, that test was enough to move backend services off Ruby [2][7]. It is an unusual thing to announce from the Rails World stage [1]. A team can measure agent fit on its own code, by counting how often agent output in each language needs a human rewrite.

I would push back on the architecture claim. "The reason we did abstractions was in part not to repeat ourselves; well, now the price of repetition has gone to near zero," DHH said [11]. The price that fell is the cost of writing the copies. A bug in duplicated code still has to be found and fixed in every copy. Someone still reads each change before it ships. His own "in part" leaves room for the other job abstractions do: limiting how many places a change has to land [11].

37signals' reputation is why the announcement carries weight. Gergely, who writes the Pragmatic Engineer newsletter, wrote: "This is a big deal because 37signals created Ruby on Rails, and they are known for their software craft there, especially when it comes to code quality" [12]. DHH went wider, saying hand-writing "is no longer an economically productive enterprise for the vast majority of programmers working at the vast majority of companies" [10]. That line is a forecast. The record behind it is one profitable company's decision, made a couple of weeks before the keynote, and the argument it started among developers [2][3][1].

For the 37signals result to carry over to another team, three things would have to hold. Agents would need to work in that team's stack as easily as 37signals says they work in Rails, whose convention-over-configuration design it credits for that [8]. Someone would need to own the factory fixes [4]. The codebase would also need to absorb the repetition DHH now treats as nearly free [11].

What to watch

  • Whether 37signals publishes how often its engineers still fall back to hand-written code; that rate tests the exception-state model.
  • The first Rust backend services and new native apps 37signals ships, and whether its small team can maintain them.
  • Whether other established software companies adopt a similar written policy against hand-written code.
Loading claim ledger
Loading source directory links
Loading share composer
Loading topic controls
Loading related stories