# Contribute

CherryPy is a community-maintained, open-source project hosted at Github. The project actively encourages aspiring and experienced users to dive in and add their best contribution to the project.

How can you contribute? Well, first search the docs and the project page to see if someone has already reported your issue.

## StackOverflow

On StackOverflow, there are questions tagged with ‘cherrypy’. Answer unanswered questions, add an improved answer, clarify an answer with a comment, or ask more meaningful questions there. Earn reputation and share experience.

## Filing Bug Reports

If you find a bug, an issue where the product doesn’t behave as you expect, you may file a bug report at the project page. Be sure to include what your expectation was, what happened instead, details about your system that might be relevant, and steps that someone else could take to replicate your finding. The more detailed and exact your description, the better one of the volunteers on the project may be able to help resolve your issue.

## Fixing Bugs

CherryPy has a number of open, reported issues. Some of them are complicated and difficult, but others are more straightforward and shovel-ready. Feel free to find one that you think you can solve or introduce yourself and ask for guidance in our gitter channel.

As you work through the issue and commit changes to your clone of the repository, be sure to add issue references to your changes (like “Fixes #999” or “Ref #999”) so your changes link to the issue and vice-versa.

## Writing Pull Requests

To contribute, first read How to write the perfect pull request and file your contribution with the CherryPy Project page.