One CMS to rule them all….

I have been thinking about writing my own CMS lately. The reason being is that in a veritable sea of Content Managment Systems and blog tools none exist that have a decent MVC structure and an ORM. These things are important because at some point you will want to add on clean loosely coupled modules in an intuitive fashion.

I have been looking long and hard at a couple of frameworks:

Django: Appears to be a slick Python framework with a lot of built in tools for handling content. It also has a nice auto-generated admin interface. It’s wicked fast and the API seems documented VERY well. Hats off to these guys really. The real kicker for me here is that I would have to learn python, which would be doable of course but, I would like something sooner than later.

Rails: So… Is there anything rails cant do? MVC, ORM, Migrations Oh my! REST out of the box.. Come on. My downside here is that I would pretty much have to write this alone as I don’t know many rails developers (ok, free rails developers) and I really like non-island coding. As much as I pine for the days of being 23 and coding alone all night long… I don’t appear to be cut out for that type of lifestyle anymore.

CakePHP: What I can say about CakePHP is that for most developers with any PHP background its the most sensible. They have Object->Relation Mapping. They have the same MVC structure as ruby on rails and there is even migrations that have been written from a contributer.

When looking at the final framework (CakePHP) I saw an Article That Intrigued Me.

A few minutes later I found This Article.

I thought to myself “Wow Somebody actually gets it!” In short the Mambo team has chosen to use CakePHP as their framework which is an idea nothing short of revolutionary. I don’t understand why joomla or drupal didn’t get around to doing something like this choosing instead to write a brand new framework from scratch (without an ORM) . But whatever the reasons no one else did, its now been done.

Some benefits Mambo will get out of CakePHP are:

  • The same MVC structure that is used to power Basecamp, 43 things and CakePHP.org. (Thousands of developers are now familiar with this file structure. The uniformity alone is going to make things like writing new modules/components or even fixing bugs easy as cake… *smirk*
  • Object->Relation Management.
  • Framework Code Base that is in production in hundreds of Cake sites.
  • Well documented Framework from the start. (The Cake manual and cheat sheet is documentation on par or better than even that of Django). This will allow developers to hit the ground running when developing apps for the new Mambo.
  • User system, ACL’s, RSS generators, ActsAsX, Plugin Architecture, Migrations, Validations and Caching.
  • A large group of developers already using and familiar with Cake code base.

In short I don’t think they could have made a better move. I know that I for one will be happy not to write my own CMS from scratch.

~ by digitalrealist on September 21, 2007.

3 Responses to “One CMS to rule them all….”

  1. I’m facing the same decision here at the newspaper. We have a lot of custom projects on the drawing board and I need a framework flexible enough to handle them, but that still allows me to build them fast. Performance is also a concern for us. So far we have one Drupal site and it looks like we’ll have another one built with Zend Framework. Although, ZF is my choice for ease of development, it does have some performance issues, so I’m actually considering Django. But like you, I would have to learn Python first. I’ll figure something out I’m sure. Maybe I’ll have a look at Mambo.

  2. Did you consider Radiant CMS? The backend code should make you happy and it’s basic, but stylee front-end is a great starting point… IMHO. — I’ve done a lot of projects in it.

  3. In that veritable sea of Content Managment Systems and blog tools, there is SilverStripe, which has a decent MVC structure and an ORM :)

    I’d agree with hellovenado that Radiant is nice for a basic blogging tool, and SilverStripe comes in with the features you expect with a much more powerful CMS tool.

Leave a Reply