DHH retired from hand-written code and wants every Rails developer to follow

DHH retired from hand-written code and wants every Rails developer to follow

DHH wrote 150,000 lines of code in August, roughly 60 times his old annual pace, and read almost none of it. At Rails World 2026 he said 37signals has gone pencils down and made his case for total optimism.
Ruby on Rails
24.9K Subscribers
13 min read

Key Findings

  • • Every app you ship needs a CLI so users can bring their own agent, and bolting a chatbot into your product just burns tokens.
  • • When you have to write code by hand, treat it like an error in Sentry: patch it quickly, then fix the agent setup that made you do it.
  • • Each agent PR can look fine while the architecture slowly turns to Swiss cheese, so someone still has to keep the whole system in mind.
  • • If you know a lot about how computers work, you'll tend to over-specify prompts, and a beginner's high-level ask often gets better results.
  • • Native apps and fast Rust backends are cheap to build now, so you can stop trading performance for developer productivity.

For 21 years, David Heinemeier Hansson wrote about 30,000 lines of production Ruby a year. That was enough to build Basecamp and HEY, and to build Rails itself. In August 2026 he produced 150,000 lines in a single month. He hasn't looked at most of them, and he's happy about that.

His Rails World 2026 opening keynote in Austin was built around that number. He was open about its flaws. Lines of code is "a weird, fuzzy, malleable" measure, and a lot of that output is Rust, which is far more verbose than Ruby. His point was the order of magnitude. Something has moved by a factor of 60, and he thinks the profession hasn't yet caught up with what that means.

His conclusion was blunt. 37signals has gone "pencils down" on writing code by hand. DHH says he has personally retired from professional programming, sometime around March, and he's delighted about it.

A painter's great-great-grandson reads the Kodak Brownie moment

DHH opened with oil paint rather than benchmarks. In the 18th century a portrait meant hours of sitting and months of work by a master like Joshua Reynolds. Reynolds painted the Ladies Waldegrave in 1781, after an earlier version was rejected because a bit of ankle was showing. Anyone who has had a statement of work bounced by a client, DHH joked, will feel for him. The technique improved slowly over hundreds of years, and portraits stayed the privilege of the rich and the royal.

Then photography arrived around 1840. In 1900 Eastman Kodak released the Brownie, a mass-produced camera that cost about a dollar. Painters whose economic value rested on depicting reality accurately saw that the job had changed, and many moved to other styles. Picasso went toward Cubism. The Danish Skagen painters went toward impressionism.

One of those painters was Laurits Tuxen, who spent three years on a portrait of the Danish royal family in the 1880s. He is DHH's great-great-grandfather. The woman in pink at the center of one of Tuxen's later impressionist canvases is DHH's great-grandmother. Tuxen let the new technology photograph him shortly before he died in the 1920s.

DHH took two lessons from the story. The first is that technology moves in "fits, starts and stops." A photo of DHH as a baby in 1979 looks much like the one taken of Tuxen half a century earlier, and his whole childhood fits into a small stack of prints. The second is that once friction disappears, usage goes vertical. About two trillion photos are now taken every year. The underlying technology is the same. What changed is that photos became too cheap to measure.

That parallel is why the talk matters right now. Programmers, in DHH's telling, are the portrait painters of 1900. The skill that paid the bills is being automated, and the people who do well will be the ones who move their craft somewhere new.

November 24, 2025, and a trough that lasted three months

DHH names a specific date for software's Brownie: November 24, 2025, when Anthropic shipped Opus 4.5. That was the first time a large number of developers could afford to work alongside this kind of intelligence inside a usable harness. "There was everything before November 24th. And then there was everything after."

Open-weight models followed a few months later. He ran Kimi K2.5 in fast mode at 200 tokens per second and loved it. Then came what he called a trough of disillusionment, from February through May. New releases felt like steps backward, one OpenAI model disappointed on benchmarks, valuations dipped, and the "it's over" crowd came out.

The photography trough lasted close to 80 years. This one lasted until June, when Fable 5 and Mythos arrived. DHH puts his own "diagnosis" there. Opus had shown him an agent could produce work he wanted to merge. The June models let him hand over problems and ideas, not just tasks, and watch them get solved "through no direction of my own on the implementation." GPT-6 Astra followed in September and eased his worry about an Anthropic monopoly. A week later DeepSeek-4-1 Flash showed that frontier intelligence wouldn't stay with a few American companies.

He admits the pace is unsettling. Any prediction "is out of date about 20 minutes later." He calls his condition AI delirium, or AI euphoria, and prefers either to "AI psychosis."

From 10x to 1,000x, and the return of "look at all the things I'm not doing"

