Money and Open Source Communities
Ever since we announced our new service to enable open source communities to collect money from backers and sponsors, the same question came up again and again: why would an open source project need money?
It’s a fair question to ask. After all, so many open source projects have been thriving without money. Not to mention that adding money into a volunteer based community can have a negative effect.
At the moment, we have 35 open source projects representing 12k+ contributors. We are still learning with our community but this is what we’ve learned so far.
Don’t pay for what you could get for free
This is an important one that is counter intuitive for most people (for ourselves as well!). While paying for contributions may accelerate the development of certain features in the short term (get things done), in the long run it will have a negative impact on the community.
Contributors will start wondering: why should I contribute for free if others got paid? Why should I continue to contribute if I used to be paid for this and now I’m not? Before contributing this feature or solving that bug that I care about, I should check with the maintainers to see if I could get paid for this.
All of those questions will start happening in the head of the existing and potential new contributors. This is adding friction in the process of contributing. That’s the last thing that you want to do.
Invest in the context
If paying for contributions doesn’t increase them in the long term, what will?
Turns out there are a lot of things that can be done to foster contributions. You can make it easier to submit pull requests, make sure that they get reviewed in a timely fashion with proper comments, create tutorials on how to make your first pull request, triage issues and document them properly, etc. All of those tasks are not directly contributing to the code. But they create a safe and welcoming space to get more contributions. Like house cleaning it’s a necessary work that requires a regular commitment. It benefits the entire community, not only the subset of people who care about a given bug or feature. And that’s why it’s ok to pay someone to do all this work.
I like to use the analogy of a public place. It’s not the role of the city to pay artists to come contribute and create activity. Their role is to invest in the context. They need to make sure that there is a clean and safe space with a lot of passage and where artists can come. Each with their own personal interests. Some will come perform for free to make a name for themselves, others will be paid by sponsors, etc.
Communities are stronger when they have the opportunity to meet AFK (Away From Keyboard). Use the money to cover travel expenses for your top contributors. Invite your community to create local meetups. You can cover the catering (pizzas/drinks) in full or in part. You can also send them swag.
At the end of the year, send post cards, stickers or t-shirts to all your contributors as a sign of gesture. This will go very long way. Keep it simple though. For example you could send a post card to all contributors, add a pins and/or stickers to the more regular ones, and a t-shirt or a gift card to biggest contributors. It’s about being grateful that all those people spent time of their life to contribute to your project. Acknowledge that.
“I love it because it becomes a physical representation of an abstract bit of community work. Eventually you forget about a few PRs, but having something there on your desk so you and others can talk about it is really gratifying. I found out that a few people had them framed this year.” — orta.
This one is the easiest category of expenses to justify. You may need to pay for a hosting provider, or if your open source project is hardware related, you may actually need a couple of devices for testing. Covering travel expenses for one of your top contributors (or yourself) to give a talk at a conference could also fall into this category as this is about building the community.
Introducing money in a volunteer based community is a double edge sword. Done badly, it can harm it. But done mindfully, it can really help the community thrive and be self sustainable.
This is still a work in progress. We are eager to work with more open source communities to identify best practices and learn together. If you are a core maintainer of such community, please reach out. You can apply to create an open collective for your community here: https://opencollective.com/opensource/apply