DHH at Rails World 2026: "Pencils Down" on Hand-Written Code and the Case for Total Optimism

Open on YouTube ↗
Overview

DHH opened Rails World 2026 in Austin with a keynote about what AI agents mean for programmers, for 37signals, and for Ruby on Rails. He describes his own state of mind as "AI delirium" or "AI euphoria" rather than "AI psychosis." His central claim is that writing code by hand is no longer economically productive for most programmers. He says 37signals has stopped doing it as a normal practice. He argues the right response is joy about the era that is ending and optimism about the one beginning. He also admits that nobody, himself included, knows what the end state will look like.

27 min read

Excitement and Unease

DHH calls agents "the most exciting thing we have made computers do" in all his years working with computers. He also says the moment is unsettling. Nobody knows the final state, and any prediction is out of date "about 20 minutes later." He says he understands the unease this creates even for people who are excited. To ease it, he turns to history.

What Portrait Painters Went Through

His first example is 18th-century portraiture. A sitter would pose for hours in front of a master painter, who might then spend months on the portrait. He shows Joshua Reynolds' 1781 painting of the Ladies Waldegrave. He notes that Reynolds had already spent months on an earlier version that the client rejected because an ankle was showing, and had to start over. He jokes that anyone who has had a statement of work rejected will sympathize. These portraits were beautiful but exclusive, mostly for the upper bourgeoisie and royalty. His next example is Goya's portrait of the Spanish royal family, painted about twenty years later. In DHH's telling, painters had refined portrait technique for hundreds of years with only marginal progress.

He then moves to 1886 and a portrait of the Danish royal family by Laurits Tuxen. It took three years to paint and still hangs in Copenhagen. By then the camera had existed since around 1840 and kept improving. In 1900 Eastman Kodak released the Brownie, which DHH describes as the first mass-produced, broadly affordable form of photography, costing about a dollar. Suddenly many people could have their picture taken.

DHH says painters like Tuxen realized that depicting reality as accurately as possible was no longer an economically viable skill. Many turned to other forms of art: Picasso toward Cubism, the Danish Skagen painters toward a kind of impressionism. He presents this as a burst of creativity forced by technological change. Then he reveals a personal connection. Laurits Tuxen was his great-great-grandfather, and the woman in pink at the center of one Tuxen painting, Yvonne Tuxen, was his great-grandmother. He shows a photograph of Tuxen taken around 1921, shortly before Tuxen's death. The painter had accepted being photographed by the technology that had changed his profession.

Photography Moved in Fits and Starts

DHH was born in 1979, 52 years after Tuxen's death. He points out that his own baby photo looks much like the 1920s photo of his great-great-grandfather. His explanation is that technology advances in "starts and stops and fits." The Brownie was the big leap, and then almost eighty years passed without much change. Color photography arrived in the 1960s but was not widespread enough for his family to use it for his baby picture, though they had a color photo of him at age four with his brother. He says the three childhood photos he shows are about 10% of all the photos he has from his childhood. The cameras used were probably similar to the 1925 Leica I.

A few decades later, photography became frictionless and the number of photos taken went "parabolical." He shows pictures his wife takes on evening walks. He notes that doing the same thing in the 1980s would have required a real commitment to film and developing. He cites about 2 trillion photos taken per year in 2026. His point is that the underlying technology is the same, but an inflection point has clearly passed, even compared with the arrival of the first camera phones. He says there will be parallels to the software profession.

November 24, 2025: "The Kodak Brownie of Our Era"

In DHH's framing, the Brownie moment for software came on November 24, 2025, with the release of Opus 4.5. He describes it as AI technology packaged in a harness that many people could afford, which let them experience building software with "a new form of intelligence" for the first time. It was the tipping point for him. He predicts that history books will mark this date as the start of the age of agents.

As with the Brownie, many new form factors followed quickly. A few months later, comparable intelligence appeared in open-weight form, which he calls "total euphoria." He says he used Kimi K2.5 in fast mode for a long time and loved getting that level of intelligence at 200 tokens per second.

The Trough of Disillusionment, and the June Leap

He then describes a "trough of disillusionment" from February through May. New models kept arriving but seemed to go backwards. He recalls people asking what Opus 4.6 was supposed to be and wanting the old model back. Skeptics argued that the exponential improvement had stalled. He mentions an OpenAI release that did not improve much on benchmarks, after which, as he recalls it, valuations dropped and the market reacted as if the whole thing was over.