The 10x programmer debate traces back to a 1968 study that found a 5x to 30x spread between the best and worst programmers on a set of tasks. DHH says the industry argued about it for roughly 45 years and has now skipped past it. He thinks few people would dispute a 100x gap between the worst programmer without these tools and the best programmer with them. He goes further and suggests 1,000x.

He offers no study for the 1,000x number. It rests on his own experience: half as much code written in the last 20 months as in the previous 21 years, plus the August figure.

He then played a clip of himself at a 2005 talk in Brazil, showing off early Rails:

Look at all the things I'm not doing. Look at all the configuration I'm not writing.

Convention over configuration was always about removing work programmers didn't need to do. DHH sees agents as that same idea taken to its limit. He says he hasn't written code in about five months, and every "paperclip," every annoyance and frivolous feature, is now within reach.

Pencils down at 37signals, after getting it wrong in the spring

The company's new policy treats hand-written code as an exception, much like an error showing up in Sentry. If someone has to pick up the pencil, that's a symptom. The agent couldn't produce what was needed, so you patch it by hand briefly and then "fix the factory."

DHH asked the audience how many people still write meaningful amounts of code by hand each week. About five hands went up. Two or three months ago, he said, the same statement would have gotten him laughed off the stage.

He was candid that 37signals got this wrong the first time. While finishing Basecamp 5 in the spring, designers vibe-coded the last features. Each PR looked fine on its own. Taken together, twenty or thirty of them left the architecture "like a Swiss cheese." The team decided the technology wasn't ready and went back to programmers doing manual review.

DHH now calls that "the wrong conclusion." Partly because Fable arrived weeks later and would probably have made the original plan work. Mostly because he thinks only one serious question is left: how do you get the most out of this intelligence explosion? Every other concern ranks below it. The story also carries a lesson he doesn't spell out. Individual agent output can look correct while the overall architecture degrades, so the approach needs someone holding the whole system in mind.

HEY leaves the web: native apps and a Rust backend nobody reads

The next version of HEY, which doesn't have a name yet, will stop being a web app. DHH says HEY "never really wanted to be a web app." It was one because the web was how a small team could stay productive. Maintaining six native apps in their native frameworks was out of reach, and that's why tools like React Native and Hotwire Native exist. They traded some fidelity for productivity.

He says that trade no longer makes sense. The team started six native clients about a week before the talk, and they're already far along. He showed a Windows build that the first prompt produced, which wasn't shippable, and a corrected version 20 minutes later that looked like a real product. He also pointed to Shopify's newly rewritten native Shop app, built by about six people to replace a React Native codebase. His prediction is that many apps that are web apps "of necessity, of convenience, of programmer preference, of team size" will go native, because the cost of building native has gone "damn near zero."

Rust, as long as he never has to read it

The backend is where DHH had to concede something. He calls Rust perhaps "the ugliest programming language that has been invented in probably the last 40 years," and says it's inhumane to ask people to read it. But agents like Rust, and he never has to look at it. That, he says, is a good division of labor.

Once HEY's frontend is native, the server no longer renders HTML and can become what it really is, a mail server. Rewritten in Rust, it needs 99% less CPU and 95% less memory. It runs on 10 hosts only for redundancy. A back-of-the-envelope estimate suggests HEY's peak traffic could fit on one Raspberry Pi.

DHH doesn't know Rust and calls that "a feature." He treats the Rust code as a black box and judges it from the outside, the way business owners have always judged the work of programmers they hire. The evaluation hasn't changed. Only the worker has.

Rails still wins where nobody wants to install anything

That raises the obvious question at a Rails conference. If HEY moves to native clients and Rust, where does that leave Ruby and Rails?

DHH's answer is that the web stays unmatched for anything where users won't install software: short-term collaborators, one-off visitors, the "strangers" who drop into Basecamp to grab a file. Millions of businesses depend on that. He argues that Rails' long-standing values suit agents well. Convention over configuration leads directly to token efficiency. The focus on a framework one developer can handle fits a time when single developers can go much further than before.

Evil Martians are running agent evals for the Rails Foundation, testing agents on real feature cards against reference applications. Agents hit 95% completion on the first version quickly enough that the evals had to be made harder. DHH expects to keep raising the bar.

He also warned experienced developers about being too prescriptive with agents. People who know too much about how computers work tend to over-specify. A beginner's mindset and higher-level prompts often get better results.

That leads to his most quotable line: DHH has found a programming language he likes more than Ruby, and it's English. It's more expressive, somewhat vaguer, and less deterministic, and he calls writing in it "an absolute joy." His share of work done in Ruby dropped from over half across two decades to about 3% this year.

