Radical Markets Proposal for Gitcoin Hackathon

I wrote my first ignorant thoughts on Open Source financing here but still gave the Gitcoin hackathon a try because coming up with some more practical suggestions is perhaps better than the idea that Open Source can’t be free AND profitable.

Here it is:

Gitcoin aims to grow open source and I agree with Gitcoin’s assessment that “financial sustainability of Open Source is the largest unsolved problem” to achieve that growth. This problem will be most easily solved at points where money already exists in Open Source and can be better distributed and at points where there are natural incentives for people to pay money into Open Source, but the tools don’t yet exist to make that flow possible. My proposal is to use Gitcoin’s tools to address both of these problems.

Firstly, where is money already present and how can Gitcoin help its distribution? Companies built directly on Open Source make money from their product and they invest in employee salaries to maintain and develop the Open Source project that they’re based on. It would be a change in behaviour for these companies to fund Open Source developers in the mesh network of jobs, but the natural incentive is there to use the system (I know Gitcoin knows this already). However behaviour is hard to change, so these companies still need an incentive to join the network. The existing Gitcoin community can provide this incentive. Imagine 1000 users pay the Open Source project to sign up, each one receives a referral fee in the form of a cut of all bounties in the project for the first N bounties the project brings to the system. These “Project Referrals” incentivise users to bring projects into the platform - if the user thinks they will profit once the project signs up they would be willing to make a donation that the project must be on Gitcoin to collect.

But strengthing the financial sustainability of Open Source requires that money flows into the project over the long term. A strong incentive for money to flow in is when I a user wants a question answered, an issue solved, or a new feature added. This is not currently part of Open Source, but in creating Bounties Gitcoin is already changing that in the project to community direction, Gitcoin should can also offer that in the community to project direction. (These “Community Bounties” would also act as “Project Referrals” in the case that the project has not yet signed up to the Gitcoin platform).

A valid concern with the idea of Community Bounties is that if we make it easy, trustless, and normal to pay to control the Open Source direction then we would corrupt Open Source. A first counter is that maintainers have a right to earn from their work and ideology doesn’t change that. A second is that they have a responsibility to their own project’s future so would reject features that weaken the project and its community.

Yet despite this, funding of features by individuals could cause a negative externality on the project. The whole community is important for the non-financial aspects of open source and the need of the maintainers to earn money may clash with needs of the majority of the community who cannot match the Community Bounties of just a few. If “ownership” of the feature/support direction via Community Bounties can damage the community then this ownership should be taxed. I suggest a simple tax here, not a Radical Markets one. A fixed tax on every Community Bounty that goes to a communal funding pool for the project.

This is where Radical markets become a natural fit. Any user who has contributed any amount of money to the open source project recieves a set of votes to allocate community funds (this gives another incentive to give something to the project). Quadratic voting would be a perfect way to really see what the core community wants without having to rely on the loose metric of thumbs up emojis. QV could be used to allocate these funds on a set of proposals at a set point in the year or the users could use their votes at anytime to allocate their share of the community fund to any feature/issue they care about.

To tie everything I’ve said together. Gitcoin has the tools to make it possible for Open Source users to pay for features/issues. If a project is not yet signed up, every user who creates a referral like issue or donation before the project signs up to Gitcoin will receive a cut of the bounties for a set amount of time after the project signs up to Gitcoin. Gitcoin users are therefore incentivised to bring projects (especially large projects!) into the ecosystem. The Open Source project is incentivised to join to receive extra funding. To ensure Community Bounties don’t corrupt Open Source every single completed Community Bounty is taxed and the funds go to a community funding pool. Only financial supporters (either bounties or donations) are able to vote on how these funds are spent. The funds are allocated via Quadratic Voting so that the most important issues of the entire community can be funded. Let’s get the Gitcoin flywheel spinning!