Money in Open Source

Last week at Scriptconf in Linz, Austria, Evan You, the creator of Vue.js, spoke about his journey to becoming a full-time open source developer. Although most of the things he talked about don’t apply to small open source projects and their contributors, I still found it interesting to gain some insight into the world of highly successful open source projects.

But the one thing that people seemed to talk most about after the talk was how much money Evan makes on Patreon ($12,526 / month at the time of writing). This got me thinking about money in open source and the monetization of open source projects in general.

Capitalism

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.

Winner-Takes-All

The biggest open source projects have the most contributors. And the biggest open source projects, get almost all of the money.

Also, the most fancy projects are much more likely to receive a lot of money and contributions. Almost everybody who writes JavaScript, is using Babel in one way or another, but still, financially, webpack is much more successful than Babel.

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

“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.

Let’s say Johnny starts working on a new JavaScript framework – yes, the world needs another JavaScript framework – with the name of Fancy Pants 3000. Johnny works really hard on it and soon after the first release, Ann and Jimmy are joining and become regular contributors as well. Johnny is still putting in the most hours by far, but Ann and Jimmy are also investing a significant amount of their free time on working on the project.

Fast forward a year of hard work, Fancy Pants 3000 is quickly gaining in popularity and Johnny decides to work full time on the project. Because Fancy Pants 3000 is one of the most popular JavaScript projects on the planet, money starts pouring in.

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.

  1. How to measure the value of a contribution?
  2. What should be compensated? Only code contributions or also bug reports and working on the documentation?
  3. 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.

Conclusion

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.


Do you want to learn how to build advanced Vue.js applications?

Register for the Newsletter of my upcoming book: Advanced Vue.js Application Architecture.


Do you enjoy reading my blog?

You can buy me a ☕️ on Ko-fi!