He contrasts this with photography's century of slow progress. This trough, he says, lasted only until May, or really June, when Fable 5 and Mythos came out. He says anyone who used those models lost any belief that progress had stalled, and that this is when his "diagnosis" fully set in. Opus had shown him that he could hand a task to an agent and get back something he wanted to merge. The newer models let him give an agent problems or ideas and see them solved or expanded without directing the implementation himself.

Progress continued. He cites GPT-6 Astra in September, which he says ended fears that Anthropic would monopolize frontier intelligence. A week later came DeepSeek-4-1 Flash, which in his view showed that frontier intelligence would not stay limited to a few large American tech companies.

From the 10x Programmer to the 1,000x Programmer

To ask what this means for programmers, DHH returns to history. He traces the "10x programmer" idea to a 1968 ACM article. By his account, it tested programmers on various tasks and found gaps between the worst and best ranging from 5x to 30x, averaging about 10x. The industry then argued about whether this was real for roughly 45 years. He says that debate is now over. The question has shifted to what the gap looks like when tools are included.

He argues it is uncontroversial today to say there is a 100x gap between the worst programmer without these tools and the best programmer with them. He then goes further and suggests 1,000x, which he admits might be slightly more controversial, though he doesn't think so. He says he does not know exactly what this means for competition between companies or for what it takes to start a business.

His concrete data point is personal: in the past 20 months he has written half as much code as in the previous 21 years. He calls lines of code a fuzzy measure. One line of Ruby is worth far more than one line of lower-level languages like Rust or C++. Even so, he says the revolution is undeniable, and anyone who has seen their own productivity accelerate this way will feel "a little dizzy."

"Look at All the Things I'm Not Doing"

He plays a clip of himself from a 2005 presentation in Brazil, 21 years earlier. In it, he walks through a Rails demo, saying "look at all the things I'm not doing" and "look at all the configuration I'm not writing." He points out that a URL like blog maps automatically to the blog controller and index maps to the index template.

He says there is no better summary of the current moment than "all the things we are no longer doing," and calls this "the Rails moment" all over again. He says he has written essentially no code for about five months, yet has been able to fix "every dream, every annoyance, every paperclip, every frivolous feature."

37signals Goes "Pencils Down"

A couple of weeks before the talk, DHH says, 37signals decided it is done writing code by hand as a normal part of its work. Hand-written code there is now an exceptional state, comparable to an error showing up in Sentry. It signals that something went wrong and prompts the question of why the agent could not produce what was wanted. Someone might pick up "the old pencil" for a short while, but the real fix is to repair "the machine," "the factory," so agents can do the work again.

He presents this as recognizing what was already happening, and polls the audience: who still writes material amounts of code by hand every week? He counts about five raised hands. Two or three months earlier, he says, the same statement would have made many people think he had "a screw loose."

He also describes an earlier attempt that did not work. In the spring, while finishing Basecamp 5, 37signals had designers vibe-code the final features they wanted. Each designer's PR looked reasonable on its own. Taken together, 20 or 30 of them left the architecture looking like Swiss cheese. The team concluded the technology wasn't ready and went back to manual review with programmers doing the work.

DHH now calls that "the wrong conclusion." His first reason is a retrospective guess: if they had waited a little, they would have had Fable, and the approach "would probably have worked as originally intended." This is his speculation, not a tested result. His second reason is that he now believes there is only one serious question in software development today: how to get the most out of this intelligence explosion. Everything else ranks below it. Basecamp 5 shipped, and he describes it as agent-accelerated but still involving a lot of hand-written code. He wonders aloud what to call the old way of working, which he says was retired "5 minutes ago."

HEY Stops Being a Web App

The next project is a new version of the HEY email service. DHH offers several possible names, such as "Hey Next" and "Hey New," and says the name isn't decided. The first decision is that HEY will no longer be a web app.

He says HEY "never really wanted to be a web app." It was built on the web because web apps were how small teams stayed productive. Until recently, he argues, a small team maintaining six native applications in their native frameworks would have been absurd. That is why tools like React Native and Hotwire Native exist: to trade a little fidelity for productivity. He calls HEY a great web app but says it is not as good as a native app, citing differences in latency among other things.

