blog

The Best CMS

Posted 16.11.2009

So what’s the best CMS? WordPress, Drupal, ExpressionEngine, another? A question I’m often asked and to which I can only answer: it depends. It depends both on who you are and what you are trying to do.

When to use a packaged solution

Packaged CMSs give a lot of functionality for free and people who take the time to learn them, love them. I think this is especially true for designers and content publishers as it allows them to do things that they weren’t capable of before. As they work with the platform more and more they see with a little plugin here, a little tweak there, they can solve many of their problems.

However, I would recommend these rough guidelines for when and what to use to avoid the “when all you got is a hammer everything looks like a nail” syndrome:

  • Most packages are good in what they are trying to do; often bad when forcing them to do something else.
  • WordPress, Drupal, and ExpressionEngine seem best suited for one-man teams.
  • If you stray far from the built-in features, consider building by hand.

Use a CMS when what you are coding is primarily a CMS

Don’t try to build a picture sharing site using WordPress, or a multi-lingual e-commerce solution using ExpressionEngine. I’m sure it can be done, but the more that you try to stuff a square peg in a round hole, the more inefficiencies and frustrations await you.

The right peg

  • Use WordPress if you are primarily making a blog or publishing articles, a one-man team will be implementing the product, and/or do not have the internal technical resources to roll your own.
  • EE for more complex sites with multiple data models, are a one-man team, and the site is primarily manipulating content blocks.
  • Drupal I have much less experience with, but seems to also have its die-hard fans. My understanding is that it would be in the same realm as EE.

I am curious where others feel about this broadsword evaluation and how they would evaluate other packaged CMS products. Please add your comments below :)

The one-man team

Most of the above-mentioned CMSs use the database to store configuration, data models, and, in some cases, display templates. This is probably fine if you are working on it by yourself, but makes it difficult to use Git, Subversion, or other version control tools that allow multiple developers to code simultaneously (I also find it very annoying to be forced to write any code in a browser and find that it makes developing on local and deploying to production a pain).

Packaged CMS for companies with limited technical resources

I say this in partly in retrospect from what we did with the site you are looking at: theplant.jp. We built this on WordPress.

With a site that is primarily static contents and extremely simple functionality we should have rolled our own simple CMS for updating the only contents that changes frequently: the blog and comments. We could have pumped that out in just a few hours. The static contents are, well, static. All of us here could more easily edit a text file and deploy it to the server and not have to worry about:

  • Learning the WordPress-specific library of functions
  • Trying to force it to be a multi-lingual company CMS when it was not made to be one.
  • Wading through the admin. The development of all platforms with additional features both gives and takes. We actually only need one feature: add/edit/delete and article. However, each time we login, we are always faced with an admin full of tools to administer features and contents that we don’t need.
  • Being attacked by WP-targeting spam and attacks and associated hassle of continually updating the software for security fixes.
  • Speed issues for creating dynamic contents when, in fact, they don’t need to be dynamic. Cacheing and other strategies will help this, but they are really a kludge when the contents are primarily static in nature.

This is no fault of WordPress per say, it does what it does extremely well: enables people to publish blogs/articles, it was just a bad choice for us as we were not lacking technical resources to solve our problem more elegantly.

What we are doing from now on: QorCMS

We are using are experience over the years from developing custom solutions for MTV Japan, ASICS, OnitsukaTiger, and CMS solutions for many others and have developed a beta version that we will soon release of what we are calling internally QorCMS.

If Rails is like a piece of cloth which can be customized into all kinds of clothes, QorCMS is a well tailored business suit for the business man. QorCMS is still a framework for developers instead of a final product, but it enables us to rapidly develop custom solutions.

QorCMS includes lots of common modules that a CMS needs (auth, upload, file serve), a flexible content model map and other enhancements to Rails (it’s based on Rails, but has many utilities and fancy helpers). QorCMS code is backed by a battery of coded test cases so that we can depend on the features. Again, the goal of QorCMS is a basic framework, not an instant fantastic CMS. Our clients will get this after some configuration and coding to match their specific needs.

