What Happened When I Let the Internet Decide What Code Gets Merged (Week 1)
Source: Dev.to

How a repo let the internet decide what gets shipped—and what happened next.
January 5 2026, 23:12 UTC – I pushed a commit: a simple Next.js app with a countdown timer and a list of pull requests.
Rules
- Anyone can submit a PR.
- Community votes with 👍 reactions.
- The most‑voted PR gets merged every Sunday.
- Everything can be changed—including the rules.
I called it OpenChaos.
Six days later it hit #1 on Hacker News.
This is the story of Week 1.
The Numbers
| Metric | Value |
|---|---|
| Stars | 400+ |
| Forks | 35+ |
| Pull Requests | 70+ |
| Closed as spam | 29 |
| Open and competing | 30+ |
| Hours on HN front page | 17+ |
Day 1 – Bootstrap
The MVP took one night: a countdown timer, a list of open PRs, and vote counts pulled from GitHub’s reactions API.
I submitted the first PR myself: dark‑mode toggle – because every project needs a dark‑mode debate.
Within hours, I wasn’t alone.
Day 2 – The Nihilist Arrives
PR #2: “Vote to shut it down”
@Salman‑Sali submitted a PR that would delete everything (7,108 lines removed). The description was empty.
“the people who upvote this are probably trump supporters”
Salman‑Sali replied:
“hey mister, its not me who chose chaos”
The PR failed CI. Democracy had guardrails.
But the story wasn’t over.
Day 3 – The Frontrunner Emerges
PR #6: “Calculate +1 and -1 reactions”
@yokeTH submitted a feature that would count down‑votes as well as up‑votes. The net score would determine the winner.
It was a genuine improvement – and also a weapon. Once down‑votes counted, the “Vote to shut it down” PR started losing ground.
Day 4 – I Broke My Own Rules
The site was showing wrong vote counts. PR #1 had 147 votes but displayed only 30. GitHub’s API paginates reactions, and I hadn’t accounted for it.
I faced a choice:
- Wait for someone to submit a fix and let the community vote on it.
- Push the fix directly so voting could work correctly.
I chose the latter.
After the first fix I hit rate‑limiting (60 requests / hour without auth) and had to push another fix.
You can’t vote on whether to count votes correctly. That’s circular.
The voting system has to work before democracy can function. Every intervention feels like a small betrayal of the premise.
Day 4 (Part 2) – The Demonstration
@Kl0ven opened 30 identical PRs titled “should have use proper pagination :(”. I thought it was spam and closed them all.
Kl0ven got one through: PR #45 “F, At least I tried” (current votes: –4).
It turned out to be a demonstration of a bug: GitHub’s API returns 30 results by default. By flooding the repo with PRs, Kl0ven pushed older submissions past that limit, making them disappear from the leaderboard entirely. They weren’t spamming; they were exposing a flaw I didn’t know existed.
Day 5 – The Dramatic Withdrawal
With down‑votes now counting against him, @Salman‑Sali closed his own PR and left this message:
Thank you for all those who have supported me.
It is with great regret that I have to say that I am dropping out of this race.
The big‑money‑funded PRs have plotted against me. They want to calculate the negative votes too. The big money has influenced this election. I will not stand for this injustice.
Therefore I am dropping out of this race.
Someone replied:
“STOP THE COUNT!”
A GitHub PR had become political satire.
Day 5 (Part 2) – The Creator’s Sacrifice
My dark‑mode PR #1 was winning (228 up‑votes) and would have been the first merge. But something felt wrong, so I withdrew it:
“Withdrawing to keep the first merge purely community‑driven. Let the chaos decide.”
When asked why:
“Didn’t feel right winning my own game.”
The first merge had to belong to the community.
Day 6 – The Meme Becomes Real
PR #13: “Rewrite it in Rust”
Every project eventually gets this comment. @wvanlit decided to actually do it: a full Rust rewrite compiled to WASM, ready to ship.
There was just one problem – the Vercel build kept failing:
Module not found: Can't resolve '@/wasm/pkg/openchaos_wasm'
The meme was real, but it couldn’t compile.
Community reaction:
“once this gets done, we can put this in the linux kernel”
Day 6 – Hacker News
350 + points, 70 + comments – #1 on the front page.
The comments were beautiful:
- “Twitch plays GitHub”
- “Like Reddit but Nomic”
- “Codified Dadaismus”
- “It’s an absurdist art software project, devoid of an…
y consistent intent or purpose beyond the operating principles.”
Someone asked what the point was.
The best reply:
“I don’t think there’s a point. You can always submit a point; if it gets voted you will have your point.”
The First Merge
Sunday, January 12, 2026 · 09:00:37 UTC
I merged PR #6: “Calculate +1 and ‑1 reactions” by @yokeTH.
Final score: 903 upvotes
The first community‑driven change to OpenChaos makes downvotes count. The project that started with pure up‑vote democracy now has its first check on power. The irony isn’t lost on me.
Week 2 Begins
The leaderboard reset. New contenders emerged:
| Rank | PR | What it does | Net |
|---|---|---|---|
| 1 | #13 | Rewrite in Rust | +409 |
| 2 | #51 | Chaos each day (daily merges) | +365 |
| 3 | #47 | IE6 mode with Comic Sans | +179 |
| 4 | #8 | Show PR health indicators | +122 |
| 5 | #11 | Invert dark/light mode | +57 |
The Rust rewrite is leading Week 2. If someone fixes the build, the meme becomes reality.
What I Learned
-
People want to add structure to chaos.
The winning PR adds down‑vote counting. The third‑place PR changes merge frequency. Governance is the community’s first instinct. -
Memes become real.
“Rewrite it in Rust” is leading Week 2 and might actually happen. -
Every system gets gamed.
Within 48 hours, people discussed vote manipulation, bait‑and‑switch commits, and bot attacks. Security conversations started before the first merge. -
Drama writes itself.
I didn’t plan the political satire or the dramatic withdrawal. The chaos created its own narrative. -
Maintainers can’t be neutral.
I tried to be hands‑off but ended up pushing fixes and closing spam. @Kl0ven exposed a bug I’d missed—they weren’t wrong.
What’s Next
- PR #13 – could give us a Rust rewrite (if someone fixes the build).
- PR #51 – could change merges to daily.
- PR #47 – could send us back to 1999.
That’s the point.
The rules can change the rules. The chaos is the feature.
400 + stars, a Hacker News front page, and the best GitHub drama I’ve ever seen. I’ll take it.
Week 1 of ∞. See you Sunday.
