CMS of the moment or SilverStripe vs. The World

The debate over what CMS is "best" has been beaten to death. That being said, I wanted to try to articulate why I'm currently enamored with SilverStripe while several other tools have fallen out of favor.

I'll admit it, I've got a bad case of platform/ technology ADD (also N.A.D.D.) Every few months I find myself reevaluating the tools I use to create websites and web applications. Over the years I've worked with or evaluated Ektron, Drupal, Subtext, Wordpress, Perch, Symphony, MODx, and ExpressionEngine (to name a few). More often than not, when I start to take issue with a particular platform it's for one of three reasons:

  • "It's too basic" - Wordpress comes to mind. My experience has shown me that Wordpress is a blogging platform. Without a significant amount of hacking, I haven't found it to be a "content management system" capable of efficiently managing much more than a blog + a few pages of content.
  • "It's too complex" - MODx 2.0 (Revolution) comes to mind. MODx, in its most recent release, seems to be facing an identity crisis. Is it a "content management system" (with a priority placed on empowering non-technical users to take control of their own website and content) or is it a framework (placing a priority on the ability of developers to build customized applications)? From my rather limited experience--I attempted to use MODx 2.0 Revolution on my most recent project only to get frustrated and revert back to MODx 1.0 Evolution--I think it's trying to be both, and can't quite strike the balance. The result is a bloated, overly complex interface for managing the website and content.
  • "It's too restricting" - I'm not going to name names here, but I've found that certain platforms force developers and designers to adhere to how the system is built.

Most of the tools listed above are great tools for a specific type of project, or a specific type of developer or designer. A lot of it really boils down to chemistry. By "chemistry" I mean the "fit:" If a tool feels right for a particular user, team, or purpose then it's clearly the right tool for that particular scenario - like a good pair of shoes. After all, you wouldn't wear hiking boots to a wedding (unless you're this couple and that's your thing) right?

Here's what I look for in a CMS/ CMF:

  • I want something that just works. Ideally, a CMS/ CMF will allow someone with limited knowledge of that particular product to get basic features up and running quickly and easily. Basic features, IMO, just means the ability to create new pages, edit existing pages. Install and go!
  • I want something that gives me complete freedom. I should be able to organize content however I want. I should be able to use any type of design that I want. The tool should conform to how I want to work, rather than forcing me to conform.
  • I want something that's extensible. If there's a feature, or set of advanced functionality that I want I should be able to build it. Building new functionality shouldn't require me to use hacks. Instead, I should be able to leverage existing API's.
  • I want something with a great UI for my end users. If I build a website or application, I want my clients and end users to feel comfortable managing content on their own. In many cases this boils down to a clean, intuitive interface.

Those are the big four in terms of philosophy and approach. I don't mean to discount the importance of other features such as versioning, portability, security, etc... It's just that, in many cases, if the team of developers behind a given tool share my philosophy and approach these things are generally covered anyway.

Over the past week I've been evaluating SilverStripe. I've got it installed, I've gone through the tutorials, and I've started reading the book SilverStripe: The Complete Guide to CMS Development (Wiley). The publisher of the SilverStripe book has made the first chapter available as a free copyrighted excerpt.

In the first chapter, section 1.1.2 CMS for Content Authors and Framework for Developers, you'll see what I find so compelling about SilverStripe. There's a clear separation between the CMS (user interface for managing content) and the Sapphire CMF/ PHP Framework. Instead of trying to be a CMF and CMS at the same time SilverStripe provides both a CMF and CMS that work beautifully together but are also, to a certain extent, independent of one another. The result of this approach is that non-technical users have a simple, elegant, interface for managing content without the distraction of system settings, and options for site configuration. At the same time, by utilizing the Sapphire PHP framework, developers have complete control over how websites or web applications look and behave.

It's also interesting to note that, while SilverStripe is open source and free, it's backed by the commercial entity SilverStripe Limited. There are commercial support and monitoring options available. For larger projects built on SilverStripe, such as the Guitar Hero, Women's Conference, or 2008 DNC websites - this could be very important.

It will be intersting to see if, in 6 months, I still feel the same but, so far, SilverStripe just feels right.