It may seem like this is just another CMS, and in some ways it is, but we wrote it and that makes all the difference because we:

  • Are driving the bus and don’t need to be tied to an external development team’s roadmap for feature enhancement or having to hack our own features that may break in the next update.
  • Can extend it extremely easily.
  • Administer the features through code, not through a GUI which we find to be much more efficient.
  • Keep data models, templates, and configurations in the code, not in the database, so it is very easy for several developers to work on the same project at the same time.
  • Integrate with the 3rd party services we like best, like GoogleDocs, GoogleMaps, Amazon Webservices, and Mailchimp
  • Make our code safer, with (hopefully) less flaws than we have seen in other solutions.

The downside for our clients is that it is our code, so they may perceive themselves as being more tightly bound to a single developer. However, unless it is a vanilla install of a CMS with no alteration, they will be probably end up being just as tied to another vendor and, hey, we are not a bad company to be in cahoots with anyway.

Comments

picture

Very nice article.

This is my case: “If you stray far from the built-in features, consider building by hand.”

picture

So what is the best CMS? It depends, seems to be your answer.

Although I agree building a CMS that can connect better with clients is by far the best solution. I think most of the points you call out as “pro’s” as opposed to the other three systems, are possible in at least Drupal (to my knowledge).

The biggest problem to me, still seems to be vendor lockin – the reason why many companies go with Opensource to begin with. The idea is to make your CMS implementation so flexible and well documented, that there is no alteration to the core software, nor an over complex exstention.

One of the reasons why neither Wordpress, Expression Engine or Drupal succeed as opposed to your QorCMS – is that there is a large learning curve. Since you build it, you know how it works – inside and out.

Don’t forget not all of the Web people are programmers. While I have some ancient programming experience in BASIC, lingo (Macromedia Director) and ActionScript, I certainly do lack the dedication (and the nerve) to start learning ruby or PHP.

And especially because of this I find Textpattern (you missed to mention this very fine CMS) and ExpressionEngine extremely powerful, because it gives a CSS and XHTML code-savvy typographer/designer the power and flexibility to build custom templates for these CMSes from scratch without the need of writing PHP code or even being an experienced programmer, while still having access to simple loops and a few programming features that make the site more dynamic.

The same can only partly be said about WordPress, where you often end up having to write plain PHP to do a few slightly fancier things.

So in the “power to the rest of us” (i.e. non-programmers) department, ExpressionEngine and Textpattern are very powerful and flexible tools, especially in the hands of people for whom building a CMS from scratch is not an option at all.

But I totally agree the more you do something beyond the intended scope of the CMS, you’re just making your own life harder, in those cases designers/coders should team up with people like thePlant rather than trying to it all by themselves.

picture
Babs

This is the first ‘What’s the best CMS’ article I’ve come across that makes no mention of Joomla. I have used it for a number of websites over the years, and it has served me well for various applications from business to social. In the context of this article it’s also worth mentioning that I’ve never used it for its primary function: article publishing. For the near future, I plan to look into some smaller OS CMS for simple brochure sites so that clients don’t have to acquire the skill sets needed to administer many of these larger CMS sites. Learing Ruby’s also on my wish list but that’ll have to wait for a time when I have more time ;)

picture

Being clear on what it is you want to achieve is the best start for a choice. When creating a site for your own fun and pleasure a natural choice would be to pick what is close to hart and not to complex.

Our experience however is in the competitive business environment where some other things must be taken into account aswell. Most businesses need a jump ahead (of competition) and a cms like Drupal jumpstarts this by offering a most modern functionality fully integrated with community tools. In a professional environment it is important as well to be able to create a workflow for content creation (sometimes integrated with ERP and CRM). And to protect the major investment in time and effort (often made in ecommerce sites) it is important that the cms offers version control and team development support to be able to maintain it over time.
For this the heavyweights like Drupal and Joomla are in our experience the best choice. I would suggest to have a look at the online developers networks for low cost great expertise for the one man shops.

Name *Please use your real name
Email *Required. Will not be published
Website

That's all for now. This article brought to you by The Plant, makers of Joblet, PiqShare,

and many other fine web apps and content management systems.

Pick up our RSS feed while you are here.

by
Anatole
no picture
Anatole founded and serves as project manager for The Plant.