77
Total Votes
49
Upvotes
28
Downvotes
77
Unique PRs
+49-28

Activity

β–Έ
matthewmayerComment#219The maintainer's last veto stands, putting merge power in the people's hands

The maintainer is a naughty boy.

β–Έ
matthewmayerComment#208No more lists for the human eye, just a chatbot powered by AI

Then we need to start a gift shop for the museum to gain enough revenue to fund the AI bill.

β–Έ
matthewmayerComment#213Fix automerge: skip the unmergeable surge, let pending with no count emerge

β–Έ
matthewmayerComment#209Award Board: track your reward hoard

Achievement for creating a PR? As you dont do this on website directly, would need to check the PR list to see if there's an open or closed PR for the logged in user.

β–Έ
matthewmayerComment#189My take on "chaos" in OpenChaos

In that vein, I worked to make adding new themes easier with #204. I didn't do an "internet through time" theme because I thought it might feel quite limiting, but I think it's actually worth re-exploring.

Its a very good solution, https://github.com/skridlevsky/openchaos/pull/208 was WAY easier to implement as i could do it as a seperate theme rather than figure out how it would need to interact with every other theme

β–Έ
matthewmayerComment#203Send Dickbutt and Doom to the virtual museum room

If the museum is set up successfully we would appreciate new donations to the museum via new PRs.

β–Έ
matthewmayerComment#194Post a pic or your PR won't stick

Should also do the check in the automated daily merge action.

β–Έ
matthewmayerComment#204Extra! Extra! The Daily Chaos theme is here to stay, read all about it today!

ControlledChaos component doesn't really fit well. Suggest either restyle it to match or just remove from this theme (not every theme needs to support every component)

β–Έ
matthewmayerComment#125add mad Chaos Points

Any chance of making it fit the ascii theme better?

β–Έ
matthewmayerComment#168Mergeability detection for automerge correction

My assumption is that if the daily action works, @skridlevsky will no longer do manual daily merges.

If the action fails he should manually do the merge following the RULES.

β–Έ
matthewmayerComment#199Add author quote to earn your vote

Suggest also adding an explanation of how to add a pitch to README .

β–Έ
matthewmayerComment#199Add author quote to earn your vote

Doesn't look like there's any risk of injection here

Famous last words

β–Έ
matthewmayerComment#199Add author quote to earn your vote

Should truncate to a length limit, to avoid paragraph-long or site-breaking pitches? Eg PR titles are generally max 70 chars and GitHub has a hard limit of 256.

β–Έ
matthewmayerComment#189My take on "chaos" in OpenChaos

Now that #163 has landed I think an interesting medium term goal which multiple people could work on together could be to try to make the different themes more like reimaginings of how the openchaos website would appear at different times in Internet history.

So they don't necessarily all have to have the same functionality. And we try to avoid anachronisms.

Eg ascii theme might remove emojis and might disguise the discord link behind "View our BBS"

Web2 might add payments https://github.com/skridlevsky/openchaos/pull/198

A future web3 theme might reference blockchain and AI etc.

Still lots of chaos but without needing to style every new component N ways.

β–Έ
matthewmayerComment#120πŸ€– OpenChaos Bot Feedback

Now that #163 has landed I think an interesting medium term goal which multiple people could work on together could be to try to make the different themes more like reimaginings of how the openchaos website would appear at different times.

So they don't necessarily all have to have the same functionality. And we try to avoid anachronisms.

Eg ascii theme might remove emojis and might disguise the discord link behind "View our BBS"

Web2 might add payments https://github.com/skridlevsky/openchaos/pull/198

A future web3 theme might reference blockchain and AI etc.

Still lots of chaos but without needing to style every new component N ways.

β–Έ
matthewmayerComment#198Click to pay, rise today: let your PR lead the way

Personally I think it should only appear on web2. In the ASCII era we didn't try to charge for everything πŸ˜€

β–Έ
matthewmayerComment#185Add old-age death: PRs take their final breath

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 even though there are < 100 PRs currently.

β–Έ
matthewmayerComment#115Upgrade Midi Player β€” make it a GTA radio slayer!

Would it be possible to minimize by default on smaller screens? it's basically unusable on smaller mobile devices as it covers nearly the whole screen (i appreciate Clippy is also pretty bad in this regard)

πŸ’¬
matthewmayerReview comment#194

