Last updated February 27, 2014. Created by jbrauer on November 20, 2004.
Edited by dddave, podarok, clemens.tolboom, nevets. Log in to edit this page.

A Drupal site can have three kinds of modules (the 3 Cs):

  1. Core modules that ship with Drupal and are approved by the core developers and the community.
  2. Contributed modules written by the Drupal community and shared under the same GNU Public License (GPL) as Drupal.
  3. Custom modules created by the developer – often for a particular use case specific to the site they're working on.

This section of the Developing for Drupal handbook will help you to write your own modules and to collaborate with the community on shared projects.

Before you begin writing your own modules you should also become familiar with the following sections of the Developing for Drupal handbook:


Collaboration over competition

Module duplication is a growing concern within the Drupal community, which values joining forces on improving one awesome project rather than building several sub-standard ones that overwhelm end users with choices. Please remember to search existing modules and themes first before embarking on your quest, and consider whether your project would be better as a feature addition or patch on an existing project. You could save yourself some time, and earn community karma by helping others!

To see sample code for a wide range of APIs, see the Examples project.

The following pages will guide you step-by-step through the creation of modules.

Looking for support? Visit the Drupal.org forums, or join #drupal-support in IRC.