# How to Contribute Code & Docs

Code Contributions
---
The Usergrid project has adopted a policy for how code is to be contributed
by external contributors, and by those who are committers on the project. 
You can read this policy here [Usergrid Contribution Workflow](https://cwiki.apache.org/confluence/display/usergrid/Usergrid+Contribution+Workflow).

Basically, we use GitHub as our code review system. So you should fork the 
apache/usergrid repo and submit PRs back to the project. Here 
are are step-by-step guide for both both external contributors and committers:

* [External Contributors Guide](https://cwiki.apache.org/confluence/display/usergrid/Usergrid+External+Contributors+Guide)
* [Usergrid Committers Guide](https://cwiki.apache.org/confluence/display/usergrid/Usergrid+Committers+Guide)

Website and Documentation Contributions
---
Documentation is in the /docs directory of our Git repo, written in Markdown format and managed by the Sphinx documentation system. See the README.md there for more information.
