Why some people seek financial support
Much of open source work is volunteered. 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.
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.
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.
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.
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.
Funding your own time
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.
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
- Rackspace published its open source contribution policy for employees
Finally, depending on your personal circumstances, you can try raising money independently to fund your open source work. For example:
- @gaearon funded his work on Redux through a Patreon crowdfunding campaign
- @andrewgodwin funded work on Django schema migrations through a Kickstarter campaign
Finding funding for your project
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 into 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.
Raise money for your work through crowdfunding campaigns or sponsorships
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
- Vue is funded through Patreon
- Ruby Together, a nonprofit organization that pays for work on bundler, RubyGems, and other Ruby infrastructure projects
Create a revenue stream
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
Apply for grant funding
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.
Building a case for financial support
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?
Value to funder
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?
Use of funds
What, exactly, will you accomplish with the proposed funding? Focus on project milestones or outcomes rather than paying a salary.
How you’ll receive the funds
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.
Experiment and don’t give up
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.