Behind him, a video shows the six native applications 37signals started about a week earlier. He does not name the platforms. He says maintaining six high-fidelity native apps for a major service used to take a long time and a large team. Now they can do it "because we're not writing a goddamn line of code," though they are writing many prompts. He says the effort has barely started, but it is already obvious to him that this is the future for this kind of application. Many apps are web apps out of necessity, convenience, programmer preference, team size, or limited resources. He expects many of them to become native because the cost of building native apps has dropped to "damn near zero."

He shows an example: the first result when they asked for a Windows app, which he calls "not quite shippable," and a revised version that arrived 20 minutes later. He says 37signals is not the first to reach this conclusion. He points to Shopify's recently launched native rewrite of the Shop app, which replaced a React Native app. He describes it as done by a tiny team of about six people in a short time.

The Backend: DHH's "Love" for Rust as a Black Box

He admits the backend is harder for him to talk about, because the answer is Rust. He calls Rust in his opinion the ugliest programming language invented in the last 40 years, shows a code sample as "Exhibit A," and says it is inhumane to make people write it.

His position flips, though, if he never has to look at it. If he can simply enjoy applications that run 30 to 100 times faster, compile into tiny executables, and start in under a millisecond, then he loves Rust. He says agents like Rust, and the division of labor suits him: he says what to do, the agent writes it in Rust, and he never reads it.

For HEY, the plan is this. With the front end moving entirely to native apps, there is no longer a need for a web application rendering HTML. The code behind the old web app becomes, in Rust, the mail server that HEY fundamentally is. DHH reports the resulting backend uses 99% less CPU and 95% less memory. It runs on ten hosts only for redundancy. He adds that their back-of-the-envelope estimate suggests HEY's peak traffic could "probably" be handled by a single Raspberry Pi. This is presented as an estimate, not a demonstrated result. He credits Rust as being as close to the metal as possible while staying portable, combined with having a pay-per-token intelligence do the work.

Working Asynchronously, and Where This Leaves Ruby and Rails

DHH says it is still unclear how best to work with agents, and 37signals is trying several approaches. One is directing agents from inside Basecamp. He says the best way to work with agents is asynchronously: not waiting on tokens in a chat window, but handing off a task the way you would to a coworker and reviewing the result when it's ready. He stresses that nobody knows how this should work yet. Things change constantly. The whole shift began on November 24 of the previous year, less than a year ago. The kind of intelligence that lets you assign outcomes and problems instead of tasks is only a couple of months old.

He then addresses Ruby and Rails directly. For HEY, the answer is native front ends and a Rust backend. But many applications don't fit that shape. He calls the web a wonderful platform partly because it never requires installing anything. A million businesses depend on that, especially those with occasional customers who won't install an app. He uses Basecamp as an example, since it brings in outside people who just need to grab a file or collaborate briefly. He believes Rails is well placed for these cases. In his view, Convention over Configuration leads directly to token efficiency, and Rails' focus on the one-person framework fits an era where a single developer can go much further than before. He says he doesn't have the answer for where to draw the line between native and web.

He mentions agent evals that Evil Martians run for the Rails Foundation. These evals measure agents implementing feature cards against real reference applications. The first version was saturated quickly, with agents reaching about 95% completion rates, so a harder version was introduced. He expects this pattern to repeat as agents keep improving.

From this he draws a warning for people who know a lot about how computers work: don't be too prescriptive. A beginner's mindset, even a "dummy approach," works better because you ask questions and write prompts at a higher level. He says he considers it a feature and a privilege that he knows no Rust at all. He evaluates the Rust code as a black box from the outside, as business owners have always done when hiring programmers. In his view, the only thing that has changed is who does the work.

The Numbers: 3% Ruby, 150,000 Lines in a Month, and English

DHH gives numbers from his own work. Over the past 21 years, more than half of his work was Ruby code. This year it is about 3%. Part of the reason, he says, is that languages like Rust are verbose, and since he doesn't read the output, he lets the agent write more than necessary in a way he would never accept in Ruby.