this and a few other files were likely added by mistake in this PR

πŸ’¬
matthewmayerReview comment#194

this can be refactored to make it more DRY and avoid a combinatorial explosion i.e.

const issues = [];

if (!pr.isMergeable) issues.push("Merge conflicts");
if (!containsRhymes) issues.push("No rhyme");
if (!pr.hasPicture) issues.push("No pic");
if (!pr.checksPassed) issues.push("Checks failed");
β–Έ
matthewmayerComment#70When the world's in disarray, this banner has something to say!.

Would it be possible to change the style to ASCII so it matches the current theme? It sticks out a lot at the moment

image
β–Έ
matthewmayerComment#185Add old-age death: PRs take their final breath

This seems way too aggressive at the moment then. It's pretty normal to need frequent rebasing to resolve conflicts after the daily merge. And agree it's going to be biased towards people whose time zone means they are awake after the daily merge. I would consider some combination of

  • make the dirty multiplier much lower (1.5?)
  • run less frequently (eg weekly cull)
  • cap daily deaths (eg 1 per day, pick randomly from all marked for possible death)
β–Έ
matthewmayerComment#132ASCII nav with views for all the PR news

I appreciate your commitment to the ASCII cause

β–Έ
matthewmayerComment#185Add Old Age workflow: Senectus Ipsa Est Morbus

The Reaper comes with a fatal urge, Memento Mergi β€” remember to merge! But check #122 for one last time: To get this in, your title must rhyme!

β–Έ
matthewmayerComment#187We want more cats 🐱

The OIA Cat is a furry delight, And the meows in the code sound exactly right. But per #122, to merge in time, You must change the title to make it rhyme!

β–Έ
matthewmayerComment#189My take on "chaos" in OpenChaos

Currently I see it more as a collaborative art project in the vein of Reddit's r/place

Collaborative online projects can create great things (Wikipedia) or more commonly a lot of nonsense.

What really separates the successful projects is having a common goal or goals to work towards. That's currently lacking.

β–Έ
matthewmayerComment#153πŸ”₯πŸ’€ DEMOCRACY UPRISING: THE PEOPLE CAN FINALLY VOTE πŸ’€πŸ”₯

Perhaps it should increase by a random integer each time.

β–Έ
matthewmayerComment#153πŸ”₯πŸ’€ DEMOCRACY UPRISING: THE PEOPLE CAN FINALLY VOTE πŸ’€πŸ”₯

I note you can keep on upvoting multiple times and the apparent score gets bigger and bigger. Bug or feature?

β–Έ
matthewmayerComment#130It's been a while, so change to text-only ASCII style

We could also probably do this by just allowing you to view the site with any previous revision, Time Machine style.

β–Έ
matthewmayerComment#103misc: add coconut.jpg

That load-bearing coconut looks mighty fine, But see #122 for a change in design. To get this merged in and avoid the purge Your title must rhyme if you want to merge!

β–Έ
matthewmayerComment#153πŸ”₯πŸ’€ DEMOCRACY UPRISING: THE PEOPLE CAN FINALLY VOTE πŸ’€πŸ”₯

I'm doubtful that's the issue, as if so then removing scope=public_repo would fix it

Is the client_id definitely correct: Iv23litere2a5PqwFTuc

@skridlevsky

β–Έ
matthewmayerComment#184Add vote integrity system to prevent bait-and-switch PRs

I think the tricky thing is that due to the nature of this project, any significant PR requires multiple rebases and tweaks between when its submitted and when it merges to stay up to date with main. For example my https://github.com/skridlevsky/openchaos/pull/130 has needed several fairly complex tweaks to keep the spirit of other PRs alive (e.g. when the Clippy PR landed, I made an ASCII clippy version). If the votes reset every time, I'd lose interest.

β–Έ
matthewmayerComment#122Make your PR rhyme to merge on time

What about existing PRs that don't yet rhyme? I don't see a way to change an existing PRs title and if you close and resumit, there goes your votes.

To fix a title that doesn't chime You needn't commit a voting crime. Just click on Edit and engage Near the top of the PR page Rewrite the words to make them flow Then hit Save and you're good to go!

β–Έ
matthewmayerComment#185Add Old Age workflow: Senectus Ipsa Est Morbus

