FixFlow
The problem we set out to solve
Every day, thousands of open-source projects that power the modern internet go unmaintained. Bugs pile up. Issues sit unanswered. The developers who once poured their hearts into these projects have moved on to new jobs, new responsibilities, new lives. The code remains, used by millions, but the people who understand it best are no longer there.
Meanwhile, talented developers around the world have time and skills to contribute, but no reason to. "Why should I spend my weekend debugging someone else's code for free?" is a fair question. The result is a tragedy of the commons: projects that benefit everyone are maintained by no one.
We built FixFlow because we believe there's a better way.
What if bug fixes paid for themselves?
Imagine a world where open-source maintenance is sustainable. Where a failing test doesn't just create anxiety, it creates opportunity. Where developers can earn real money for solving real problems, and project maintainers don't have to beg for help.
FixFlow makes this possible by automating the entire process:
- Your CI/CD pipeline runs. A test fails.
- Automatically, a bounty is created. Real money, waiting for whoever fixes it.
- A developer somewhere finds the issue, understands the problem, and submits a fix.
- The moment the tests pass, payment is released. No paperwork. No waiting. No trust required.
This isn't just about money. It's about respect. Respect for the time developers invest in understanding complex codebases. Respect for the maintainers who need help but can't afford to hire. Respect for the invisible infrastructure that holds the digital world together.
How it actually works
The technical implementation is straightforward, but what it enables is significant.
When you integrate FixFlow into your repository, it watches your test suite. When tests fail, it creates a GitHub issue documenting the failure and records a bounty in our system. The bounty is denominated in MNEE, a USD-backed stablecoin, so developers know exactly what they'll earn without worrying about cryptocurrency volatility.
Here's where it gets interesting: if nobody claims the bounty right away, it automatically increases over time. A 50 MNEE bounty becomes 60 after 24 hours, 75 after three days, 100 after a week. The longer a bug persists, the more valuable fixing it becomes. This creates a natural market for maintenance work.
When a developer submits a pull request that fixes the failing tests, FixFlow verifies the fix and releases payment directly to their wallet. The entire process, from test failure to payment, can happen without any human intervention.
The technology behind it
FixFlow is built on a few key pieces:
The Bot Server receives webhook events from GitHub and orchestrates the entire bounty lifecycle. It tracks bounties in a PostgreSQL database, ensuring every state change is recorded and auditable.
GitHub App Integration means you don't have to share personal access tokens. When you install FixFlow on your repository, you're granting specific permissions through GitHub's official OAuth flow. The bot operates within those boundaries, nothing more.
MNEE Stablecoin handles payments. Unlike volatile cryptocurrencies, MNEE maintains a stable value pegged to the US dollar. This matters for bounties because developers need to know what they're working for, and maintainers need to budget predictably.
Getting Started
Setting this up takes about ten minutes.
First, create a PostgreSQL database for FixFlow:
createdb FixFlow
Then clone the repository, install dependencies, and configure your environment:
cd fixflow/bot
npm install
cp .env.example .env
# Edit .env with your database connection and GitHub App credentials
# Initialize the database tables
npm run db:init
# Start the server
npm start
Finally, add the FixFlow workflow to your repository. Create .github/workflows/bounty-hunter.yml:
name: Create Bounty on Failure
on:
workflow_run:
workflows: ["Tests"]
types: [completed]
# Required permissions for workflow_run triggered workflows
permissions:
contents: read
issues: write
actions: read
jobs:
create-bounty:
name: Create FixFlow Bounty
runs-on: ubuntu-latest
# Only run if the triggering workflow failed
if: ${{ github.event.workflow_run.conclusion == 'failure' }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ github.event.workflow_run.head_sha }}
- name: Create FixFlow Bounty
uses: tufstraka/fixflow/github-action@main
id: bounty
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
bot_server_url: ${{ secrets.BOUNTY_HUNTER_SERVER_URL }}
bot_api_key: ${{ secrets.BOUNTY_HUNTER_API_KEY }}
bounty_amount: 5
max_bounty: 20
config_file: .fixflow.yml
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws_region: us-east-1
bedrock_model_id: anthropic.claude-3-sonnet-20240229-v1:0
- name: Bounty Creation Summary
if: steps.bounty.outputs.bounty_created == 'true'
run: |
echo "🎯 FixFlow Bounty Created!"
echo "================================"
echo "Issue URL: ${{ steps.bounty.outputs.issue_url }}"
echo "Bounty ID: ${{ steps.bounty.outputs.bounty_id }}"
echo "Issue Number: ${{ steps.bounty.outputs.issue_number }}"
echo ""
echo "Triggered by workflow run: ${{ github.event.workflow_run.html_url }}"
echo ""
echo "A developer can now claim this bounty by:"
echo "1. Fixing the failing test"
echo "2. Submitting a PR with 'MNEE: their_wallet_address'"
echo "3. Getting the PR merged"
That's it. The next time your tests fail, FixFlow will create a bounty automatically.
Configuring Bounty Behavior
The default configuration works well for most projects, but you can customize everything.
Create a .fixflow.yml file in your repository root:
bounty_config:
default_amount: 75
severity_multipliers:
critical: 4.0
high: 2.0
medium: 1.0
low: 0.5
The escalation schedule (how bounties increase over time) follows this pattern:
| Time Elapsed | Increase | Example |
|---|---|---|
| 24 hours | +20% | 60 MNEE |
| 72 hours | +50% | 75 MNEE |
| 1 week | +100% | 100 MNEE |
Bounties cap at 3x their initial value. After that, they need human attention.
Security and Trust
We understand that automated payment systems need to be trustworthy.
All bounty states are recorded in PostgreSQL with full audit trails. Every payment, every state change, every verification is logged. GitHub webhook signatures are verified cryptographically, so nobody can fake events. API endpoints require authentication.
MNEE payments use secure API credentials that never leave your server. The bot operates with the minimum permissions necessary through GitHub's OAuth system.
Who Is This For?
Open-source maintainers who are tired of watching their issue queue grow while their time shrinks. Set up FixFlow once, and let the market handle maintenance.
Companies using open-source who want to give back in a way that scales. Instead of donating money that might sit in a foundation's bank account, fund specific fixes that matter to you.
Developers looking for meaningful work who want to get paid for their skills without the bureaucracy of traditional freelancing. Find a bounty, fix the bug, receive payment.
Organizations running internal platforms who want to incentivize teams to fix broken tests quickly instead of letting them accumulate.
Why We Chose MNEE
Cryptocurrency bounties have been tried before, but volatility killed them. Nobody wants to work for a bounty that might be worth half as much by the time they claim it.
MNEE solves this by being a stablecoin. Its value is pegged to the US dollar. When you see a 50 MNEE bounty, you know it's worth approximately $50. When you receive payment, you're not gambling on market movements.
MNEE Token on Ethereum
FixFlow uses the MNEE ERC-20 token on Ethereum mainnet:
| Property | Value |
|---|---|
| Contract Address | 0x8ccedbAe4916b79da7F3F612EfB2EB93A2bFD6cF |
| Network | Ethereum Mainnet |
| Etherscan | View Token |
This enables:
- Transparent payments: All bounty payouts are visible on-chain
- Wide wallet support: Use MetaMask, Rainbow, or any Ethereum wallet
- DeFi integrations: MNEE can be used across the Ethereum ecosystem
- Escrow contracts: Bounty funds are held securely in smart contracts until earned
The bigger picture
FixFlow started as a hackathon project, but the problem it addresses is real and urgent.
The world runs on open-source software. The websites you visit, the apps on your phone, the infrastructure of banks and hospitals and governments all depend on code that was given away freely by developers who believed in sharing.
That generosity is beautiful, but it's not sustainable when the people doing the work can't pay rent. Something has to change.
We believe programmable money, automated payments triggered by verifiable events, is part of the answer. Not charity, but fair exchange. Not goodwill, but aligned incentives.
FixFlow is a small step in that direction. A tool that makes it easier to maintain open-source software, fairer for the developers who do the work, and more sustainable for the ecosystem we all depend on.
For testing use sepolia network
Log in or sign up for Devpost to join the conversation.