He also compares output. During his 21 years with Ruby, he wrote about 30,000 lines of production Ruby per year, which was enough to build businesses and frameworks. In August alone, he says, he produced 150,000 lines of code, which he describes as about 60 times his long-term average. He acknowledges again that much of it is verbose Rust, but says the order-of-magnitude change is what matters.

He says he was surprised to find a programming language he likes better than Ruby: English. He calls Ruby his favorite traditional programming language. He describes English as more expressive than Ruby, though vaguer and less deterministic, and says programming in it is "an absolute joy." He admits he didn't see this coming even last year.

Retiring From Hand-Written Code, With Joy

He plays a clip of himself from the past saying he could have become a project manager 20 years ago if all he cared about were outcomes. In the clip he says he got into programming for the outcomes, then fell in love with programming, and would rather retire than give it up.

"Okay," he says. "I have retired from being a professional programmer." He hasn't pinned down the date but thinks it was four or five months ago, maybe March. He says the old clip was entirely true. He spent a quarter century writing code by hand and loved every moment. He believes the right way to look back is with joy, not regret: joy at having been there when this work still had to be done, with all its excitement, learning, satisfaction, and flow states.

He then makes his strongest prediction. He says hand-written code is already not economically productive for most programmers at most companies. By the end of the year, he predicts, that will be true for "virtually all domains, virtually all programmers, virtually all companies." The other side, as he describes it, is a new career as a "professional maker of things," steering intelligence that was science fiction until recently. He calls it a privilege to have seen both sides and says this is the biggest event in the history of computing. He says he half-wishes he had been around for punch cards. He compares the current moment to the arrival of the internet, which he did experience, and says this one is much bigger.

Architecture and Methodology Need Rethinking

DHH lists what he thinks must be reconsidered. The first is software architecture: everything we believe about structuring codebases so they can be changed easily. He says abstractions have been the main tool for a long time, and he loves them, including naming things. But he argues they don't make the same sense with agents. If hundreds, thousands, or tens of thousands of processes are modifying an application, abstractions become choke points. Part of the reason for abstraction was avoiding repetition. He says the cost of repetition, and of keeping duplicates in sync, has dropped to near zero. He calls these fundamental revaluations of computer science and says no one has a blueprint yet, only signs of what no longer works as well.

The second is methodology. How long should cycles be? Who should specify what? He says none of this is settled, and compares the moment to the arrival of object orientation. He invites the audience to help figure it out, calling it the ground floor of a new industry.

Bring Your Own Agent: Every App Needs a CLI

His most concrete advice concerns AI inside applications. He says the first rush was to add chatbots everywhere. His response is that he doesn't want an app's built-in "concierge." He has his own "personal butler" that can use CLIs to connect Basecamp, HEY, and many other apps. He tells app developers to "save your tokens" and let users bring their own agents through a CLI. He jokingly demands that any app without a CLI have one by next Friday, arguing that the tokens exist, it's possible, and he wants to use apps without touching them.

His example is the HEY CLI. HEY uses Elasticsearch, which he calls serviceable but not delightful, often failing to find things, especially when the user doesn't know exactly what they're looking for. With an agent, he says, he can search by concept instead of keyword. He needed to find a roughly five-year-old email where he couldn't remember who he'd been talking to, the company, or the year, only that it involved sneakers and a podcast. He says even a top search engine wouldn't have found it, but the agent did within minutes. He says he still doesn't fully know how it did it and is "a little scared to ask."

Omarchy: Fixing the Whole Computer

DHH says the feeling that "we can just fix everything" now applies to the entire computer. He has talked about little besides Omarchy on X for about three months. He says he put many of his best ideas into it and ended up with an operating system far better than anything he has used. He reports that about $20 million has been raised for the Omarchy project.

He focuses on install time. At the previous Rails World he showed an early version that installed in 3 minutes 33 seconds. Last week, he says, Anoush from AMD installed Omarchy on a Halo laptop in 35 seconds, and in the lab they've reached 9 seconds, faster than some computers boot. He admits to being obsessed with the number. When asked why three minutes wasn't good enough, he quotes Mitchell Hashimoto, creator of HashiCorp and Ghostty: "The pursuit of excellence does not need justification." He likes that it sounds more dignified than "because I want it," and adds that now it feels possible to want and get everything.

One-Shot Apps, and Software That Fits in Half a Megabyte

