So you want to be an open source contributor?

I’m sometimes asked by people how they can participate in open source projects. Alternatively, I’m asked for support money by people who have very specific open source projects they want to do, but that’s another blog entry.

If you have coding skills and want to use them to develop open source software you have several options. You can start a new project by yourself or with some friends, or you can join an existing project. The advantage of the former is that you get to make the rules and there is a pretty good (i.e., 100%) chance that your code will be accepted. Not all established open source projects welcome new people without some vetting and your code is certainly going to be subject to significant review. If you are new to operating systems, it’s not likely that your code will be put in the Linux kernel tomorrow, for example.

In addition to coders, many open source projects employ the skills of designers, testers, writers, and translators. If you are interested in these aspects, poke around the links I’ve given you below to see if those projects have needs for those kinds of participants.

Also remember that since some projects have architectures for extensions or plugins, you can work in open source without touching the primary application. Examples of those include FireFox, Drupal, and WordPress. You could even do an open source add-on for the non-open source World of Warcraft and some other games. I did a blog entry on this kind of participation last July, with the really interesting stuff being in the comments.

You can host your own open source project on SourceForge or Google Code. Another way to get involved is to look around those sites for projects that interest you and then contact the projects owners to see if they are looking for help.

Here are some links to information about how you can get involved in some of the popular free and open source projects. My linking to these sites does not mean that I particularly endorse any of the projects.

Feel free to suggest other projects in the comments and please include links. I’ll update the list above.


  1. Good hints for starting.

    One thing I miss in your list though: staffing booths at exhibitions. It’s important for many projects and a nice thing to do for beginners and non-coders since newbies learn a lot from the more experienced contributors. Advanced user skills and a good understanding of the project (from reading blogs for example) usually is enough.

    In a next step, giving presentations about the project help a lot to grow the user base and eventually lead to new contributors. Many projects are happy about this kind of support.

  2. Linux documentation Project? IMHO just as important as good code. New users need the docs as much as the working code?

    HTH DaveP

  3. needs writers, editors, reviewers, and translators for its user guides and other user-oriented documentation (how-to’s, tutorials, etc.). Check the Documentation Project ( and OOoAuthors (

  4. Hi Bob,

    I am glad you talk about contributions other than code. Many people seems to get fixated on the developers. Here is a longer list of the kinds of contributions you can make.

    Use Cases – use open source software in new domains, see if it works or not.
    Peer Review – review specs, designs, architectures, and code an provide freedback
    Testing – provide any kind of testing assistance
    Documentation – create documentation where it is missing or lacking
    Translations – translate not only documentation but also web sites, wikis etc
    Features – create new features or plugins
    Forum Help – Learn how to use an open source package and then help out people who are new to the project
    Bug Fixes – take bug cases from the case tracking tool and fix them
    Scalability – perform soak testing, load testing etc and publish the results
    Configuration Diversity – test and use the software in less common configurations
    Quotes & News – let people know that you are using the software and that it works for you.


  5. The point about plugins can’t be stressed enough. Unless the project is very small it’s really hard to get over the learning curve to get to the point where you can start doing something productive. That can be discouraging to start with.

    If you find a project with a good plugin system you can start there. Firefox, Thunderbird have a pretty flexible system, and xul/javascript is quite interesting. In the PHP Web space both Mediawiki and WordPress have quite sane apis for plugins. If you end up in Rails land it’s all about the plugins.

    Also, get familiar with git. Once you get over the hurdle of using git, you now have a tool that makes it much easier to work on opensource projects as an outsider to the core team. It’s an invaluable tool in your toolchest.

Comments are closed