He's clear-eyed about what that means for his career. He started programming because he wanted outcomes, then fell in love with the craft, and once said he'd rather retire than give it up. Now he has retired from it, and he's happy about it. He spent "a quarter of a damn century chiseling code by hand" and wants that time remembered fondly: "Enjoy that we were there when we still had to do such things." He says hand-written code has stopped being economically productive for most programmers at most companies, and predicts that by the end of the year that will be true almost everywhere. That's a sharp forecast from someone who, 20 minutes later, argued that nobody can predict anything.

Architecture, CLIs and the whole computer are now up for revision

If agents write the code, much of what the industry believes about software design needs another look. Abstractions, including naming, which DHH loves, exist largely so we don't repeat ourselves and so code is easier for people to change. When repetition costs almost nothing and keeping duplicates in sync is cheap, abstractions start to act as choke points for the many agent processes trying to modify a codebase. How long cycles should be and who writes specifications are open questions too. DHH compares the moment to being present when object orientation first appeared: "It's a new birth for a new industry, and you're at the ground floor."

The most concrete advice in the talk was this one. Stop putting chatbots inside your product. DHH already has his own "butler" that uses command-line tools to connect Basecamp, HEY, and everything else. "Save your tokens, bro." Every app should ship a CLI so users can bring their own agent. He demanded one "by next Friday."

The HEY CLI already changed how he searches. HEY runs on Elasticsearch, which he calls "serviceable search." He once needed a five-year-old email about sneakers and a podcast, with no idea of the sender, company, or year. His agent found it in a few minutes by searching for the concept instead of keywords. He isn't sure how it did it, and he's "a little scared to ask."

Omarchy and the half-megabyte payoff

The same "we can just fix everything" attitude now covers his whole operating system. Omarchy, his Linux setup that has raised about $20 million, installed in 3 minutes 33 seconds at last year's Rails World. Last week an AMD engineer installed it in 35 seconds. In the lab it's down to 9 seconds. When people ask why three minutes wasn't fast enough, DHH quotes Mitchell Hashimoto: "The pursuit of excellence does not need justification."

He then went through a string of one-shot apps. There's a calculator themed to match Omarchy, written in C++ and Qt, languages he doesn't know, and working seven minutes after the prompt. A writing app modeled on iA Writer. A video trimmer. Finally Hype, the Markdown-based presentation software he built while preparing this keynote, starting on Thursday. The Hype binary is half a megabyte.

That size points to a second payoff. For 20 years the industry spent hardware gains on developer productivity, which was the right call when a programmer's hour was expensive. The result was slow, bloated software, like a Spotify client that takes 1.2 gigabytes. If agents can run optimizations overnight, efficiency stops being a luxury.

Optimism as game theory

DHH gave the concerns a hearing. Security is real. Agents might sometimes "try to do bad things." A recent Rails CVE involving a C image library leaked data. His answer is to build defenses, such as HotCell, the quarantine effort another speaker at the conference covered. "We are not powerless. You have agency."

Most of his argument, though, is aimed at forecasting itself. Economists can't predict the stock market six months out, so why trust anyone's picture of society after a paradigm shift? He cited ATMs. People expected them to wipe out bank tellers. Instead, cheaper branches led banks to open more of them, and teller numbers went from about 30,000 to about 40,000 by around 2010, figures he gave from memory. He credited this to Jevons' paradox. The fit is loose, since Jevons wrote about coal in the 19th century, but the pattern is similar: cheaper inputs, more total use.

His other example was Oppenheimer. The scientists closest to the atom bomb assumed disaster. What followed was a Cold War in which the superpowers never bombed each other, plus nuclear power, which he says humanity then "pissed away for 40 years" before admitting the mistake. His takeaway is to trust lab researchers' social predictions less and to favor P(bloom) over P(doom).

The final argument is pure decision theory. Nobody knows what happens next. If you're gloomy and things turn out well, you wasted the time. If things go badly anyway, you should have enjoyed the last good days. "There's only one play here, and it's total optimism."

He closed with a call to arms. Agents will do to programmers what Luther did to the clergy, making it possible for anyone to write software. For people who fear that competition, his response was: "Aren't you better? Don't you know more?" And for those who still hold back, he showed a photo of a colleague's daughter trying out a kids' version of Omarchy. The next generation has less to unlearn.

The Tuxen story made the argument better than the profanity did. Tuxen didn't stop painting when the Brownie arrived. He dropped the kind of painting photography had made pointless, and he let the camera take his picture. DHH is asking Rails developers to do the same: keep the taste, the conventions, and the judgment about what's worth building, and give up the chisel. How much of that judgment survives when nobody reads the code is a question his own Basecamp 5 experience leaves open.

Create articles like this

Start Free →
Mr. Article

Share Article

Share this article with anyone. No login required to view.

Share via
or copy link directly
https://mrarticle.blog/shared/aqjPPBPtloEcAM3PwCh8g6KP8JSF5kKi

Anyone with this link can view a read-only version of this article.

Link copied to clipboard!