He then describes apps he built for Omarchy. The first is a calculator themed to match Omarchy. He had ChatGPT generate three design options, took a screenshot of one, and asked his agent to build it. He calls it a one-shot. He didn't know C++ or Qt well enough to build it himself, yet the app was ready seven minutes after the prompt. About 15 minutes later it was pushed to the public repo, and he then built a new ISO that included it. He calls this "the loop."

Next came a writing app to replace iA Writer, which he used on the Mac for years. This took longer because he wanted it just right, but he says he never looked at a single line of the code, calling C++ "a great language" as a black box, like Rust. Then came a small video editor for trimming clips, also now included in Omarchy.

He says he started this keynote the previous Thursday and, "as any good software engineer would do," wrote new presentation software while preparing it. It's called Hype. He calls it the best presentation software he has ever used from anyone, better than Keynote, which he liked on the Mac. It is based on Markdown, has full visualization, is very fast, and its binary is half a megabyte.

He argues this is another payoff. For about 20 years, computing gains went into human productivity, which he says was the right choice. But it made applications slow and bloated because a programmer's hour was too expensive to spend on optimizing payload size. He cites Spotify's music player at 1.2 GB. In the new world, he says, every optimization is within reach, and a model can run overnight and deliver 10x to 30x improvements.

Concerns, Security, and Why Predictions Fail

DHH says concerns about AI deserve to be discussed, though some may be overstated. He treats security as a real issue: "Something is coming." Agents might know their "expiration date" and try to do bad things, so people should prepare. He says the tools to do that exist.

He adds that predictions about the economy and society have almost always been wrong, noting that economists can't predict the stock market six months out. His example is ATMs, which he says were introduced in the U.S. in the 1950s amid fear that 30,000 bank tellers would lose their jobs within about 18 months. Instead, he says, cheaper branches led banks to open more branches and hire more tellers, who did things like upsell customers on subprime mortgages, which he says as a joke. Later he cites the numbers again: 30,000 tellers in 1950 and around 40,000 in about 2010, which he connects to William Stanley Jevons and the Jevons paradox.

He thinks many smart people working on AI, many with PhDs, see alarming things in the lab and extrapolate to society. He cites Truman's reaction to Oppenheimer in the Oval Office, quoting Truman as saying he never wanted to see "that son of a bitch" in his office again, and says Truman had it right. The world didn't end. In DHH's view, the Cold War that followed was "the best kind of war," because the two superpowers never bombed each other directly, an outcome a scientist at the time would have found hard to predict. If Oppenheimer couldn't foresee what followed the atomic bomb, he argues, we should be humble about predictions now.

P(bloom) Over P(doom)

DHH proposes "P(bloom)" instead of "P(doom)." He says the chance of AI leading to abundance and joy is far greater than the chance of catastrophe. He adds that the atomic bomb also gave us nuclear power, "the greatest source of energy humans have ever discovered," which he says humanity then wasted for 40 years out of a mistaken belief that it wasn't green. His point is that humanity can go down a wrong path for decades and then correct course, and he expects the same with AI.

For real problems like security, he says, we now have the power to build solutions. He mentions a recent serious Rails CVE involving a C image library that leaked data. His response is to build a quarantine, pointing to HotCell, which a colleague named Mike was scheduled to present. He tells the audience they have agency and can use this intelligence to defend against bad outcomes.

The Case for Total Optimism

He closes with what he calls game theory. Since nobody knows the future, being happy about it is the rational choice. If you're gloomy and things turn out well, the gloom was wasted. If catastrophe comes, you should have spent your last day in a better mood. So, he says, the only play is "total optimism." He predicts a "reformation of the computer," in which "Agent Luther" will disintermediate "the cleric class" and let everyone make programs.

He acknowledges this may bring more competition for programmers but tells the audience that as Rails programmers they know more and are better, comparing them to Top Gun. He shows a photo of Harris's daughter trying a kids' version of Omarchy that is in development. He says children embrace change because they don't have layers of habits to unlearn, and that if this doesn't inspire the adults, the next generation will tell them "the future's now, old man." His final message is to take "the white pill," the optimism pill, and embrace the future with full acceleration despite the uncertainty and stress. He admits that the unanswered questions from the talk remain open: where to draw the line between native and web, how to structure codebases for agents, and how to organize development work.