# How to Contribute to SINGA

As with any open source project, there are several ways you can help:

* Join the [mailing list](http://singa.apache.org/en/community/mail-lists.html) and answer other user's questions.
* [Build Singa](http://singa.apache.org/en/docs/installation.html) by yourself.
* Report bugs, feature requests and other issues in the [issue tracking](http://singa.apache.org/en/community/issue-tracking.html) application.
* Check SINGA's [development schedule](http://singa.apache.org/en/develop/schedule.html) and [contribute code](http://singa.apache.org/en/develop/contribute-code.html) by providing patches.
* [Help with the documentation](http://singa.apache.org/en/develop/contribute-docs.html) by updating webpages that are lacking or unclear.
