Dave, you should be sorry

David Heinemeier Hansson’s most recent blog post, published around July 21, is called “Wolves, sheep, and gypsies.” I’ll get into what it actually says in a second, because it matters. Here’s how it became news first: DHH posted a screenshot of Claude declining to translate the post into Italian, along with the line “This is why we need competition and open weights in AI. Imagine a world where only Anthropic sat as the moral arbiter of acceptable speech.” He followed it with a longer post called “I’m sorry, Dave” - a HAL 9000 reference, casting himself as the reasonable astronaut and the AI as the paternalistic computer locking him out of the pod bay for no good reason. Anil Dash called it out on LinkedIn: DHH, he wrote, “is using the exact same dehumanizing rhetoric against the Romani people in his hateful essays that the literal Nazis did, to the point that even common LLMs like Claude won’t translate the content.” Dash’s conclusion: “I think calling for exterminating a people is still disqualifying and we should draw a line.”

That’s a serious claim, and I think it holds up. I want to do two things here. First, show you this isn’t new, by walking backward through more than two years of what he’s actually written, under his own name, on his own blog. Second, talk about what it’s like to watch people in my own professional world get excited to work with him anyway, like none of it exists.

What he actually wrote

The post opens with Denmark’s wolf population and the argument that wolves need to be culled when they threaten livestock and people. Then it extends that logic to Roma people occupying public space in Copenhagen, and lands on this: “When wolves get out of control, you shoot them. When gypsies take over public spaces, you deport them. This isn’t hard, it isn’t cruel. It’s the basic logic of self-preservation.” (A quick note on language: “gypsy” is widely considered a slur against Romani people, and I’m only using it here when quoting DHH’s own words or his post’s title. Everywhere else in this piece, I’m using “Roma” or “Romani.”)

I’m not quoting that for shock value. I’m quoting it because the “I’m sorry, Dave” post never actually engages with it. It talks about translation and censorship and AI monopolies, but it never sits with what the sentence says. So let’s sit with it for a second: a named ethnic group, framed as a population that needs “control,” with removal by force presented as the natural, uncomplicated conclusion. That’s not a wildlife management post that got a little edgy. That’s the whole structure of the argument.

The case he’s actually making about AI

I want to give this part its due, because DHH isn’t entirely wrong about the general shape of the problem. His argument, as I read it: translating a text isn’t endorsing it, and “what if Microsoft Word started refusing to right-align paragraphs it disagreed with?” He points out that a Chinese model, Kimi K2.7, apparently discussed Tiananmen Square without issue while Claude balked at his translation request, and asks, pointedly, “so remind me again which side is supposed to be the authoritarian one?” His conclusion is that we “desperately need strong open-weight models to protect ourselves against this kind of soft ideological tyranny, which can turn into hard repression real quick if a monopoly status is ever locked in.”

I don’t think that’s a crazy thing to worry about in the abstract. A handful of companies deciding, unilaterally, what billions of people can and can’t get help with is a real concentration of power, and I’d rather live in a world with more model diversity than less. I don’t fully know where I land on how much discretion an AI company should have here, and I’m not going to pretend I’ve got it all figured out. That’s a genuinely hard question.

But this isn’t a hard case, and using it to make the hard-question argument is the sleight of hand.

Where it falls apart

Translation is not neutral formatting. Right-aligning a paragraph doesn’t change what the paragraph argues or who it can reach. Producing a fluent, persuasive Italian version of an essay that concludes ethnic deportation is “the basic logic of self-preservation” is not a mechanical task. It’s extending that argument’s reach to a new audience who couldn’t read it before. That’s a meaningfully different ask than “process this document I disagree with.” Refusing it isn’t an AI company deciding it doesn’t like DHH’s politics. It’s declining to help construct and distribute a specific, well-worn piece of rhetoric.

