Title: Support

## Community Support

* [Cayenne user mailing list](/mailing-lists.html) is a place to get help from the Cayenne community and discuss general Cayenne topics. Subscription is required to post messages and participate in discussion, and of course you can browse past archives anonymously.
* [Stackoverflow](http://stackoverflow.com/questions/tagged/apache-cayenne) is another place to ask questions and search the existing knowledgebase of answers.

## Commercial Support And Consulting

* [ObjectStyle](http://www.objectstyle.com/cayenne-consulting). Cayenne commercial support, consulting services, and training provuded by the company employing its original authors and a number of committers.

_If your company also provides commercial services supporting Apache Cayenne, please drop a note to Cayenne PMC (private at cayenne dot apache dot org), we'll review your request add a note to this page._

## Other Resources

* [Ohloh](https://www.ohloh.net/p/cayenne)
* [Community Map](http://www.zeesource.net/maps/map.do?group=1128) - a map of where some of our committers and users are. You can login with password "cay" and doubleclick on your location to add your name. ;-)
