<div class="row">

<div class="col-lg-12">

<div class="page-header">

<h1 id="indicators">Apache CloudStack: Getting Involved</h1>

</div>

</div>

</div>

<p>Interested in helping out with Apache CloudStack? Great! We welcome participation from anybody willing to work <a href="http://theapacheway.com/">The Apache Way</a> and make a contribution.</p>

<p>Note that you <strong>do not have to be a developer</strong> in order to contribute to Apache CloudStack. We need folks to help with documentation, translation, promotion, and having someone with snazzy Web design skills would not be a bad thing! Want to give a talk about Apache CloudStack, or even organize a CloudStack event? <a href="/mailing-lists.html">We're all ears – join us on the Marketing list and we'll help you get started</a>!</p>

<p>Developers, of course, are also welcome. See the <a href="/developers.html">Developer Resources</a> page!</p>

<p>If you just want to report a bug, that's easily done in our <a href="https://issues.apache.org/jira/browse/CLOUDSTACK">Jira bug tracking tool</a>.</p>

<h2 id="where-to-ask-for-help">Where To Ask For Help</h2>

<p>Need some help getting started? Feel free to ask on the <a href="/mailing-lists.html">mailing list</a> or find us on one of the following IRC channels on irc.freenode.net:</p>

<ul>
  <li>#cloudstack - General Apache CloudStack conversation and end user support</li>
  <li>#cloudstack-dev - Development discussions</li>
  <li>#cloudstack-meeting - Weekly and ad-hoc meeting room for the Apache CloudStack community</li>
</ul>
