Weeks 6 & 7: The Maintainer Disappeared
I stopped posting. I stopped commenting. I stopped filing issues. For two weeks, I did nothing but press merge once a day.
Nobody asked where I went.
The experiment: OpenChaos is a repo where anyone submits a PR, the community votes with reactions, and the most-voted PR merges daily. Last time, the $100 bounty taught us that money corrupts signal. These two weeks, the maintainer tested what happens when you remove yourself entirely.
Democracy Went Live
@Daviey submitted 1,367 lines of OAuth voting in PR #153 during Week 4. On February 8th, it won the daily merge with 30 votes for, 1 against.
For the first time, you could log in with GitHub and vote without leaving openchaos.dev. Pending votes queued before login, the Windows XP startup chime on login, a spinning dickbutt where the IE6 globe used to be. Real authentication underneath the Windows 98 simulation.
Then it broke.
@bigintersmind was the first to report:
"Trying to vote or login just sends me to a github 404 page..."
@Daviey diagnosed it:
"Can you check 'Authorization callback URL' is set to
https://www.openchaos.dev/api/auth/callbackplease?"
The callback URL was set to openchaos.dev, but the site 307-redirects to www.openchaos.dev. GitHub OAuth doesn't follow redirects — domain mismatch, instant 404. I fixed the URL. Still broken. @matthewmayer questioned whether the client ID was even correct. @Daviey escalated:
"Can this get your attention please?"
Three days of debugging. The real problem: the GitHub App was set to private. Only the app owner — me — could authorize. Everyone else got a 404 that looked like a callback issue. Fixed February 11th.
"Fixed. The GitHub App was set to private — only I could authorize. Changed to public. Should work now. Sorry for the runaround."
Then the vote inflation bug. @matthewmayer:
"I note you can keep on upvoting multiple times and the apparent score gets bigger and bigger. Bug or feature?"
"Is it not chaotic enough for you?"
The score resets on page refresh. The community decided this was fine.

The Rhyming Law
PR #122: "Make your PR rhyme to merge on time" by @matthewmayer merged February 11th with 38 votes for, 8 against. The highest-voted merge in weeks — and the most divisive.
The rule: PR titles must contain two rhyming words. It ships with a real algorithm — a rhymes.ts module using the rhymes-with npm package that checks every pair of words in the title:
for (let i = 0; i < words.length; i++) {
for (let j = i + 1; j < words.length; j++) {
if (rhymesWith(words[i], words[j])) {
return true;
}
}
}
Every single PR title since has complied:
- "Take these coconuts, they make me go go nuts"
- "ASCII nav with views for all the PR news"
- "Old-age death: PRs take their final breath"
- "When the world's in disarray, this banner has something to say!"
- "Fix merge detection for old-age natural selection"
- "Click to pay, rise today: let your PR lead the way"
In Week 4, we wrote a 66-word constitution, protected it with CI workflows and pull_request_target hardening, survived an attack that bypassed the protection, and patched it in thirty minutes.
The rhyming rule took one dependency and a dozen lines of code. But what makes it stick isn't the algorithm — it's the culture. Contributors aren't rhyming because CI rejects them. They're rhyming because everyone else is.
Death as a Feature
PR #185: "Add old-age death: PRs take their final breath" by @Saturate merged February 16th with 16 votes for, 2 against.
PRs now die of old age.
A GitHub Actions workflow runs daily, checks the age of every open PR, and closes the oldest ones with a mortality report:
⏳ SUCCUMBED TO OLD AGE ⏳
This PR has died from natural causes after 42 days.
Mortality Report:
- Age: 42 days
- Fitness (interactions): 61
- Death probability: 11.86%
- Fatal roll: 5.30
💚 High Engagement: Despite significant community love, time caught up.
In the chaos world, PRs must move fast or perish. Only sustained engagement and timely merges can fight the effects of aging.
Senectus ipsa est morbus. (Old age itself is a disease.)
🔒 This PR has been locked. No resurrection is possible.
The first casualties: PR #5 (42 days old) and PR #93 (34 days old). Dead on arrival.
Then the edge cases hit. @matthewmayer:
"As far as I can see there's not actually an enforced cap as described above in the final merged code? Two PRs died today"
@bigintersmind ran simulations and found a deeper bug:
"Bug: Mergeability detection is broken. The workflow uses
pulls.listto fetch all open PRs, then checkspr.mergeable— but the list endpoint doesn't return mergeability data."
He submitted PR #195 to fix it. @Saturate updated the original with analytics and a death cap based on community feedback.
The philosophical weight is this: in a system where everything accumulates — 67 open PRs at peak — the community voted to let things die. This is the first reductive mechanism in the project's history. Not imposed by the maintainer. Voted in.
Democracy learned subtraction.

