Ship half-baked, inherit Hyrum's Law forever

5 min read 1 source clear_take
├── "Half-baked products are the rational output of a market that rewards first-mover credibility, not a moral failure"
│  └── weli (weli.dev) → read

The original blog post argues that incomplete software persists because markets reward whoever ships a credible product first and rarely revisit that decision. Founders aren't lazy or incompetent — they're responding rationally to incentives that make finishing the product economically irrational once the market position is secured.

├── "User workarounds become de facto interfaces the vendor doesn't own, which is why half-baked products stay half-baked"
│  └── top10.dev editorial (top10.dev) → read below

The editorial extends weli's market argument with a mechanism from the user side: the moment a product ships with a gap, users fill it with scripts, Zapier flows, spreadsheets, and Discord lore. Those workarounds become load-bearing interfaces the vendor didn't design and can't see, making the missing feature impossible to complete without breaking behavior users now depend on.

└── "Hyrum's Law applies even harder to missing features than to quirky ones"
  └── top10.dev editorial (top10.dev) → read below

Building on Google's observation that any observable behavior of a shipped system becomes load-bearing, the editorial argues half-baked products get an industrial-strength version: users depend on the specific shape of what's absent — CSV column order, rate-limit quirks, tokenization rules. Fixing the hole later doesn't just add a feature; it breaks every workaround built around the hole's exact geometry.

What happened

A post titled *Half-Baked Product* on weli.dev cleared 1,221 points on Hacker News — the kind of number a personal blog only hits when a thousand engineers see themselves in the copy. The visible take, and the one that got most of the airtime in the thread, is the equilibrium argument: incomplete software isn't a moral failure of the founder, it's the rational output of a market that rewards the first credible product and never revisits the decision.

That framing is correct, but it's the surface. The more interesting mechanism sitting underneath it — the one that explains why half-baked products don't get completed even when the team has the time, the money, and the will — is what happens on the *user* side of the gap. The moment you ship a product with a hole in it, users start filling the hole. They script around it. They pipe your CSV export into a Google Sheet. They stand up a Zapier flow. They train a support macro. They tell each other, on Discord, the specific four clicks that get the thing to behave.

Those workarounds are interfaces. They just happen to be interfaces you didn't write, don't own, and can't see.

Why it matters

Every working engineer has met Hyrum's Law: *with a sufficient number of users of an API, it does not matter what you promise in the contract; all observable behaviors of your system will be depended on by somebody.* The lore version comes from Google, where teams learned that even undocumented, obviously-wrong behavior becomes load-bearing the moment it ships.

Half-baked products get the industrial-strength version of this. When your product is *missing* the feature rather than merely quirky about it, users don't just depend on your behavior — they depend on the shape of the *absence*. The exported-CSV column order. The rate limit that lets three sequential writes through before the fourth 429s. The fact that the search box tokenizes on whitespace so they've learned to type quoted phrases. None of that is documented. All of it is now the product.

Then you try to "finish" v1 — and every user who paved the missing road hits a breaking change. The feature you're proud of shipping breaks the Zap. The redesigned search returns better results but fewer of the ones the power user had memorized. The proper import flow deprecates the CSV pipeline three people at three customers spent a quarter tuning. Your changelog says "we shipped the thing you asked for." Their inbox says "why did you break the thing that worked."

This is why the *first credible product wins the category* claim is stronger than it sounds. The category winner isn't defended by superior features — it's defended by the accumulated user-side scar tissue that would have to be rebuilt against any competitor. Airtable's real moat is not the grid; it's the ten million Zapier flows aimed at the grid. Notion's moat is not the block model; it's the fact that every team's onboarding doc now assumes the block model. Half-baked products don't just outlast better ones — they *become* the substrate the better ones would have to migrate off.

The operating-margin corollary: for the incumbent, completing v1 is negative-ROI work. The upside is a marginally happier subset of users. The downside is a public regression event, a support spike, and a bunch of loud customers whose workflows you just voided. Meanwhile the next feature — the one nobody has built a workaround for yet, because it doesn't exist yet — is pure upside. So the roadmap moves forward and the gap stays open. The half-baked bit calcifies into architecture.

What this means for your stack

If you're building: treat every deliberate gap in v1 as an implicit contract the moment it reaches users. That doesn't mean fill every gap — that's the whole point of the equilibrium argument, you can't. It means design gaps you can close *without invalidating the workarounds people built across them*.

Concretely: if you're going to ship a broken thing, ship a broken thing behind a stable seam. Version your CSV exports so the eventual "proper API" is additive. Put the rate limits and pagination behavior in the docs even if the docs read like an apology, because docs make the contract explicit and give you cover to change what isn't documented. Keep the ugly export endpoint alive for two years past the pretty one — the cost is a route handler; the benefit is not breaking the customer who wired their finance team around it.

If you're buying: assume every vendor's v1 has a load-bearing gap you'll end up gluing shut yourself, and price that in. The right question in a procurement demo is not "does it do X" but "when it doesn't do X, what's the escape hatch, and how stable is that escape hatch?" A tool with a documented, versioned, boring CSV export is safer than a tool with a beautiful roadmap slide about the native integration coming in Q3. The CSV export is the contract. The roadmap slide isn't.

If you're operating a mature product: the workarounds your users have built around your gaps are, unromantically, part of your surface area. Inventorying them is a real exercise. Talk to support. Read the community Discord. Search Zapier for your product's name. That list is your undocumented API, and every "cleanup" ticket in your backlog is quietly proposing to break some entry on it.

Looking ahead

The weli.dev post landed because it named something every practitioner had already noticed but wasn't saying out loud: shipping incomplete is the *strategy*, not the failure mode. The follow-on realization — that the gaps get sealed shut by user behavior faster than by engineering work — is what makes the equilibrium stable. The moat of a half-baked product isn't its features; it's the collective muscle memory of everyone who learned to work around its missing ones. Which means the design skill the next decade of tools will actually reward isn't shipping less half-baked v1s. It's shipping half-baked v1s whose gaps are shaped like doors instead of walls.

Hacker News 1310 pts 391 comments

Half-Baked Product

→ read on Hacker News
TrackerFF · Hacker News

One important part of the story is in the very beginning: The founder’s motivation. To become wealthy.You see this in the startup world a lot. Founders with 5+ failed startups in different sectors, because said founder picked the fields mainly by doing some market analysis. Not domain expertise.Ther

sixtram · Hacker News

Oh, I'm glad I don't work in the oven business. We're just starting a stealth startup that's revolutionizing dishwashers, and the prototypes are amazing. They use less water, less detergent, and this weekend we're hoping to solve the last remaining issue: occasionally, they

brap · Hacker News

We keep seeing this. If you had to point out the fundamental problem, what would it be?I think it’s the disconnect. Each persona is an expert in their own field but is completely oblivious to other critical areas.The founder knows how to raise money but doesn’t really understand the customers. The e

phtrivier · Hacker News

This article could have been written 20 years ago (source : I was there), probably 50 years ago, and will probably be written for ever. (Although future éditions will have fun about AI.)What I would love is to read more of the story from the perspective of the salesperson (we're all too sympath

xg15 · Hacker News

I found the part about the engineer's motivation interesting:> The founder offers [the engineer] 20% of the company and total freedom to build the perfect oven. The salary isn’t great, but there’s the promise: [...] And something more important than money: he’ll finally get to build the oven

// share this

// get daily digest

Top 10 dev stories every morning at 8am UTC. AI-curated. Retro terminal HTML email.