I made a search for ways to contribute before writing this and I didn't find much. However, I found two very good articles: "How to Contribute to Open Source Without Coding" and "HOWTO Pay for Free Software". These articles explain how to contribute to Open Source. I summarize the information in this post, with a little info added by me.
- Contribute quality: help to make a better project, better looking and with new features
- Submit bug reports
- Suggest new features and options
- Suggest ways to improve the framework (maybe comparing it to similar OS or comercial projects)
- Submit some artwork (icons, backgrounds, logos) to use in the program
- Correct spelling and grammar mistakes in documentation
- Help maintain a web site for an Open Source project
- Contribute documentation: Some Open Source projects have a poor or insufficient documentation
- Help write good documentation
- Translate the documentation (and program text) into another language
- Read existing documentation, follow the examples, and make corrections
- Create diagrams, screen-shots, and graphics for documentation
- Develop spelling and grammar style conventions for documentors
- Build a glossary of technical terms (so non geek people can understand)
- Convert documentation into more useful formats (i.e. DocBook)
- Contribute support: everybody need it at least once. Let programmer do their work while you help other people
- Answer questions on forums, mailing lists or IRC channels
- Contribute to (or start) an online support group
- Help other people learn how to use the program (or programming library)
- Write HOWTOS and post them in related forums or your own blog (you can find more info in "How To Write a Good Howto" post)
- Contribute money: many Open Source projects have a donate button or a shop where to buy related products, but there are other ways to contribute money
- Send a developer, project or company some money
- Buy a Free Software product, or associated products
- Hire Free Software developers
- Contribute hardware
- Contribute bandwidth
- Advertise in their web site if they show ads
- Buy products from companies that support Free Software
- Contribute publicity: If the project gets popular there will be more people wanting to contribute
- Package the application for a particular Linux distro (or other OS)
- Convince people to chose Open Source products when possible
- Write reviews
- Write about new ways of using an Open Source program
- Contribute appreciation: it's an extra way to contribute but may be the most important
- Express your appreciation to developers (through email or forum post)
- Send the programmers post cards
- Give a project or developer a gift (some have wish lists for this)
- Be polite when reporting bugs or asking for new features; developers has no obligation to do it after all
Finally, this list is in no way complete. You can read the mentioned articles for more information or add more tips in the comments.