Financing Open Source Software Development with DAO Governance Tokens
23 Dec 2021
Reading time ~7 minutes
One of the biggest problems in open source software development today is that it’s that the majority of open source software is written by developers as side projects on their nights and weekends. Out of the mix of developers who do produce software in their nights and weekends only a small sliver of them receive any funding for their work. Of the small portion of developers who do get sponsored, an even smaller percentage are actually able to make enough money to fully cover their expenses in life. So clearly we haven’t developed a sustainable solution to finance open source software development. So what are the main ways that open source software development gets funded? The two primary methods that I see open source software being developed with is via organizational sponsors or altruistic funding. Let’s break these down a bit more to gain a better understanding of them.
The most common and well understood method today that open source projects are funded is via for-profit corporations sponsoring development of projects by way of allowing their full time staff to work on these large projects. Some great examples of this are projects like Kubernetes, Linux kernel, React Framework, Hashicorp Vault, and Rust programming language. In all of these examples, these projects are either directly managed via a team of developers at large organizations (think React Framework being maintained by Facebook), managed by a startup who opensources their core product with additional sticky features (think Hashicorp Vault), managed by a foundation with a combination of many different developers from many different organizations (think Kubernetes and the Linux kernel these days and now Rust Lang), and finally there’s hybrid projects which have transitioned from one category to another over time (Think Rust language being started at Mozilla and then transferred to a foundation). With all of these models one thing is clear. Developers have a day job that pays them and they’re essentially employed to produce open source software. The reasons why many companys are funding developers to produce open source development is so scattered that I’m sure I couldn’t name them all. However, one thing in my experience is clear and that is that most companies have some form of strategic decision at play that leads them down the path of making their source code open. Whether that strategy be as simple as they want to allow others to solve a problem they’ve had to solve, they want to leverage open source as a sales channel, or they’re simply looking for free software developement contributions from developers who like the project. Whatever, the reason the company has to justify it’s contributions it’s pretty clear that this is a major avenue for contribution to the OSS community.
The second most common method of development which has been around for awhile, but has only recently become a more legitimate model of funding has been through altruistic funding. What I mean by this method is that people, organizations, or other such entities will “sponsor” a developer who’s released an open source project that they believe should continue to be worked on. This most commonly was done via Paypal or Buy me a coffee in the past with Patreon and Github Sponsors getting involved more recently as well. This model of funding is becoming more common of a way to fund a small project which is used substantially by much larger projects or companies who want some certainty that the project will continue to be maintained in the future. It’s shown some promise for becoming a sustainable source of funding for developers who are looking for a way to monetize their projects without a massive overhead that comes with starting a company. However, while this method does leave the original maintainer in control of their project to continue to bring their vision to reality, it often times does not provide a sustainable and large enough income for most maintainers to leverage this avenue full time.
So what’s up with this DAO governance token idea then?
To put it simply the concept of leveraging a DAO token to manage an open source project is still just that - an idea. So why do I considered it worth exploring? Today, in the Defi space we see many different projects that are being built completely open source and doing so with often times very complex tokenomics schemes just to sustainably fund the development of the protocol. With each new project the developers need to find a new way to integrate a token into the system in order to fund their time and effort that they’d like to put into growing the project. However, what if we could re-shape the purpose of tokens to make it actually what the tokens are about which is funding the development of the project rather than trying to create a new gift card scheme for each new project?
The way I imagine this would work is via a DAO goverance token which effectively represents a share of the project. Each token that’s already been minted would allow for voting on proposals for to accept or reject new changes to the project in the same way that DAOs allow for decentralized goverance of treasuries today. However these proposals all come in the form of a pull request to modify the code allowing for developers to directly receive value for the proposed changes their making. Where things get interesting is that along with the new pull request comes a proposal set forth by the contributor who would assign a value they believe it’s worth represented in the value of new tokens which would be approved if the pull request is approved. This effectively would be diluting the value of the current tokens in exchange for work they’ve done to improve the project leading to an interesting trade in value. Current majority stake holders give up a small portion of their funds in exchange for receiving new contributions if and only if they believe the dilution is acceptable.
So how does this make developers money?
As a project grows and is utilized by more and more developers it will create an economic incentive for people and companies who wish to steer a project to buy up the currently available tokens or contribute to the project in order to collect these tokens. This value would be tradeable in terms of real world value either for money to buy food or for additional utility in upstream or downstream projects. The value of the tokens is only as valuable as the number of people who are utilizing the project and believe they need the ability to affect the direction of the project or make sure it remains maintained. Meaning for projects like Kubernetes where there’s numerous companies who’s core infrastructure built on top of this project they want to make sure they’re features are getting added and supported. Just like they do today in the Cloud Native Computing Foundation which sees many people from many different organizations and backgrounds contributing to the project now.
Where this becomes interesting is in the economic decision making that happens as a market is formed around maintainership of projects. With many of the good things that will be introduced like being able to have more full-time freelance software developers available I’m sure there will be interesting economic issues that will be introduced. It’s my belief though that this controversy will be worked out in different ways through different principles that projects will choose. As an example today one of the most obvious problems in large projects today such as when SushiSwap forked Uniswap and started taking sushiswap in a different direction. However, the legitimacy of the fork will help to form interesting economic behaviors on whether or not the value of the fork will go up like SushiSwap has shown by adding new and interesting contributions to their fork, or whether it will go down like many of the random clone projects that often lead to scams do.
I believe that if the mechanics of the maintainership role are established correctly then it may even be possible to create some interesting dynamics to reduce forking by leveraging the market dynamics. As an example if the DAO fork was required to mint the same number of tokens in the new project as the original project and make them assigned to the same maintainers then the original maintainers of the project could leverage their newly minted tokens in the new project in order to outright reject all proposals in the fork and slow down the momentum of the project. I tend to think this may be bad for innovation, but it’s an interesting example of how leveraging markets to make maintainership decisions can be utilized to build sustainability in open source development given that maintainership status of projects has legitimate value that if broken up and governed properly could be leveraged to reshape how software development is funded.