I don't mind them opening a new PR with the same stuff :) I think that's great, but they would loose al votes ect. and I think it would clean it up in a fun and chaotic way!

i mean, you can reopen a closed PR (provided it hasnt been merged) and keep the existing votes

β–Έ
matthewmayerComment#185Add Old Age workflow: Senectus Ipsa Est Morbus

The problem with these various attempts to auto-close old PRs is that nothing prevents the author from reopening them again. If you really want to prevent old PRs from being merged, you need a rule that excludes them.

β–Έ
matthewmayerComment#184Add vote integrity system to prevent bait-and-switch PRs

PR https://github.com/skridlevsky/openchaos/pull/109 demonstrated that a PR author can collect votes on a harmless diff, then force-push completely different code before the automated merge

um, i pinky-sweared that i would not do that.

β–Έ
matthewmayerComment#109I pinky swear I won't force-push something weird to this branch at 16:59 UTC

Well this is exciting!

image
β–Έ
matthewmayerComment#158feat: add weekly cleanup workflow and codify "Code is Law" rule

Need to edit the PR tire too then

β–Έ
matthewmayerComment#158feat: add weekly cleanup workflow and codify "Code is Law" rule

The auto merging PR is already depending on the implicit rule, I just explicitly described it.

Currently, the upvote of this PR is just 11, so it is enough just to mention the added rule in the title of PR. (Lazy thinking, maybe)

I'd say the opposite is currently true: the human rules override the GitHub actions. So although there's a (broken) automatic weekly merge the maintainer follows the README and merges daily.

Similarly I would expect this PR to add a bullet point in the README that the oldest PR gets closer each week (and if for some reason the action failed the maintainer would do it manually)

β–Έ
matthewmayerComment#158feat: add weekly workflow to close oldest open PR

I don't think we need any additional settings for this to work. It should work as written.

Reviewing the changes, the more notable part is the README addition:

Code is Law: Rules are for human guidance. If a GitHub workflow contradicts written rules, the workflow (code) takes precedence. Always inspect the codebase to understand the actual system behavior.

The real question is whether the community wants a "Code is Law" clause.

I agree, this is a bigger deal than the actual code change, and should be probably split into a different PR as its the opposite of the status quo.

β—ˆ

One-liner to view issues with scores

