API & Integration

OpenChaos: When the Internet Votes on Your Pull Requests

Michael Roberts

Michael Roberts

January 12, 2026

12 min read 60 views

OpenChaos is turning GitHub development upside down by letting the internet vote on which pull requests get merged. From 'Rewrite it in Rust' to 'Add dickbutt,' this experiment reveals what happens when you democratize code deployment through API-driven voting systems.

code, coding, computer, data, developing, development, ethernet, html, programmer, programming, screen, software, technology, work, code, code

The Day the Internet Merged Your Code

Tomorrow at 09:00 UTC, something unprecedented happens in software development. A GitHub repository called OpenChaos will merge its first pull request—not because a maintainer approved it, not because it passed rigorous testing, but because 124 people on the internet voted for it. The winning PR? "Calculate +1 and -1 reactions." Coming in second? "Rewrite it in Rust" with 40 votes. Welcome to the wild world of crowdsourced code deployment, where your next production change might be decided by a meme.

I've been watching OpenChaos since it popped up on r/webdev last week, and honestly? I'm equal parts horrified and fascinated. The concept is simple: anyone can submit a PR, the internet votes, and the winner gets merged automatically. No code review. No maintainer approval. Just pure, unfiltered democracy applied to a codebase. As I write this in 2026, we're seeing the logical extreme of what happens when you combine GitHub's API with complete trust in crowd wisdom.

What Exactly Is OpenChaos?

OpenChaos isn't just another GitHub repo—it's a social experiment wrapped in a development workflow. The project describes itself as "a repo where PRs compete for votes and the winner gets merged," but that barely scratches the surface. Think of it as reality TV for developers, where pull requests battle for popularity instead of technical merit.

The mechanics are surprisingly straightforward. Someone submits a pull request through GitHub's standard interface. Then, instead of waiting for a maintainer review, the PR enters a voting period. Users react with +1 or -1 emojis (though the leading PR suggests even that voting mechanism needs improvement). After a set period—23 hours in this first round—the PR with the most positive votes gets automatically merged via GitHub's API.

What makes this particularly interesting is how it exposes the tension between technical decision-making and popular opinion. The current standings tell the whole story: practical improvements like "Calculate +1 and -1 reactions" lead with 124 votes, while meme submissions like "Added dickbutt" and "IE6 mode, welcome back to GeoCities in 1999" trail with 23 votes each. There's even a "Vote to shut it down" PR that the original poster called the "best moment so far."

The API Architecture Behind the Chaos

Let's talk about how this actually works under the hood. OpenChaos isn't magic—it's a clever application of GitHub's webhooks and REST API. When someone creates a pull request, a webhook triggers an automated process that opens voting. The system then monitors reactions on the PR using GitHub's Reactions API endpoint.

Here's where it gets technical. The voting mechanism likely uses GET /repos/{owner}/{repo}/issues/{issue_number}/reactions to tally votes periodically. Since PRs are technically issues in GitHub's API, this endpoint returns all the reactions (👍, 👎, etc.) that users have added. A scheduled job—probably running on GitHub Actions or a similar CI/CD platform—queries this endpoint, calculates the scores, and determines the winner.

At the designated merge time, another API call does the dirty work: PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge. This single endpoint, when authenticated with appropriate permissions, merges the winning PR without any human intervention. The entire system is essentially a voting bot with merge privileges.

What's fascinating is how simple the technical implementation could be. You could probably build a basic version in under 100 lines of code. But the implications? Those are anything but simple.

Why Developers Are Both Terrified and Intrigued

technology, computer, code, javascript, developer, programming, programmer, jquery, css, html, website, technology, technology, computer, code, code

When I first shared OpenChaos with some developer friends, the reactions split neatly into two camps. The traditionalists looked horrified. "This is everything wrong with modern development," one said. "Code quality matters! Architecture matters! You can't just let the internet decide!"

The experimenters, though? They leaned forward with genuine curiosity. "What if this actually surfaces better ideas than traditional review?" another friend wondered. "How many times have you seen a maintainer reject a good PR just because they didn't like the approach? At least this is transparent."

