February 24th, 2010

Choice is a good thing

Just a quick note in response to Lukas Kahwe Smith's recent comments about the "problem" of multiple CMSes for Symfony. This note began as a comment of mine on Lukas' blog.

We developed Apostrophe to scratch our own itch: we needed a CMS that our clients could use to add content to their sites in a variety of ways without inadvertently breaking the site design. So our CMS concentrates on the admin's user experience, extending metaphors already present in the page. It's about design even more than it's about software architecture.

We also wanted to make sure it supported Symfony coding practices we were already having good success with. Therefore slots and engines implemented as Symfony modules, not new abstractions, and a clear lineage back to ideas from sfSimpleCMS.

We open sourced Apostrophe because we saw a win-win situation: other developers are in the same boat (their clients are also frustrated with Drupal administration, and they need a good solution today).

More eyes on our code, more bug reports, more suggestions equals a better system for everyone in the Apostrophe community.

Right now this is working for us in a big way, and it's running in production on a number of client sites. Others on the apostrophenow google group are also happy with it (although they have valid criticisms that we are addressing), and they are building client sites that work. There's no business case for us to screech to a stop and start doing something radically different.

Right now we have a team of seven people doing great work with Apostrophe and no interest in stopping that. Evolving it to be better, eventually rewriting it extensively in the Symfony 2.0 timeframe... sure! But unless the marketplace tells us otherwise, we're going to keep doing good business, writing good code and sharing our work with those who like our approach.

Joomla, Wordpress and Drupal are all thought of as CMSes for PHP, but no one is telling them that they must merge. Why? People pick the project that works best for their needs. That's as it should be. Software architecture isn't the only differentiating factor between content management systems.

If you like Diem or Sympal's approach better, heck, go ahead and use 'em. A "there can be only one" approach leads to design by committee, and that is not always a good thing.