October 21 to 23, 2011

UC Berkeley, California

A culmination of the brightest Drupal minds in the technology hub of the world


MailChimp 2.0: Anatomy of a Drupal module rewrite

MailChimp is a leading and very innovative provider of email marketing services.

I first wrote the MailChimp Drupal module for a side project I was working on towards the end of 2007. It was my first standalone module, and the first one I posted on drupal.org. That module, and every update since, has basically offered the ability to synchronize a site's users with one or more MailChimp lists based on role, in addition to standalone subscription forms. Over the years, the module has grown in popularity along with the MailChimp service itself, and there are now nearly 4500 reported installs. Still modest, but a sizable base which needs to be taken into consideration when releasing updates.

I quickly faced a challenge many contributors encounter as their modules grow in terms of usage and complexity. These challenges include finding the time to maintain and support the module and adding new features when there is no support from a client or employer. In this case, MailChimp came to the rescue and partnered with ThinkShout in late 2010 to sponsor the module. We agreed to maintain and support the current Drupal 6 version and rewrite the module for Drupal 7, for which we recently released a stable version.

This session will discuss the process we went through in converting 4 years of technical debt, accumulated over 2 major Drupal releases, into a flexible and scalable module taking full advantage of many major new features in Drupal 7. In addition, I'll discuss our mutually beneficial relationship with MailChimp and how they are supporting the Drupal community.