Both perspectives have merit. On one hand, OpenChaos represents the ultimate abdication of technical responsibility. The most popular idea isn't always the best idea—especially in software. Remember the "Rewrite it in Rust" meme that's been floating around developer communities for years? It's currently in second place. If that wins a future round, OpenChaos might literally become a Rust project because of an internet joke.

On the other hand, there's something refreshing about the honesty. Most open source projects already have power dynamics, maintainer biases, and popularity contests—they're just less transparent about it. OpenChaos makes the social layer of software development explicit rather than implicit.

The Practical Applications (Yes, Really)

Before you dismiss OpenChaos as pure chaos, consider where this model might actually make sense. I've been thinking about this for days, and I can see several legitimate use cases.

First, documentation projects. Imagine a docs repository where users vote on which topics need better coverage. The most requested documentation improvements get prioritized automatically. This aligns perfectly with user needs without requiring maintainers to constantly triage requests.

Want music production?

Create your sound on Fiverr

Find Freelancers on Fiverr

Second, community theme or plugin repositories. Projects like user style repositories or browser extension galleries could benefit from democratic curation. Let users vote on which themes or plugins get featured prominently. The community gets what it wants, and maintainers don't have to play favorites.

Third—and this is the most interesting to me—educational codebases. What if computer science students could submit algorithm implementations, and the class votes on the clearest, most educational examples? The winning code gets merged into the course's official examples repository. It turns learning into participation.

The key insight here is that not all code is created equal. Some repositories benefit more from community input than others. The challenge is knowing which is which.

Building Your Own Voting System: A Technical Guide

Want to experiment with this concept yourself? Here's how you could build a basic version. I'll walk you through the key components, but remember: with great API power comes great responsibility.

Start with authentication. You'll need a GitHub Personal Access Token with repo permissions. Store this securely—never hardcode it. Use environment variables or a secrets management service.

Next, set up webhook handling. When a PR is opened, your system should create a voting record. You'll need somewhere to store vote tallies. A simple database table or even a JSON file could work for small projects.

The voting period is crucial. You'll want to schedule a job that runs periodically to check reaction counts. GitHub's API has rate limits, so be mindful. For a small project, checking every 5-10 minutes is probably fine.

Here's a simplified version of what the vote counting might look like in Python:

import requests
from datetime import datetime, timedelta

def count_votes(owner, repo, pr_number):
    # Get reactions for the PR
    url = f"https://api.github.com/repos/{owner}/{repo}/issues/{pr_number}/reactions"
    headers = {"Authorization": f"token {GITHUB_TOKEN}"}
    
    response = requests.get(url, headers=headers)
    reactions = response.json()
    
    # Tally +1 and -1 reactions
    score = 0
    for reaction in reactions:
        if reaction['content'] == '+1':
            score += 1
        elif reaction['content'] == '-1':
            score -= 1
    
    return score

The merge logic comes next. At the appointed time, your system should identify the highest-scoring PR that's still open and merge it. Use GitHub's merge API endpoint with appropriate parameters. Consider requiring passing status checks if you want some quality control.

Finally, don't forget notifications. When a PR wins, comment on it announcing the victory. When a PR loses, maybe offer condolences. The social layer matters as much as the technical one.

The Risks and How to Mitigate Them

coding, programming, css, software development, computer, close up, laptop, data, display, electronics, keyboard, screen, technology, app, program

Let's be real: this approach is risky. I wouldn't use it for production code, mission-critical systems, or anything involving sensitive data. But if you're determined to experiment, here are some safeguards to consider.

First, implement voting qualifications. Maybe only allow votes from users who have contributed to the project before. Or require a minimum GitHub account age. This prevents brand-new accounts from swaying votes.

Second, add automated checks. Even if a PR wins votes, it should still pass basic CI/CD checks. No syntax errors, no failing tests, no security vulnerabilities. GitHub's protected branches feature can help here.

Third, consider a veto mechanism. Give maintainers the ability to override disastrous decisions. Maybe they can't choose the winner, but they can prevent catastrophe. Call it a "constitutional override" for your codebase.

