On last weeks Scriptconf, Evan You, the creator of Vue.js, spoke about his journey to full time open source. Although most of the things he was talking about do not apply to small open source projects and their contributors, I still found it interesting to gain some insights in the world of highly successful open source projects.
But the one thing people seemed to talk about most after the talk, was how much money Evan makes on Patreon ($ 12,526 / month as of writing this). This got me thinking about the topic of money in open source and monetization of open source projects in general.
It’s interesting to observe, how the distribution of wealth in open source, works basically the same way as in the “real”, capitalist economy.
In theory, open source seems like an egalitarian system where everybody is free to contribute and to consume whatever they like. But taking a closer look, we can see, that much like in the economic world, the Winner-Takes-All principle is strong in open source too.
The biggest open source projects have the most contributors. And the biggest open source projects, get almost all of the money.
Working on boring, behind the scene (build) tools, is the same amount of work than working on fancy frontend frameworks and oftentimes it’s done by a single person, because those projects don’t attract a lot of contributors.
“Verteilungsgerechtigkeit” is the german word for “fair distribution of wealth” – of course there is a german word for it. In the following (hypothetical) example, we’ll see how an unfair distribution of wealth – much like in the real economy – can have a negative effect on the moral of the contributors of an open source project.
Now the question is, how do we distribute all the money between all the contributors in a fair manner? Most of the time, the creator of the project gets most (or all) of the money. So Johnny takes all of the money and as creator of the project, he receives all of the fame as well.
Ann does not care, she loves to contribute to the project and she thinks Johnny has earned all the money and the praise because of the hard work he’s done so far. Jimmy on the other hand, envies Johnny and he is of the opinion that it’s unfair, that Johnny keeps all the money to himself and he decides to not contribute to Fancy Pants 3000 anymore. And although Fancy Pants 3000 is used by millions, there are not many people willing to contribute themselves, because they expect the well paid, full time maintainer to do all the work by himself – and in the end, donating a few Euros is way easier than contributing code yourself.
How to distribute money in open source?
As we can see, the currently most common model is not optimal, to say the least. But there are several obstacles which make it hard to achieve a fair system for compensating all contributors of an open source project.
- How to measure the value of a contribution?
- What should be compensated? Only code contributions or also bug reports and working on the documentation?
- How much is it worth to come up with the initial idea, should the creator of the project get more money than the rest of the contributors?
Those are some hard nuts to crack and it easy to understand why the current predominant model, of not even trying to share the money fairly between all the contributors, is so popular.
Give and take
In a perfect world, it shouldn’t be necessary to talk about compensating open source developers for their work. In a perfect world, every developer who benefits from open source, would spend some of their spare time or even some of their working hours, contributing to open source in return. But this is not a realistic scenario.
First of all, it would be almost impossible to start a new project without one person or a group of people having an idea and putting in a lot of work to get started initially. Secondly, most people do not contribute to open source at all.
In the first part of the article, we looked at people who put in a lot of work and either get almost nothing in return, or they are lucky enough to be one of the few who make it to the top and earn a decent living. But most people take a lot, and give nothing in return. They neither contribute money nor code.
Is open source fair?
Thinking closer about it, I come to the conclusion, that the distribution of work and money in open source is highly unfair. Some people take a lot and give nothing in return, some give a lot and get nothing, other people also give a lot and divide almost all of the money, which is in open source, between themselves.
On the other hand, a lot of people are not able to give anything. Either because they are still learning or because they have no money or free time to contribute. Thanks to open source, those people have access to all the same resources other developers have access to, for free. That’s great! And this is also the most important difference between the open source “economy” and the capitalist economic system we live in.
As I see it, if you want to get started with open source, don’t do it for the money in the first place. On the one hand, I think it’s cool, that some people are able to earn a decent living by working on open source projects, on the other hand I hope it doesn’t attract too many people for the wrong reasons. But I guess, currently, this is not an issue.
If you’re one of those people, who use open source on a daily basis but don’t contribute anything, in my opinion, thats fine too! But if you feel guilty about it, I recommend you to contribute code instead of money. Not only does it feel better, to contribute code, you also learn new things, and overall I think it’s better for the open source community as a whole, if more people contribute their time instead of money.