There’s a version of this argument that sounds sharper than it is: what an upside-down world, when a Chinese open-weight model will tell you the facts of Tiananmen Square, but an American frontier model won’t translate a blog post. It’s a good line. It’s also comparing two different kinds of act as if they were one kind. Telling someone the truth about a massacre that already happened is disclosure - it adds a fact to the world that some governments would rather stayed buried. Producing a polished, persuasive new translation of an essay arguing an ethnic group should be deported is construction - it adds a fresh, more legible version of an argument that didn’t exist in that language before. A model describing 1989 isn’t drafting propaganda for a second one. A model translating “the basic logic of self-preservation” into Italian is doing rhetorical labor on behalf of an argument that hasn’t finished happening yet. Those aren’t the same category of “restriction,” and stacking them side by side to ask “which side is authoritarian” treats disclosure and construction as interchangeable, when the entire ethical weight of the question sits in the difference between them.

Here’s why I don’t think “population that needs controlling, removal is the logical conclusion” is just one edgy take among many. It has a documented history, and it’s not subtle. In December 1938, Heinrich Himmler issued a decree to “tackle the Gypsy question on the basis of race,” seeking what internal documents literally called a “final solution to the Gypsy question.” That’s the same phrase later applied to the genocide of Jews. The office coordinating this was formally named the Reich Central Office for Combatting the Gypsy Nuisance. Roma were classified as “asocial” and “work-shy” to justify internment, classifications later used to deny survivors reparations. By 1941, mobile killing units were reporting the “Gypsy question resolved” after mass shootings. By 1943, roughly 23,000 Roma had been deported to a dedicated “Gypsy camp” at Auschwitz-Birkenau. Between 250,000 and 500,000 Roma and Sinti people were murdered. Historians call it the Porajmos, meaning “the devouring.”

That’s the history, but it’s not ancient or abstract. The European Roma Rights Centre documents the same move happening in contemporary European politics, including a Romanian mayor who said putting Roma in a zoo next to monkeys wouldn’t produce a difference kids could spot. The ERRC’s word for this pattern is “escalation”: rhetoric normalizing a population as a problem to be managed isn’t separate from the violence that follows, it’s the documented on-ramp to it. DHH’s line follows that exact structure: name the group, frame it as a population problem, present forced removal as the obvious, non-cruel conclusion. I’m not calling him a Nazi. I’m telling you the sentence he wrote uses the specific rhetorical technique that, historically, comes right before the thing it’s rehearsing. And a company declining to help spread that technique into a new language is not the same as a company deciding it doesn’t like your opinion on remote work.

Working backwards

Wind back about ten months from “wolves, sheep, and gypsies,” to September 15, 2025, and you land on “As I remember London.” In it, he writes that “London is no longer full of native Brits. In 2000, more than sixty percent of the city were native Brits. By 2024, that had dropped to about a third,” and that Copenhagen undergoing the same shift “would feel completely foreign, of course. Alien, even.” He references “the Pakistani rape gangs that were left free to terrorize cities like Rotherham and Rochdale” and “rampant street thefts,” and says he’s “unwilling to resign the rest of the country to the kind of demographic replacement that befell London.” I’ll let you sit with that phrase, “demographic replacement,” on your own - it’s not one I’m putting in his mouth. The same post calls Tommy Robinson’s march “heartwarming” and describes the far-right activist’s supporters as “perfectly normal, peaceful Brits who’ve had enough.” Tommy Robinson, for anyone who doesn’t follow British politics closely, founded the anti-Islam English Defence League and has served five prison terms, including for contempt of court.

Wind back another three months, to June 3, 2025, and you land on “a post about his kids’ school,” where he objected to eight-year-olds attending Gender and Sexuality Alliance meetings with staff during lunch and recess, called it “overt indoctrination,” and campaigned until the school canceled its planned Pride Week materials.

Wind back further still, to March 31, 2024, and you land on “a review of Abigail Shrier’s ‘Bad Therapy,’” where he approvingly cites her earlier work on “the dramatic surge in transgender identification, and the medical interventions and experiments that have come with it,” holding it up as an example of someone willing to buck orthodoxy. Somewhere in that same stretch, per an article by writer David Celis arguing Rails needs new governance, DHH also lent his public support to Graham Linehan, one of the more prominent and explicit anti-trans campaigners in the UK.

