lang | title | description | class | order | image | related | ||
---|---|---|---|---|---|---|---|---|
en |
Getting Paid for Open Source Work |
Sustain your work in open source by getting financial support for your time or your project. |
getting-paid |
7 |
/assets/images/cards/getting-paid.png |
|
Much of the work of open source is voluntary. For example, someone might come across a bug in a project they use and submit a quick fix, or they might enjoy tinkering with an open source project in their spare time.
I was looking for a "hobby" programming project that would keep me occupied during the week around Christmas. (...) I had a home computer, and not much else on my hands. I decided to write an interpreter for the new scripting language I had been thinking about lately. (...) I chose Python as a working title.— @gvanrossum, ["Programming Python"](https://www.python.org/doc/essays/foreword/)
There are many reasons why a person would not want to be paid for their open source work.
- They may already have a full-time job that they love, which enables them to contribute to open source in their spare time.
- They enjoy thinking of open source as a hobby or creative escape and don't want to feel financially obligated to work on their projects.
- They get other benefits from contributing to open source, such as building their reputation or portfolio, learning a new skill, or feeling closer to a community.
— @alloy, ["Why We Don't Accept Donations"](https://blog.cocoapods.org/Why-we-dont-accept-donations/)
For others, especially when contributions are ongoing or require significant time, getting paid to contribute to open source is the only way they can participate, either because the project requires it, or for personal reasons.
Maintaining popular projects can be a significant responsibility, taking up 10 or 20 hours per week instead of a few hours per month.
Ask any open source project maintainer, and they will tell you about the reality of the amount of work that goes into managing a project. You have clients. You are fixing issues for them. You are creating new features. This becomes a real demand on your time.— @ashedryden, ["The Ethics of Unpaid Labor and the OSS Community"](https://www.ashedryden.com/blog/the-ethics-of-unpaid-labor-and-the-oss-community)
Paid work also enables people from different walks of life to make meaningful contributions. Some people cannot afford to spend unpaid time on open source projects, based on their current financial position, debt, or family or other caretaking obligations. That means the world never sees contributions from talented people who can't afford to volunteer their time. This has ethical implications, as @ashedryden has described, since work that is done is biased in favor of those who already have advantages in life, who then gain additional advantages based on their volunteer contributions, while others who are not able to volunteer then don't get later opportunities, which reinforces the current lack of diversity in the open source community.
OSS yields massive benefits to the technology industry, which, in turn, means benefits to all industries. (...) However, if the only people who can focus on it are the lucky and the obsessed, then there's a huge untapped potential.— @isaacs, ["Money and Open Source"](https://medium.com/open-source-life/money-and-open-source-d44a1953749c)
If you're looking for financial support, there are two paths to consider. You can fund your own time as a contributor, or you can find organizational funding for the project.
Today, many people get paid to work part- or full-time on open source. The most common way to get paid for your time is to talk to your employer.
It's easier to make a case for open source work if your employer actually uses the project, but get creative with your pitch. Maybe your employer doesn't use the project, but they use Python, and maintaining a popular Python project help attract new Python developers. Maybe it makes your employer look more developer-friendly in general.
If you don't have an existing open source project you'd like to work on, but would rather that your current work output is open sourced, make a case for your employer to open source some of their internal software.
Many companies are developing open source programs to build their brand and recruit quality talent.
@hueniverse, for example, found that there were financial reasons to justify Walmart's investment in open source. And @jamesgpearce found that Facebook's open source program made a difference in recruiting:
It is closely aligned with our hacker culture, and how our organization was perceived. We asked our employees, "Were you aware of the open source software program at Facebook?". Two-thirds said "Yes". One-half said that the program positively contributed to their decision to work for us. These are not marginal numbers, and I hope, a trend that continues.
If your company goes down this route, it's important to keep the boundaries between community and corporate activity clear. Ultimately, open source sustains itself through contributions from people all over the world, and that's bigger than any one company or location.
Getting paid to work on open source is a rare and wonderful opportunity, but you should not have to give up your passion in the process. Your passion should be why companies want to pay you.— @jessfraz, ["Blurred Lines"](https://blog.jessfraz.com/post/blurred-lines/)
If you can't convince your current employer to prioritize open source work, consider finding a new employer that encourages employee contributions to open source. Look for companies that make their dedication to open source work explicit. For example:
- Some companies, like Netflix or PayPal, have websites that highlight their involvement in open source
- Zalando published its open source contribution policy for employees
Projects that originated at a large company, such as Go or React, will also likely employ people to work on open source.
Depending on your personal circumstances, you can try raising money independently to fund your open source work. For example:
- @Homebrew (and many other maintainers and organizations) fund their work through GitHub Sponsors
- @gaearon funded his work on Redux through a Patreon crowdfunding campaign
- @andrewgodwin funded work on Django schema migrations through a Kickstarter campaign
Finally, sometimes open source projects put bounties on issues that you might consider helping with.
- @ConnorChristie was able to get paid for helping @MARKETProtocol work on their JavaScript library through a bounty on gitcoin.
- @mamiM did Japanese translations for @MetaMask after the issue was funded on Bounties Network.
Beyond arrangements for individual contributors, sometimes projects raise money from companies, individuals, or others to fund ongoing work.
Organizational funding might go towards paying current contributors, covering the costs of running the project (such as hosting fees), or investing in new features or ideas.
As open source's popularity increases, finding funding for projects is still experimental, but there are a few common options available.
Finding sponsorships works well if you have a strong audience or reputation already, or your project is very popular. A few examples of sponsored projects include:
- webpack raises money from companies and individuals through OpenCollective
- Ruby Together, a nonprofit organization that pays for work on bundler, RubyGems, and other Ruby infrastructure projects
Depending on your project, you may be able to charge for commercial support, hosted options, or additional features. A few examples include:
- Sidekiq offers paid versions for additional support
- Travis CI offers paid versions of its product
- Ghost is a nonprofit with a paid managed service
Some popular projects, like npm and Docker, even raise venture capital to support their business growth.
Some software foundations and companies offer grants for open source work. Sometimes, grants can be paid out to individuals without setting up a legal entity for the project.
- Read the Docs received a grant from Mozilla Open Source Support
- OpenMRS work was funded by Stripe's Open-Source Retreat
- Libraries.io received a grant from the Sloan Foundation
- The Python Software Foundation offers grants for Python-related work
For more detailed options and case studies, @nayafia wrote a guide to getting paid for open source work. Different types of funding require different skills, so consider your strengths to figure out which option works best for you.
Whether your project is a new idea, or has been around for years, you should expect to put significant thought into identifying your target funder and making a compelling case.
Whether you're looking to pay for your own time, or fundraise for a project, you should be able to answer the following questions.
Why is this project useful? Why do your users, or potential users, like it so much? Where will it be in five years?
Try to collect evidence that your project matters, whether it's metrics, anecdotes, or testimonials. Are there any companies or noteworthy people using your project right now? If not, has a prominent person endorsed it?
Funders, whether your employer or a grantmaking foundation, are frequently approached with opportunities. Why should they support your project over any other opportunity? How do they personally benefit?
What, exactly, will you accomplish with the proposed funding? Focus on project milestones or outcomes rather than paying a salary.
Does the funder have any requirements around disbursal? For example, you may need to be a nonprofit or have a nonprofit fiscal sponsor. Or perhaps the funds must be given to an individual contractor rather than an organization. These requirements vary between funders, so be sure to do your research beforehand.
For years, we've been the leading resource of website friendly icons, with a community of over 20 million people and been featured on over 70 million websites, including Whitehouse.gov. (...) Version 4 was three years ago. Web tech's changed a lot since then, and frankly, Font Awesome's gotten a bit stale. (...) That's why we're introducing Font Awesome 5. We're modernizing and rewriting the CSS and redesigning every icon from top to bottom. We're talking better design, better consistency, and better readability.— @davegandy, [Font Awesome Kickstarter video](https://www.kickstarter.com/projects/232193852/font-awesome-5)
Raising money isn't easy, whether you're an open source project, a nonprofit, or a software startup, and in most cases require you to get creative. Identifying how you want to get paid, doing your research, and putting yourself in your funder's shoes will help you build a convincing case for funding.