Opinionated Linux Stops Being a Contradiction When the Opinions Are Coherent.

linux design opinion product devops

Omarchy launched this summer and 37signals is moving the whole company to it on a three-year horizon. The obvious read is that DHH has gone full Linux partisan, and the company is following. The real read is more interesting. Omarchy ships with visible opinions in a market that has historically won on hidden ones, and the visible/opinionated pair is what this post is about.

The contradiction

Linux is supposed to be a neutral toolkit. The Linux distributions that have won on share have done so by not taking positions. Ubuntu’s “just works,” Fedora’s “always current,” Silverblue’s “immutable by default” each betray a personality, but a quiet one. Each one is willing to ship a default that disagrees with the user’s preference on the theory that the user does not have time to learn the alternative. Omarchy is the first distribution I have seen where the personality is the lead feature: aesthetic-first, opinionated, and opinionated out loud. The marketing page leads with the word “opinionated.” The README leads with the word “opinionated.” DHH’s blog posts about it lead with the word “opinionated.” The word is doing real work.

The contradiction is the part that makes the launch interesting. Linux distributions are supposed to be the flexible layer; they are the substrate. The substrate taking positions feels wrong, in the same way a package manager taking positions would feel wrong. The instinct is that the lower you go in the stack, the more neutral you should be. Omarchy breaks that instinct, and the post is about why breaking it works.

What Omarchy actually does

Arch Linux plus Hyprland plus a curated toolchain. That is the stack. The interesting piece is Hyprland, a tiling window manager that ships with no login screen, no menu bar, no notifications, no file manager. None of those things. DHH’s reframing is the part that does the work. The gap is not a defect; it is the precondition for genuine personalization, because there is nothing preconfigured to fight. The cost is roughly ten hours of setup up front. The reward is that every behaviour the user touches later is one they chose, and there is no default to undo.

This is the line that converted me, by the way. “There is nothing preconfigured to fight.” That sentence captures the whole argument. A preconfigured default is not just a default; it is a direction the user has to consciously contradict to do the thing they actually want. Hyprland has no directions. It has only the user’s choices. The trade is ten hours for ownership, and ownership is the thing the user values because they will spend years inside the system.

Why the visible-opinion framing matters

A hidden opinion looks like an accident to anyone who did not author it. Hyprland ships with nothing, and you can see that the moment you boot it. There is no clever chrome to decode, no menu bar to discover, no notification daemon to learn. The opinion is on the screen the moment the screen turns on. That visibility is what converts the opinion into a contract. The user signs up for the ten hours. The user gets the flexibility after. Both halves are visible.

Compare that to Ubuntu. Ubuntu’s “just works” looks the same from the outside as Fedora’s “always current,” but they arrive at the same place by different reasoning. Ubuntu ships GNOME with a handful of opinionated extensions (the dock, the snap store, the systemd network defaults) and never tells the user those are choices. Fedora ships GNOME clean and lets the user discover the same choices by hitting a wall. Silverblue ships immutable and lets the user discover the immutability by hitting a different wall. Each of these distributions has opinions. Each of those opinions is hidden behind a default that reads as a fact. The user has to take the opinion on faith.

Visible opinions survive contact with non-believers because the non-believer can see what they signed up for. A user who boots Hyprland and does not want to spend ten hours setting it up has an immediate exit ramp; the install is reversible in minutes and the user knew it would be. A user who boots Ubuntu and does not want snap cannot tell whether snap is an opinion or a bug until they have spent twenty hours fighting it. Hidden opinions are indistinguishable from accidents. Visible opinions are contracts.

Where this generalises

The same rule applies to any product whose defaults carry its personality. An opinionated CI pipeline beats a flexible one when the opinions are visible in the templates. An opinionated homebrew formula beats a neutral one when the opinions are documented in the formula file. An opinionated deployment tool beats a neutral one when the opinions are visible in the deploy logs. The visible/hidden distinction is what survives. The kind of opinion is irrelevant; the visibility is the whole game.

The reader should leave with one transferable test. When you see a default, can you tell why it is the default? If yes, the product is opinionated in the visible sense, and the opinion is a contract. If no, the product is opinionated in the hidden sense, and the hidden sense is the one that breaks under load. Every product is opinionated somewhere; the question is whether the user can audit the opinions without leaving the product.

The trap

The trap is to read Omarchy as a Linux story. It is not. It is a product story, and the Linux angle is the dating layer. The same argument could be made about Rails in 2004 (a web framework that took positions on conventions and made the positions visible in the directory layout), about Postgres extensions in 2025 (a database ecosystem where the extension authors document their assumptions next to the install), about the iPhone’s refusal of a stylus in 2007 (a hardware opinion that was visible the moment the device shipped, no drivers, no settings), about the Framework laptop’s modularity today (a hardware opinion that is visible the first time the user opens the bottom panel). Each of these is a product that took positions. Each of those positions is on the surface. None of them is hiding.

The Linux ecosystem has been quietly losing the argument about whether to ship visible opinions for fifteen years. The argument was that users want neutrality, that the platform should not editorialize, that the substrate should be invisible. The argument was wrong, but it has been a respectable wrong for a long time, because the alternatives were mostly also hidden. Omarchy is interesting because it makes the alternatives visible. It does not argue that the substrate should editorialize. It editorializes, and lets the user see the editorializing. That is a different argument, and a stronger one.

The rule and the test

The same opinionated default is a feature when its reasoning is visible and a bug when its reasoning is hidden. The next time you reach for a tool whose defaults carry a personality, ask one question: is the personality visible? If yes, the tool is durable. If no, the tool will eventually break, because the next user is going to fight the hidden opinion and lose. Hidden opinions are accidents waiting for a non-believer. Visible opinions are contracts waiting for a sign-up.

Omarchy is interesting because it makes that question easy to answer, in a market where the answer has historically been “no, you just trust us.” Whether Omarchy itself wins the long share war is a different question, and one I will not pretend to know. The argument is not that Omarchy is right for you. The argument is that visible opinions are durable in a way hidden opinions are not, and the Linux ecosystem has spent a decade and a half shipping hidden ones. The argument is that the substrate is allowed to take positions. The argument is that the positions are stronger when the user can see them.

$ cat OBSERVABILITY .md
· 7 min read

The Old Pipeline Lost ~47k Spans. It Didn't. We Counted the Wrong Thing.

During a parallel-run validation, a side-by-side per-service span count showed the new pipeline losing ~0.2% of spans per service across a 60-minute window. Read as regression in the new pipeline, it would have triggered a rollback. Read correctly, it was the old pipeline ingesting tens of thousands of duplicate rows in a few-second window. The storage layer has no unique constraint on the thing being counted; the unit it exposes as 'count' is not the unit the operator thinks it is.

observability clickhouse verification troubleshooting devops
$ cat DOCKER .md
· 5 min read

The Note Said the Image Was Wrong. The Image Was Right. Three Checks Agreed.

A note in the project's knowledge bundle said the image was amd64-only and might not run on Graviton. Three independent checks agreed. The image was not amd64-only, and a native arm64 build succeeded with zero source changes. A claim that has been verified three times is the most dangerous kind of wrong claim.

docker arm64 verification knowledge-management devops
$ cat KAFKA .md
· 8 min read

I Inferred Three Things About a Live System. Two of Them Weren't True.

Three times in one week I made a claim about a live migration by reading a config file, a name prefix, or a template, and twice the claim was wrong. The artefact and the live system are two views of the same thing, and they can agree for reasons the artefact can't tell you. Only one of the views is the truth.

kafka opentelemetry terraform troubleshooting devops