CiviCRM Developer Guide

The developer community

Like many open source projects, CiviCRM is shaped, guided, and driven by its community, a far-flung ecosystem of users, developers, and implementers who utilize CiviCRM in many different ways and bring to it a wide array of skills, experiences, and perspectives.  As might be expected of a web-based software project, much of the CiviCRM community's activity occurs online. English is the predominant language for discussion and contributions.

Where do developers hang out?

There are a few places to find developers online.  Top four are:

  • The wiki - http://wiki.civicrm.org
  • The forum - http://forum.civicrm.org/
  • IRC - #civicrm on irc.freenode.net
  • blogs - http://civicrm.org/blog/

The wiki is a gold mine of useful information for developers. What it lacks in coherence, it makes up for in content.  Think of it and treat it as CiviCRM's collective notepad. A place for recipes, new ideas and to do lists to be jotted down without too much attention to getting everything in exactly the right place or completely perfect.

The forum is also a great place for developers. Here you'll find discussions on a range of topics from both developers and from users. It is a great place to find answers to the millions of questions that have already been asked about CiviCRM, and to ask ones that haven't been asked already.

When looking on the wiki and the forum, bear in mind that content does go out of date. If the discussion or article you are looking is dated a while ago, you'd be well advised to check that the there isn't a new approach to the problem.

IRC is a great place to go for any technical questions. Here, with a bit of luck, you'll often find an instant answer to your question or a pointer in the right direction. Definitely go here if you feel like you are banging your head against a wall. Writing your question down in itself can often help you find the answer and if not then perhaps someone else will understand your issue and offer to help. 

If you follow this path and no one answers don't be offended. If no one answers your question  they may be away from their computer or busy. As with all online communities a little bit of patience and understanding goes a long way.

The CiviCRM blog (http://civicrm.org/blog) is another good source of information and discussion. Blog posts are written by both the CiviCRM core team and other community members and cover a wide range of topics.

A fair amount of developer discussion also occurs outside of these official channels. Using your favorite engine to search for CiviCRM will turn up many articles and posts from other folks' websites and blogs. The CiviCRM team is good at keeping an eye out for these posts and often publicize them through Twitter. To keep abreast of the stream of comments, follow @civicrm and find CiviCRM tweets and tag your own tweets with the #civicrm hashtag.

Additionally you may wish to look at the Jira bug reporting system which contains useful notes on issues past and present. JIRA provides issue tracking and project tracking for software development teams to improve code quality and the speed of development. This is where you should log bugs but it can also be a useful guide when starting to investigate problems. 

Log on to Jira, and the the wiki using your civicrm.org login. If you would like your account to be upgraded so you can blog please email info@civicrm.org.

You'll hopefully find these CiviCRM resources to be great sources of help.  Everyone who interacts online is encouraged to give back to the community by responding to questions and requests for help and contributing their own ideas and feedback to the conversations. Simply asking your own questions is also a significant contribution to the community. It's likely that someone else is having the same problems or wondering the same thing, and the responses you solicit help build the community's knowledge base.

Hooking In Offline

Though the online community is both accessible and active, participating in the CiviCRM community offline can be even more rewarding and can help you connect with others in your area who are developing, implementing, and using CiviCRM.

Many cities and regions hold CiviCRM meet-ups where people gather to learn about CiviCRM, share new ideas, developments, and use cases, and meet other folks involved with the community. You can find out more about meet-ups at http://civicrm.org. Some meet-up and local user groups (or LUGs) also maintain discussion boards at http://civicrm.org/groups. Contact the CiviCRM crew if you'd like a discussion board for your own group on the site.

CiviCRM core team and others also conduct developer training in cities around the globe. Check out http://civicrm.org for info about upcoming trainings and contact CiviCRM if you'd like to host meetups or trainings in your own area.