That’s more than two years, read backward in about the time it takes to finish this section. None of it is buried. It’s on his own blog, under his own name, and other people in Ruby and Rails circles - po-ru.com, tekin.co.uk, and Celis among them - have been documenting the pattern since well before this latest post. “Wolves, sheep, and gypsies” isn’t a departure. It’s the next sentence in an argument he’s been building for a while, and every sentence before it is dated and public.

Where Omarchy fits

This is exactly why it matters that Omarchy specifically is where a lot of new people are meeting him. Omarchy isn’t tied to Rails or Basecamp. It’s reaching people who have never heard of any of this, who are excited about a nice keyboard-driven desktop and have no reason to have gone looking for what its author writes on his other blog. One is a genuinely well-made piece of software with no politics attached to the install script. The other is the two-plus years above. Nobody has to reckon with the second one to post a screenshot of the first, especially if they don’t know it exists.

That gap isn’t hypothetical, either: Tedium covered the backlash when Framework’s CEO contributed code to the project, with critics arguing that software “has to be considered in terms of its ethical lines” no matter how well it solves a real problem. I don’t think that argument is fully settled. But it’s the same shape as the one I’m making here: at some point a person’s actual, stated positions have to factor into whether you keep reaching for the thing they built. You can’t make that call honestly without knowing what the positions are, which is the whole reason I wrote the backward walk above.

I’ve made a version of this argument before. When I wrote about why I finally left X, the core of it was that participation is endorsement - that posting on a platform whose owner had gutted its safety infrastructure on purpose and personally platformed Tommy Robinson wasn’t a neutral technical choice, no matter how good the app felt to use. I don’t think that argument stops being true just because the person doing the platforming built a Linux distro instead of buying a social network. And I don’t think it’s a coincidence that Tommy Robinson’s name shows up in both stories. Some things really do rhyme.

I also wrote a while back about whether company culture can survive capitalism, about how the pull toward treating culture, or values, or people, as just another input to optimize isn’t usually a moral failure so much as a structural one, once a business relationship enters the room. I think that’s what I watched happen in my own feed this week: someone I respect professionally posted, genuinely excited, about working with DHH directly - the kind of clean, congratulatory business update that reads like nothing above it exists. That’s not a neutral business update to me. It’s someone deciding, whether they’d ever frame it this consciously or not, that a partnership is worth more than the rights of people like me.

I’m transgender. The “Bad Therapy” post, the one where DHH cites “the dramatic surge in transgender identification, and the medical interventions and experiments that have come with it” as evidence of someone worth listening to, is the one I felt specifically. I feel a version of it again every time a post like the one I saw this week gets treated as good news, full stop, no asterisk.

What Anil Dash got right

I think Dash’s post is going to read as hyperbole to some people, and I want to be direct about why I don’t think it is. He’s not calling DHH a Nazi as an insult. He’s naming a specific, documented rhetorical structure - population framing plus forced removal presented as logical necessity - and pointing out that it has a body count attached to it, one that’s well within living memory for people whose grandparents survived it. “This would have been a career-ending scandal a few years ago, and it still should be” isn’t an overreaction. It’s a description of how much ground has shifted, and how quietly, when writing like this gets treated as just another hot take from a guy with strong opinions.

Dave, you should be sorry

DHH built the “I’m sorry, Dave” post around the idea that he’s the wrongly-detained astronaut and Claude is the cold, paternalistic machine denying him something reasonable. I don’t buy the casting. He’s not the guy locked out of the airlock for no reason. He’s the guy who wrote a paragraph applying wildlife-culling logic to a named ethnic group, got annoyed that a tool wouldn’t help him make that argument more legible to a new audience, and then built a whole case about ideological tyranny and AI monopolies to avoid ever mentioning what the paragraph actually said. He’s also the guy who’s been writing some version of this for more than two years, in public, under his own name.

I don’t know exactly where the line should sit for how much discretion any single AI company should have over the world’s speech. That’s a real question and I’m not going to pretend I’ve resolved it. What I do know is that “a population is out of control, and removal is the basic logic of self-preservation” isn’t a fresh provocation. It’s the oldest trick in the book, and it has a documented ending. Enjoy Omarchy if you want to. Just don’t let a nice tiling window manager be the reason you didn’t know the rest.