I've always been a drush fanboy. (Yes, always. I'm actually only six years old.) Lately, though, I've honed in on one favorite feature: drush makefiles. A drush makefile is an elegant plain text file that both describes your Drupal site or platform (providing excellent documentation of your work), and can also build what it describes.
Makefiles can help keep details straight when you build multiple Drupal sites on one platform. Especially if you organize these details into separate, modular files. With modular files, you can even reuse the same basic module list across multiple platforms, as in this example.
Imagine both documenting your Drupal sites and managing future upgrades with a few clean text files. Then go do it.
You may not realize this, but Drupal dies. Often.
Well, not exactly. Every few years, a particular major version of Drupal dies. Drupal 4, for instance. Long gone. Drupal 5? Dearly departed. Drupal 6 isn't long for this world, and even Drupal 7, that young buck, is already spotting gray hairs.
Drupal lives on, of course, with each splendorous new major version. But your website doesn't run on "Drupal". It runs on Drupal 6, or Drupal 7, or (for the morbidly eager) the currently unstable, not-yet-released Drupal 8.x-dev.
Whenever a particular major version dies, you need to upgrade your site to the next major version.
So how do you know when the Drupal devs will stop supporting your current major version? The schedule is surprisingly simple.
The good news? Both projects are stable, popular, and in active development.
The bad news? You do have to choose one. And they have important differences. And you don't want to have to switch once you start building.
But don't panic. Find out more about how to choose between Ubercart and Drupal Commerce.
You've procrastinated long enough. It's time to start that site you keep talking about.
You don't need to hire a developer. You don't even need to shop for a web host. You just need to take five minutes, and go sign up for a free site at WordPress.com.
"But wait", you cry. "I don't want a blog! I want a CMS, with articles and sections and an About Us page and ... well ..."
I thought so. You're not quite sure what you want, are you? You're only sure that you don't want a mere "blog".
If so, a free WordPress.com site could be the perfect place to start. Unlike so many other "free" sites out there, WordPress.com won't lock up your content. If you outgrow WordPress.com, you can export your content to more fully featured host.
But if you're not sure what you want yet, and you've never really used a CMS before, get yourself a free WordPress.com site and start tinkering.
Trying to decide between a WordPress Network and multiple Drupal Sites on Aegir? Here's a good place to start: the underlying mental models. The projects have very different approaches to how you maintain code and administer your sites.
There's no such thing as a perfect WordPress theme. No matter how incredible, there's always some tiny tweak you find yourself craving.
Sure, there's a world of plugins. But they're for adding new features, not changing the heading size or spacing the list items.
You could make a whole new theme from scratch. You could also buy a whole new house, when all you want is to repaint the kitchen.
Instead, start with the theme you have, the almost-perfect theme, and consider it a "parent theme". Then, make a new "child theme" based on this parent theme. You can make a new child theme in about five minutes.
But child themes have more to offer than CSS tweaks. You can also add little customizations that are too small to bother with a plugin.
For instance, say you'd like to tweak your WordPress blog for private viewing. A child theme is the perfect place to slip those code snippets.
A WordPress network also lets you manage these sites. You won't get the same power you do managing Drupal sites on Aegir, but on the other hand, unlike Aegir, a WordPress network lets you blaze through admin tasks like comment moderation on all your sites.
As always, choose plugins carefully. Consider seeing which plugins one WordPress hosting company won't allow.
But how do you make your first platforms? Easy: base them on your existing sites. The secret is the drush makefile, a stunning little plain-text file that can help you spin up an upgraded platform in minutes.
A drush makefile is a list of all the code you need to download to build your Drupal platform. Everything.
When module upgrades come out, you simply use that makefile to generate a new platform. Drush reads the list, and automatically downloads the current, upgraded version of each module and theme.
Of course, when you actually
migrate each site to the platform with upgraded modules,
you should use the Aegir
Compare platforms tool to confirm that
all the modules you'll need are in place and are the correct versions.
And there are times when you won't want to upgrade a module. For instance, maybe you got suckered into using a tiny module with a big dependency and the tiny module hasn't kept up (especially if that big dependency got popular way too fast).
But that's the beauty of the makefile. If you need to freeze a module at a particular version, you can specify the version for that module in the makefile. The new platform will get upgraded versions of everything else, but not the module you specified.
Drush makefiles will transform how you manage your Drupal sites. Platforms are amazing, but you're not really going to enjoy them until you're making them effortlessly with the elegant makefile.
Upgrades. They just never stop.
Sure, I'm as grateful as the next guy to have thousands of world-class Drupal developers straining to keep my Drupal sites secure. For free.
But I still hate upgrades. For every cool new feature, it feels like there's ten or twenty ways that things can break.
Now for the good news. The tools are out there to manage this stress. Enter Drupal platforms. When you use the Aegir way of thinking about your Drupal site, you find a radical new way to upgrade your site.
First, you organize all your modules into a platform. Then, instead of upgrading modules on your current platform, you make a new platform with the upgraded modules, then carefully migrate your site to the new platform.
Instead of blindly slinging code, you're using Aegir to make automatic backups, in case anything goes wrong. Aegir also helps you check the module version numbers quickly and accurately.
Most importantly, you start thinking of combinations of core and modules as "platforms", as stable entities that shouldn't be lightly tinkered with. If you want to tinker, make a new platform. Leave your live sites alone.
(I wish I'd known all this before I downloaded that module that not only broke one of my sites, but then wouldn't disable.)
Want to learn more about Drupal and WordPress in your free time? How about free podcasts? I've collected lists of Drupal podcasts and WordPress podcasts for your listening pleasure. Ditch the morning news, and turn your commute into quality CMS time.
If podcasts won't slake your thirst for knowledge, maybe it's time you climbed the "Drupal ladder". This free set of lessons is geared towards bringing you from Drupal newbie to core contributor, rung by rung.
And if that's not enough, expert Drupal developers are standing by, offering free core mentoring. It's never been easier to explore the crystalline palaces of Drupal code.