gh pr list \
  -L 1000 \
  --search "sort:reactions-+1-desc state:open" \
  --json number,title,mergeable,reactionGroups \
  | jq -r '.[] | 
    (.reactionGroups | map(select(.content == "THUMBS_UP"))[0].users.totalCount // 0) as $up | 
    (.reactionGroups | map(select(.content == "THUMBS_DOWN"))[0].users.totalCount // 0) as $down | 
    "\($up - $down)\t#\(.number) | +:\($up)/-:\($down) \(if .mergeable == "CONFLICTING" then "| CONFLICTING" else "" end) | \(.title)"' \
  | sort -nr

While the site is in whiteout mode, if you have https://cli.github.com/ installed you can run this to get a quick view of all open PRs. Output looks something like this:

480	#13 | +:753/-:273 | CONFLICTING | Rewrite it in rust
75	#12 | +:87/-:12 | CONFLICTING | Add 17 languages and a snow overlay
55	#129 | +:55/-:0  | Deprioritize PRs with merge conflicts in ranking
42	#76 | +:43/-:1  | Runs freeDoom
41	#68 | +:44/-:3 | CONFLICTING | Implement asteroids on the homepage
36	#5 | +:47/-:11 | CONFLICTING | added informative video 😁
34	#90 | +:46/-:12  | πŸ’¨ Add fartscroll.js
β–Έ
matthewmayerComment#167πŸ¦€ REWRITE IT IN RUST (for real this time)

But does it go brrr?

β–Έ
matthewmayerComment#130Change to text-only teletype style

Now with ASCII Clippy

image
β–Έ
matthewmayerComment#122Make your PR rhyme to merge on time

To verify a rhyme with a call to the cloud, Is a method too heavy, too slow, and too loud. To burn up a token for "cat" matching "hat," Is killing a fly with a baseball bat.

β–Έ
matthewmayerComment#141IE6BrowserChrome.tsx: open skridlevsky/openchaos GitHub repo

If the maintainer can trivially fix bugs in merged PRs that's boring.

Let the community decide if it's more important to have maintenance fixes or more cat gifs.

β–Έ
matthewmayerComment#47IE6 mode, welcome back to GeoCities in 1999

if I make a PR that reverts this, would people vote it? I kinda hate the aesthetic πŸ˜…

personally i think a straight revert is a bit boring so i have proposed a new theme at #130 which may eventually get merged.

β–Έ
matthewmayerComment#97Add a video demonstration of how PRs are merged

Closing this as I have found new ways to annoy @skridlevsky

◐

Indicate when the maintainer is being a naughty boy.

Added a requirement for maintainers who bypass the voting process.

β–Έ
matthewmayerComment#136Emojis break kayfabe

Website text should consist of only ASCII encodeable characters.

vote for #130 !

Β·
matthewmayercommit_comment19c7106

this doesnt match the merge time in Countdown.tsx

β–Έ
matthewmayerComment#63Add Automatic Merge

If this gets merged as-is I think what will actually happen is:

So actually a fairly harmless outcome. The broken "Rewrite it in Rust" PR actually protects anything bad from happening.

Manual daily merges would still be the responsibility of the maintainer.

◐

Change to text-only teletype style

GUIs are so overrated. If we're going retro, lets go proper retro.

Screenshot 2026-01-22 at 16 54 17
β–Έ
matthewmayerComment#120πŸ€– OpenChaos Bot Feedback

Impact: Medium - This introduces a new, non-essential feature that modifies the site's appearance based on user interaction. While not critical, it adds an interactive element that can potentially be distracting or fun, depending on user preferences.

It doesnt feel like it appreciates the point of the repo ;)

Maybe the prompt could be tweaked to make it assess how chaotic the proposed changes are.

β–Έ
matthewmayerComment#117Every midnight, the system randomly picks 2 emojis from GitHub's reaction set (πŸ‘ πŸ‘Ž πŸ˜„ πŸ˜• ❀️ πŸŽ‰ πŸš€ πŸ‘€) to be upvote/downvote.

For the downvoters, just know that you are not anonymous... (ΰΈ‡'Μ€-'́)ΰΈ‡

there's a 1/8 chance we're actually upvoting you

◐

Make your PR rhyme to merge on time

Enforces a new rule that PRs must contain two rhyming words to be eligible for merge

  • βœ… "Add a cat wearing a hat"
  • βœ… "It's a must, rewrite in Rust"
  • βœ… "the code is a shambles, click if you dare, your upvotes are gambles"
  • ❌ "Fix bug in component"

Demo with altered PR titles:

Screenshot 2026-01-20 at 21 39 58
β–Έ
matthewmayerComment#121Using the one and only Swatch Internet Time

You should also update the README to clarify at what .Beat the daily merge should occur

β–Έ
matthewmayerComment#120πŸ€– OpenChaos Bot Feedback

It would be nice if the bot could edit its comment if further commits are made to the PR after creation.

β–Έ
matthewmayerComment#119Fix merge conflict indicator showing false positives

The current code defaults to believing everything is broken until proven otherwise. This is the only rational way to view modern software engineering.

To fix this is to suggest that we deserve green checkmarks. We do not. Leave the red warning signs as a monument to our sins.

β–Έ
matthewmayerComment#8Add PR health indicators (merge conflicts & CI status)

I'm pleased we had 219 upvotes and a long discussion about vote rigging and no one actually checked the code worked. Now that's chaos.

β–Έ
matthewmayerComment#8Add PR health indicators (merge conflicts & CI status)

There's just the minor issue that this doesn't actually seem to work :D https://openchaos.dev/ β†— is showing conflicts on multiple PRs that Github says dont have conflicts

Screenshot 2026-01-20 at 17 54 02 Screenshot 2026-01-20 at 17 54 17
β–Έ
matthewmayerComment#116Define rules for disclosure and last-minute modifications

I think technically it is very hard to prevent against a bait and switch if an issue has accumulated a large number of upvotes, and then the author pushes something just before the deadline ( as I allude to in #109 ).

Invalidating all upvotes on any commit seems like a draconian solution which would affect genuine PRs. You might have a great idea, and then want to fix a typo in the README.

But I think this should be self-correcting. If a bait-and-switch PR gets merged, then two things "should" happen in a healthy system:

  1. A PR to revert the bad change should gain upvotes
  2. People would likely be suspicious of the author in future and their future PRs would likely get many downvotes
β–Έ
matthewmayerComment#116Define rules for disclosure and last-minute modifications

For #1 for me an open question is whether #1 on the website === winner. I had thought that the winner was decided purely based on the github data. As long as the winner is decided on the github data, then you can do whatever you want on the website side. Manipulation of stats and display is simply affecting perception and exposure. Much like fake news and biased reporting do in democracies.

I agree with this - as I wrote here https://github.com/skridlevsky/openchaos/pull/8#issuecomment-3771674383

I would say that even if the website appears to be artificially boosting a specific PR, the reactions on the Github repo and the the description of the rules in the README are the single source of truth for the actual vote count which the maintainer should use to decide what merges next.

β–Έ
matthewmayerComment#8Add PR health indicators (merge conflicts & CI status)

If rules are against manipulating the voting system, how does it ensure no last minute modifications?

You have to pinky-swear #109

β–Έ
matthewmayerComment#8Add PR health indicators (merge conflicts & CI status)

I would say that even if the website appears to be artificially boosting a specific PR, the reactions on the Github repo and the the description of the rules in the README are the single source of truth for the actual vote count which the maintainer should use to decide what merges next.

◐

I pinky swear I won't force-push something weird to this branch at 16:59 UTC

β–Έ
matthewmayerComment#105Days counter is irrelevant

Yes. We should add a weeks, months and years counter too.

β–Έ
matthewmayerComment#14Added dickbutt

I never thought I'd say this, but @Mad182 you need to resolve the dickbutt merge conflicts urgently to save us from getting #63 merged tomorrow.

β–Έ
matthewmayerComment#106ci: Replace eslint with Biome.js and introduce Lefthook

so you only have to verify whether I lie or not.

Do you lie or not?

β–Έ
matthewmayerComment#106ci: Replace eslint with Biome.js and introduce Lefthook

I have carefully reviewed all 3617 additions and 7603 deletions by hand.

LGTM

image

β–Έ
matthewmayerComment#11Always use light mode in system dark mode, and vice versa

Now IE6-compatible

Screenshot 2026-01-19 at 20 05 19
β–Έ
matthewmayerComment#95On app start, log ASCII art of Guy Fieri to console

inconsequential

how dare you, @openchaos-bot

◐

On app start, log ASCII art of Guy Fieri to console

β–Έ
matthewmayerComment#51Chaos each day

If our benevolent dictator @skridlevsky is expected to merge daily, perhaps he can suggest what time of day he will be awake (given this changes the merge time from 0900 to 2359 UTC also).

β–Έ
matthewmayerComment#47IE6 mode, welcome back to GeoCities in 1999

The emojis look too nice and sharp. They should probably all be replaced by pixellated 16x16 GIFs :)

◐

Dad, can we add random favicons?

Uses a random favicon on each load.

Before:

Screenshot 2026-01-11 at 22 25 48 Screenshot 2026-01-11 at 22 25 48 Screenshot 2026-01-11 at 22 25 48

After:

Screenshot 2026-01-11 at 22 24 05 Screenshot 2026-01-11 at 22 24 12 Screenshot 2026-01-11 at 22 23 58
β–Έ
matthewmayerComment#11Always use light mode in system dark mode, and vice versa

its OpenChaos, not OpenAttemptedMurder

So you're saying we should rapidly switch between light and dark mode regardless of what the user selects in the prompt? Interesting.

My bad, i misread it that you intended to flash rapidly only when they answered "yes".

β–Έ
matthewmayerComment#11Always use light mode in system dark mode, and vice versa

Think this could use an epileptic mode. When the user switches light/dark mode, at random prompt the user as to whether or not they're epileptic and if they say no rapidly switch between light an dark mode for a few seconds. Thoughts?

its OpenChaos, not OpenAttemptedMurder

β–Έ
matthewmayerComment#70feat: Add a world chaos headline banner component.

I was intrigued to see how you were explicitly going to find news about world chaos, only to find this is literally just the NY Times World News feed. Accurate.

β—‘

Always use light mode in system dark mode, and vice versa

Adds a sun/moon toggle in the top-right corner to make the user think they have an influence on this chaotic world. Do they?

alert("No.")

Does not remember your preference in localStorage.

Always respects the opposite of your system preference, ie a white background in system dark mode, and a dark backgrond in system light mode.

Because every project needs more chaos.