Policy DevCenter    
 Published on Policy DevCenter (http://www.oreillynet.com/policy/)
 See this if you're having trouble printing code examples


How to Build a Nonprofit for Your Community

by David Boswell, coauthor of Creating Applications with Mozilla

As the open source movement matures, the organizations that support it are growing up, as well. Many projects, including Apache and Mozilla, have already created nonprofit organizations that support their communities. Other open source projects are also considering ways to establish nonprofits.

This article details how mozdev.org built a nonprofit organization and shows you how to do the same for your community. I'll cover fundraising, obtaining legal advice, staffing, and more. The mozdev site provides free project hosting to Mozilla application and extension developers. It was incorporated as a nonprofit in the summer of 2004.

Please note that the specifics about incorporation and tax exemption apply only to organizations in the United States, but the rest of the information in this article should be useful to groups setting up formal organizations anywhere in the world.

Raising Money

The first thing you'll want to do is to ask for donations. Setting up a donation button using PayPal, or another online transaction service, is the quickest way to start accepting contributions. You can accept money as an individual, and you don't need to have an official organization set up yet; just be aware that the donations you receive at this point won't be tax deductible for you or the donor.

Raising some money up front will make the next steps easier, since there are fees associated with incorporating and receiving tax-exempt status. Depending on how your community is set up, you may also need funds to cover bills associated with hardware purchases, hosting fees, marketing efforts, or even employee costs. Once your organization becomes more established, you can work on a more detailed fundraising plan, but a donation button should do fine for now.

Related Reading

Creating Applications with Mozilla
By David Boswell, Brian King, Ian Oeschger, Pete Collins, Eric Murphy

When mozdev.org was launched in 2000, both the server and hosting costs were provided by CollabNet. By 2003, we had purchased a new server and had moved to a professional colocation facility and we needed to start asking for donations to cover these new costs. In our experience, community members are very generous and more than willing to help support the open source projects they are involved with.

Filling Out Paperwork

Before I started volunteering for mozdev.org, I had assumed that all nonprofit organizations had tax-exempt status. It turns out that these are two separate things and it is possible to incorporate successfully and not receive an exemption. The good news is that other open source communities have successfully become tax-exempt nonprofit organizations, so we know the process is doable.

Incorporating as a nonprofit is the first step. This is done at the state level, and you just need to file articles of incorporation with the correct agency. For instance, in New York, the DOS-1511 form is posted on the Department of State site and requires a small filing fee when submitted.

When you file your articles of incorporation you will need to choose a name. Many established open source organizations have used the word Foundation as part of their official names. In the nonprofit world, this word has a specific definition; it refers to an organization supported by an endowment that distributes grants to other organizations (for instance, the Bill & Melinda Gates Foundation). There is nothing stopping you from using Foundation in the name of your nonprofit, but it may cause some confusion if you try to raise money from someone who thinks that you are an organization that exists to give money away. Considering this, we named our nonprofit the Mozdev Community Organization.

Receiving a tax exemption is the next step after incorporation and is a little more involved. This is done at the federal level, and involves convincing the IRS that your organization deserves the right to not give the government part of the money you raise. The IRS site has a full list of requirements for receiving an exemption, but the short answer is that they are looking for an organization that provides a free service to a specific community of people. In IRS terminology, a tax-exempt organization is called an organization with 501(c)(3) status.

Although open source communities are not traditional nonprofits that are obviously doing charitable work, such as a homeless shelter or a soup kitchen, a good case can be made for why you deserve an exemption. One point is that open source projects do provide a free service to a defined community of people. Open source software also helps people in need by providing low-cost access to computers and the internet.

Getting Help

Although it is possible to take care of these forms yourself, odds are you probably would rather be working on your project than completing paperwork. It is worth trying to find people in the legal community to help prepare the required documents because they will be more aware of the nuances of the process if they've done this before, and they also might be able to provide additional help in the future.

There are lawyers who provide pro bono services to nonprofits, and there are also organizations that will help you find the right free legal assistance for your needs. The Foundation Center site has information on finding pro bono help that can get you started. Be aware that this process will take some persistence, since many lawyers won't be familiar with open source software and won't be able to help.

For mozdev, we contacted the New York Lawyers for the Public Interest and they put us in touch with two lawyers who specialize in intellectual property law and understood exactly what we were trying to do. It did take us several tries, though, before we were connected with someone who didn't give us a blank stare when we explained what our organization did.

The lawyers who helped us were also generous enough with their time to join our board of directors. Setting up a board is something you do when you incorporate, and this is the opportunity to bring in people who will help you run your new organization. Finding directors with legal, accounting, and fundraising skills will keep things running smoothly and they will take on some of the responsibilities so you are free to work on your project.

Developing a Fundraising Strategy

Members of your community will be willing to donate money before you have an organization set up and before their contributions are deductible. It will be difficult, though, to raise money beyond this core group until after you have incorporated and received tax-exempt status. Once you do get to this point, it is time to develop a fundraising plan.

In our experience with mozdev.org, the community has generously donated enough money to pay for all of our ongoing hosting costs. Any bigger plans that we have, such as hiring permanent staff to help run the organization, will require that we look for additional contributions from other sources.

One way to raise more money is to sell something. Nonprofits are not prohibited from selling items as long as they are not selling the service that they were set up to provide for free. In our case, we were set up to provide free project hosting, so we can't sell that, but we can sell T-shirts or hold a bake sale.

Another way to bring in more donations is to ask corporations to contribute to your organization. Companies generally allocate some amount of their budget for philanthropic purposes and are willing to give to a good cause. For example, it seems like Google is in the process of setting up a foundation to use some of its money for charitable purposes.

Grants are also used by nonprofits to raise money. We have not sought any grants for mozdev and I'm not aware of any other open source community that has, but this is still a possibility. Recently, I saw a discussion on Slashdot about grants for open source projects that could be a good starting point for researching this option.

Fundraising Issues

On the mozdev site, we have a Supporters page, where we list people and companies who have donated more than a certain amount. We found that some people were making donations in order to get their link on our site to help improve their search rankings. We started to rethink how our Supporters page worked after a strip club tried to make a donation. We turned that money down, since we didn't think it would be appropriate to have that link on our page.

We also set up a partnership with a company that made a generous contribution in exchange for having its logo placed on our home page. This is not strictly a donation, since the company received something in exchange for their contribution. There is nothing wrong with this, but you want to be careful how far you take this practice.

Take, for example, the recent issue with the WordPress community, where the site was placing hidden advertising on some pages to raise money. On one hand, this practice allowed the site to keep operating, but on the other hand, this could alienate current community members and make it difficult to raise funds in other ways in the future.

Turning Volunteers into Staff

I imagine that a goal for many open source developers would be to have their hobby turn into a job. Once your organization is established and is raising money, you can start thinking about hiring people or even hiring yourself. Going from an informal all-volunteer group of developers to a formal organization with a staff of employees is a big transition, however.

At mozdev, we haven't raised enough money to hire anyone full-time, but we do have enough money to start paying people on a part-time basis. Our biggest challenge so far has been deciding how to determine a fair compensation system. We've considered three options: hourly rates, a bonus system, and bounties.

Hourly rates are fair since they pay people in proportion to the amount of time they spend working. For a new organization, though, there may be too much administrative overhead to make this work well. A timesheet system is needed, and the process of entering and tracking hours can be time-consuming for everyone involved.

Bonuses are easier to deal with, since you can take any money that is left after all the bills are paid and then distribute that to your staff. There is little administrative overhead in this system, but it is not a fair way to reimburse people if everyone didn't work a roughly equal amount of time during that pay period.

Bounties are a good way to make sure the money you spend on employees is going directly to your most important needs. In this system, you assign a dollar value to a specific bug or issue that needs to be dealt with. Whoever successfully completes this task gets the money. The big flaw in this system is that it doesn't compensate for time spent on necessary work that hasn't been assigned a bounty value.

Putting It All Together

Setting up a nonprofit for your community involves some work, but it's worth it. When you are done with the process, you will have an organization that will help you grow and protect the project that you and the rest of your community have put so much time and effort into.

This outline just scratches the surface of what's involved with setting up a nonprofit and what benefits it will bring you. I hope this will serve as a starting point as well as a useful reference to those of you going through this process, or who are thinking about setting up a nonprofit for your own community.

David Boswell has been involved in the Mozilla community for more than six years. He is also a coauthor of Creating Applications with Mozilla and helped launch mozdev.org.


Return to the Policy DevCenter.

Copyright © 2009 O'Reilly Media, Inc.