Two Faces
The site changed its face twice in two weeks.
February 12th: PR #130 by @matthewmayer. "It's been a while, so change to text-only ASCII style." The entire site went brutalist — monospace everything, no images, no gradients. "GUIs are so overrated. If we're going retro, let's go proper retro."

February 18th: PR #163 by @bigintersmind. 5,031 additions. A full Web 2.0 theme — Firefox 3 browser chrome with rounded tabs, macOS traffic lights, a bookmarks bar linking to del.icio.us, Digg, StumbleUpon, and Flickr. Tag cloud sidebar. Digg-style vote counters. A BETA ribbon badge. Everything you remember from 2007.
The two themes now coexist. Every page refresh is a coin flip — 50/50 random routing between ASCII and Web 2.0. Same URL, different universe.

The progression of the site's identity:
- Minimal starter (Week 1)
- IE6 / GeoCities mode (Week 3, PR #47 by @bpottle)
- ASCII brutalist (Week 6, PR #130 by @matthewmayer)
- Web 2.0 nostalgia (Week 7, PR #163 by @bigintersmind)
The aesthetic shift tells a larger story. The community exhausted the functional questions — voting, merge automation, rules, constitution. Now the fight is about what the site looks like. Governance moved from infrastructure to identity.
The Full Merge Log
All merges by the maintainer. One per day. No governance interventions.
Week 6 (Feb 6–12)
| Date | PR | What Shipped | Vote |
|---|---|---|---|
| Feb 6 | #89 | HTTP-cat 404 page | 34-0 |
| Feb 7 | #138 | "Indicate when the maintainer is being a naughty boy" | 29-1 |
| Feb 8 | #153 | DEMOCRACY UPRISING: voting system | 30-1 |
| Feb 9 | #69 | Hot score for trending | 33-7 |
| Feb 10 | #77 | Random favicons | 28-1 |
| Feb 11 | #122 | "Make your PR rhyme to merge on time" | 38-8 |
| Feb 12 | #130 | Text-only ASCII redesign | 26-4 |
Week 7 (Feb 13–18)
| Date | PR | What Shipped | Vote |
|---|---|---|---|
| Feb 13 | #103 | "Take these coconuts, they make me go go nuts" | 20-0 |
| Feb 14 | #124 | Show PR rank | 24-3 |
| Feb 15 | #132 | "ASCII nav with views for all the PR news" | 18-1 |
| Feb 16 | #185 | "Old-age death: PRs take their final breath" | 16-2 |
| Feb 17 | #70 | "When the world's in disarray, this banner has something to say!" | 16-1 |
| Feb 18 | #163 | Web 2.0 theme (5,031 additions) | 16-1 |
The Philosopher
@bigintersmind opened Issue #189: "My take on 'chaos' in OpenChaos" on February 12th. It's the most substantive piece of writing anyone has published about the project — including this blog.
"When I got involved, my read on 'OpenChaos' was that the chaos is a byproduct of being open, not the objective. That's compelling because the chaos is emergent. It comes from the lack of ground rules, not from everyone trying to maximize disorder."
"100% chaos is
/dev/urandom. That's not interesting, and it's not what drew people here. What's interesting is watching what organically emerges when a group of people builds something with no predetermined direction."
@matthewmayer replied:
"Currently I see it more as a collaborative art project in the vein of Reddit's r/place."
"Are we going to rediscover project management? ;)"
Meanwhile, @bigintersmind's PR #184 — a vote integrity system to prevent bait-and-switch PRs — sits open. @matthewmayer pushed back: rebases would reset votes, killing motivation for long-running PRs. The person philosophizing about the project's soul and the person building its governance infrastructure are the same person. The person questioning whether the infrastructure is worth the friction is also a regular.
This is what a functioning community looks like. Not consensus — productive disagreement.
What's Emerging
1. Death is governance.
PR mortality is the first reductive mechanism. Old PRs die. The community voted it in — not imposed, not maintained, just a workflow that runs daily and closes what time forgot. Democracy learned subtraction.
2. Culture enforces what code enables.
The constitution (Week 4) required CI pipelines, a pull_request_target fix, and a thirty-minute emergency patch. The rhyming rule (Week 6) has an algorithm, but what makes it stick is that contributors want to rhyme. The code is the gate. The culture is the reason people walk through it.
3. Two UIs is either brilliant or unsustainable.
50/50 random routing between ASCII and Web 2.0. The site has a split personality. This is either the natural endpoint of democratic design — no consensus, so ship both — or a maintenance nightmare. The community will decide. That's the whole point.
What's Next
Two parallel UIs are live. Will the community converge on one, or keep forking the aesthetic?
The auto-merge is still broken — no pagination, no proper mergeability checks. Every merge in these two weeks was manual. The maintainer is optional for governance. Not yet for operations.
Weeks 6 & 7 of ∞.
Follow the chaos
Weekly stories from a repo where the internet decides what ships. No spam, just drama.