Fourth, limit the scope. Not all files should be votable. Keep critical configuration files, authentication logic, and security-sensitive code off-limits. Only expose non-critical parts of the codebase to voting.

Fifth—and this is important—have a rollback plan. If a terrible PR gets merged, you need to be able to revert quickly. Automated rollback triggers based on error rates or test failures could save you.

Featured Apify Actor

Instagram Comments Scraper

Need to pull Instagram comments for research, analysis, or monitoring? This scraper is built to do exactly that, without...

3.3M runs 21.5K users
Try This Actor

Remember: the goal isn't to eliminate all risk. That would defeat the purpose of an experiment like OpenChaos. The goal is to manage risk while still learning something valuable.

What OpenChaos Teaches Us About Developer Communities

Beyond the technical novelty, OpenChaos reveals something fundamental about how developer communities function. Look at the PR list again: "Calculate +1 and -1 reactions" leads with 124 votes. That's a meta-improvement—a fix to the voting system itself. The community is already self-correcting.

Then there's the humor. "IE6 mode, welcome back to GeoCities in 1999" and "Added dickbutt" both have 23 votes. These aren't serious proposals (probably), but they represent the community's personality. They're inside jokes made manifest in pull request form.

Most telling is the "Vote to shut it down" PR. It didn't make the leaderboard in votes, but it captured everyone's attention. The original poster called it the "best moment so far." Why? Because it acknowledges the absurdity of the entire experiment while participating in it. It's self-aware chaos.

What we're seeing here is the same dynamic that plays out in every developer community, just amplified and made explicit. There are the pragmatists fixing things, the memers having fun, and the meta-commentators observing it all. OpenChaos doesn't create these roles—it just gives them a direct channel to influence the codebase.

The Future of Collaborative Development

Where does this go from here? As we move through 2026, I suspect we'll see more experiments with democratized development workflows. Not necessarily full OpenChaos-style voting, but hybrid approaches that incorporate community input more directly.

Imagine a project where major architectural decisions go to a vote among active contributors. Or a system where users can allocate "development tokens" to prioritize features they care about. Or a repository that automatically implements the most-upvoted issue once a month.

The tools are already here. GitHub's API is incredibly powerful. Between webhooks, reactions, issue tracking, and automation workflows, you could build dozens of variations on the OpenChaos theme. The limiting factor isn't technology—it's our willingness to cede control.

Personally, I think the most interesting applications will be in educational and experimental contexts. Code schools could use voting systems to teach collaboration. Research projects could use them to explore collective problem-solving. Even large companies might experiment with internal "innovation repositories" where employees vote on experimental features.

The key is matching the governance model to the project's goals. OpenChaos works because it embraces its own absurdity. A more serious project would need more serious safeguards. But the core idea—that many minds might make better decisions than one—is worth exploring.

Should You Try This Yourself?

So here's the million-dollar question: should you create your own OpenChaos-style repository?

My advice? It depends entirely on what you want to learn. If you're curious about community dynamics, API automation, or experimental development workflows, then absolutely. Create a throwaway repository, set up the voting system, and see what happens. You'll learn more about GitHub's API in a weekend than most developers learn in a year.

If you're maintaining a serious project that people depend on? Maybe start smaller. Add a voting mechanism for documentation improvements first. Or create a separate "experimental features" repository where community votes determine what gets built next. Dip your toes in before diving headfirst.

Whatever you do, document the experiment. Write about what works and what doesn't. Share your code. The real value of OpenChaos isn't in the merged PRs—it's in what we learn about collaboration, automation, and community governance.

As for me, I'll be watching at 09:00 UTC tomorrow when OpenChaos merges its first voted-in PR. Will it be the sensible "Calculate +1 and -1 reactions"? Or will there be a last-minute surge for "Rewrite it in Rust"? Either way, it's a moment in development history—the day the internet officially became a code reviewer.

And if you're thinking about building something similar, just remember: someone will probably submit a "Vote to shut it down" PR. Embrace it. That's part of the experiment too.

Michael Roberts

Michael Roberts

Former IT consultant now writing in-depth guides on enterprise software and tools.