Open source public fund experiment
Tags: opensource, agilepublicfunds
Published: 2022-01-03 14:18:00

- One year review - [LinkedIn](https://www.linkedin.com/feed/update/urn:li:activity:7022915965306712064/) | [Mastodon](https://mastodon.social/@coni2k/109733093583681242)
- Six months review - [Twitter](https://twitter.com/coni2k/status/1543986591286321152)

---

**Question:** You have 100 money. How would you distribute this amount to the entire open source ecosystem?

## Motivations: Free and Open Source World
For over two decades, I have been working across different industries, helping companies develop proprietary software solutions, which is a long enough time to consider the inefficiencies of closed technologies and siled structures on a large scale.

From an individual company perspective, it is logical for each to keep their solutions to themselves to reduce risk and protect their investment. However, once that behavior becomes a pattern followed by all companies producing technologies, it leads to a bottleneck in utilizing existing advancements and wasted resources in constant reinvention of the wheel. Short-term individual gains cost a collective loss.

This realization made me curious about open source software. I have spent the last few years researching its sustainability, focusing on business and funding models, reading every study or article I can find, and listening to anyone with an opinion.

The future I envision is for us to collectively build most of our technology solutions in the open, whether it be software, hardware, AI, or such. A scenario in which companies and individuals constantly reuse and innovate each other's work. How would minimizing repetitive solutions and combining expensive engineering resources impact our technological progress and societal challenges?

However, it seems there is a missing ingredient in achieving this future: aligning incentives for businesses to keep contributing to the open technology ecosystem.

Since I want to keep this article short and focused on the experiment, here is a summary of my conclusions:
- Open technologies, such as open source software, generate substantial value in our economies and need a constant revenue flow in return.
- Due to coordination issues and lack of contracts, the businesses that consume open technologies cannot return that revenue to the ecosystem, a.k.a. the [Free Rider Problem](https://www.investopedia.com/terms/f/free_rider_problem.asp).

As a solution, we should,
- Recognize open technologies as a new type of digital public good,
- Finance the ecosystem by setting up national or global public funds and generating a direct income to open source solutions based on usage and criticality metrics,
- And aim to establish a financially sustainable digital public goods market in the long run.

### Agile Public Funds
To achieve scalability in this structure, our public funding models must align with the unique characteristics of these new digital goods.

Traditional funding options such as one-time grants may work well for single, long-term projects but are unsuitable for a fast-paced ecosystem like software development.

Instead, we should establish scalable public funds that distribute resources to the entire ecosystem by evaluating each solution's past success through specific metrics.

I aim to study and demonstrate the practicality of an Agile Funding model through this personal experiment.

## Process
I have created a document containing all available open source collectives:
[Open source public fund experiment](
https://docs.google.com/spreadsheets/d/1JsSie6KiIV7DZttjy5CocKY-SZkxOvLVVbOJlM8SIYU/edit?usp=sharing)

[![Open source public fund experiment document screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9b7nwvuy76zwcxjda6v4.png)](https://docs.google.com/spreadsheets/d/1JsSie6KiIV7DZttjy5CocKY-SZkxOvLVVbOJlM8SIYU/edit?usp=sharing)

- With your help, I will randomly choose three open source collectives every month from this list.
- Find each collective's "most popular" repository on GitHub by using the number of Stars. I want to pick a single repository only to keep the process simple.
- Calculate each repo's score and weight using the Criticality Score tool.
- Distribute that month's amount to the projects based on these results through Open Collective, preferably on the first day of each month.

I will keep updating the document in the coming period, so please check it to see the selected projects, scores, weights, and final amounts.

## Monthly Amount
I will tie the monthly amount to the [new](https://mastodon.social/@coni2k) [follower](https://www.linkedin.com/in/serkanholat) [count](https://twitter.com/coni2k) to keep the numbers dynamic and invest a certain amount for each follower. You can check the document to see how I calculate the amount for each month.

## Criticality Score
I will use the [Criticality Score](https://opensource.googleblog.com/2020/12/finding-critical-open-source-projects.html) tool from the Open Source Security Foundation (OpenSSF) as a base, calculate a score for each selected project, and distribute our small fund based on the results.

I plan to improve the contribution algorithm in time. It is important to note we currently miss the "usage" parameter of open-source solutions, which is another crucial parameter we need.

For more information on the [Criticality Tool](https://github.com/ossf/criticality_score), please check its repo.

## Open Collective
[Open Collective](https://opencollective.com/) is a platform that provides legal and financial support for grassroots communities, including for a large number of open source projects. Its transparent structure makes it easy to [verify the payments](https://opencollective.com/coni2k), so I chose to use it as a payment platform.

I retrieve the "accounts" data from their public API and process the rest based on this dataset.

Quick links:
- [Open Collective API](https://docs.opencollective.com/help/contributing/development/api)
- [Helper repository to collect and process the data](https://github.com/coni2k/OpenSourcePublicFundExperiment/)
- [My Criticality Score fork](https://github.com/coni2k/criticality_score)
- [Open source public experiment document](https://docs.google.com/spreadsheets/d/1JsSie6KiIV7DZttjy5CocKY-SZkxOvLVVbOJlM8SIYU/edit?usp=sharing)

Don't hesitate to ask me any questions about the data, tools, or the process.

## Feedback
As usual, please feel free to share your thoughts and questions. I will do my best to improve the process based on your feedback.