A guide to building platforms with Drupal
Building the Wedful platform took me about a year of pain, tears, blood, and triumph (not necessarily in that order) and since then I've been contacted by several people going through the same difficulties themselves with putting together their own Drupal platform. Wedful is designed specifically for couples planning their weddings to be able to easily launch a website and manage the details surrounding their weddings online, so we needed to be able to easily manage hundreds (hopefully tens of thousands someday) in a scalable manner. Some of the people I've spoken to have been looking to build niche products for the restaurant industry, hotel industry, and even one with a similar concept to Drupal Gardens.
Over the next several weeks (more likely months, there's a lot to cover ;-)) I'll be writing a series of blog posts on just this topic to help anyone else looking to build a Drupal platform of their own. Something that will hopefully reduce the pain, tears, and blood aspect of the process :). I'll initially cover all of the fundamentals and building blocks of the process, such as best practices, features, drush, make files, etc. and then get into the bigger topics of install profiles, distributions and using Aegir to actually build a vanilla Drupal platform. Following that I'd like to write about some more advanced topics such as passing data from Aegir to your site and not giving up UID 1 when you give away sites to the masses.
This will all be Drupal 7 centric, though I'm certain that much of the information will apply back to Drupal 6 (I'll try and make notes where this isn't the case) and likely forward to Drupal 8. Since I've done only a small amount of work on platforms in D7 this will be a learning process for me too, as I work through building a comprehensive Drupal 7 platform.
Ultimately I plan on focusing on two main use cases. The first would be a wordpress.com style of service for simple brochure websites. The second will be using the same techniques to manage a single site deployment with a scalable dev -> stage-> live workflow. Both use very similar techniques so almost everything I cover will apply to each use case.
I'll start next week with a few posts on building features. If there's anything anyone's interested in learning more about that's inline with this "platform" topic, just post a comment or send me an email and I'll see if I can work it in.