One of the questions we get asked time and time again by our web design clients is “what is the best Content Management System?” There’s a short answer to that – there isn’t one. All Content Management Systems have their strengths and weaknesses, there is no perfect “one size fits all” solution and you’ll probably need to pay a web developer at some point to customise it to get what you want. So what are some of the more common options that you can choose from, and what are the pros and cons?
WordPress
At Sweet-Apple we find that WordPress typically enables us to provide a web design service that allows almost limitless creative freedom, excellent search engine optimisation capabilities, and a huge array of free plugins to enhance the website. We can develop custom WordPress themes extremely quickly and cost-effectively, which either translates into more profit for the web design agency hiring us to do the web development on a freelance basis, or an inexpensive site for clients who ask us to do the web design ourselves.
What are the downsides of using WordPress? Well, the admin backend can be confusing for people who have never used a CMS before (although to be fair it’s a damn sight better than most). In addition, WordPress is frequently targeted by hackers, so it’s important that you install updates to WordPress and any installed plugins when they become available. Lastly, WordPress doesn’t have ultimate flexibility of some CMSes to quickly and easily create complex content “types”. For more structured, complex projects, there are better solutions available.
Micro-CMSes (Perch, CushyCMS, PageLime)
Over the last couple of years micro-CMSes have started to gain traction at the budget, beginner and bespoke end of the market. Micro-CMSes follow a very different development paradigm to the more established systems – essentially the developer creates static html pages, then attaches code directly onto specific parts of the HTML to mark them as editable. This has a number of advantages. Firstly, it means that the developer and designer have complete creative freedom to code anything they want. Secondly, editing for the client becomes greatly simplified as they have clearly defined parts of the page that they can edit in isolation. This minimises the chances that they will accidentally break the page layout – an important consideration for less web savvy users. More recent iterations of these systems have introduced “editable repeating regions”, which allow you to create News feeds, Image galleries and the like. Lastly the developers don’t need to learn any complex programming at all.
The downsides are few, but notable. Most critically you are relying on a 3rd party service to edit the site – if the company running the service goes down or bust, you suddenly have lost the ability to edit your site (this is also true for any hosted service such as WordPress.com, Drupal Gardens, Blogger). Secondly, adding new pages or entire navigation hierarchies is more difficult. Thirdly if you outgrow the CMS solution and need more functionality, there’s no easy way to import data into a new CMS via XML files or the like. Lastly, you don’t have easy access to bolt on functionality via plugins/extensions. You rely on the service developer to add new functionality – you can’t just ask your developer to code and add it, as they don’t in reality control the service.
Umbraco
Umbraco is probably an unfamiliar name to most people reading this, even those who are web professionals themselves. It’s an Open-Source .NET CMS that runs on Windows and has a strong following in Windows based web design and development studios. It main attraction for me is it has a excellent Admin User Interface, which is much cleaner than WordPress and Drupal. With a competent developer working on it, you can easily allow the client to insert complex functionality via Macros using the rich text editor.
The downsides? Like most CMSes, a large part of the developer’s job revolves around creating Content types and Macros that query the CMS to find data and then format that information according to the designs. Atypically, Umbraco uses XSLT or Python to convert data into presentation HTML. It’s also programmed in C# .NET. You’re probably going to find it harder to find developers with the required skillset to work on Umbraco, and those you do find are likely to be more expensive.
In my previous job I developed a few sites using it, and had a love/hate relationship. Since then, Umbraco development has continued at a pace and it seems to be maturing very nicely into a sensible alternative to other develoment-centric CMS platforms such as Drupal.
Drupal
Drupal has been one of the most popular CMS systems for a number of years, and has a number of very high-profile sites (Whitehouse.gov being the poster boy) running on it. Drupal’s main advantage over more lightweight sytems like WordPress is it’s ability to create complex Entities/Data types. This makes it easier and more logical for end-users actually entering data.
Imagine you need to create a CMS for an estate agent; their main job will be creating listings of properties. Each property will need a description, but you’ll also what to have pictures, address, postcodes, a Google maps location, directions, floor plans, etc. In Drupal you can create a definition for this “Content Type” which creates separate fields for each distinct piece of data. This makes entering the data a relatively simple and structured task.
Drupal’s power and flexibility becomes evident when you start to install Modules – the base Drupal install is extremely bare and lacks a significant amount of functionality that users of other CMSes take for granted. But with common Modules such as Webforms and Views, the possibilities are almost limitless.
My biggest issue with Drupal is the Admin interface and complexity. Drupal 7 has a much nicer Admin “backend” than previous versions, but they still haven’t got decent WYSIWYG and Media modules sorted out in the base install, something which I find baffling when you compare to Umbraco or even WordPress. As for complexity – Drupal can intimidate people because of the sheer number of options available. Of course most end users aren’t going to ever need to modify those settings, but it does seem to present an issue for a lot of people. Simplicity is sometimes a good thing…
Bespoke CMS
Back in the mists of time ( 5 years ago) you would find that most CMSes were custom solutions built by a developer from scratch. Often this was because there were no off-the-shelf alternatives that could easily be adapted to fit the exact requirements, and building a bespoke solution seemed to be the fastest way to complete the job. Times have moved on, but there are still some circumstances where a bespoke solution may be appropriate. The advantage is that you should get exactly what you want, with a very clear, uncluttered and focused Administration area. Creative control can be absolutely precise, functionality perfectly tuned to your goals.
However there are some significant disadvantages. Firstly, it’s going to cost more. Even with the plethora of Frameworks such as Zend, Symfony, .NET, CodeIgnitor and Cake, the developer is going to have to build a lot of code from scratch. That takes time, which means money. Secondly, you are absolutely beholden to the developer. If they get hit by a bus, the company collapses, or they just lose interest, you’re going to have to find someone else to take it on, and they’ll have to learn how it’s been bolted together. If you do get a bespoke solution, make absolutely sure that you retain the right to modify the source code at will, and make sure they use a Open Source Framework such as Zend, Symfony, Cake or .NET MVC (amongst others) to build it. At least then you should be able to choose from a pool of developers who will have some familiarity with the way the site has been put together.
So what is the right CMS solution for me?
The right CMS is the one that enables you to quickly and easily modify your site’s content at the least possible cost. If you only need a simple blog, there’s no point in using Drupal. If you need a site that has multiple contributors, complex editorial rules and permissions, you shouldn’t be trying to use WordPress. If you have a small simple site that the client just needs to make occasional text-changes to, then Perch or PageLime would be a sensible choice.
The correct CMS for any given project should be chosen on the basis of the specific functionality needed, the budget available, the experience of the end users, and the future growth plans for the site. Of those 4 factors, budget will play a big part. If your developer is being candid with you, they’ll admit that WordPress is typically the fastest and cheapest route to getting things done. I’ll freely admit that Drupal and Umbraco are much more mature, flexible and powerful solutions than WordPress and I’d love to be using them more for sites I develop. But the cold, hard reality is that with the <£1000 development budget that many clients have available, WordPress, Perch or PageLime are the correct choice. If your development budget is greater than £1000, then using one of the more “industrial strength” CMSes becomes a viable option and should be investigated carefully.
Looking for someone to build you a cost-effective Content Managed website. Confused by all the options, unsure about how much it should cost you to get it built? Sweet-Apple designs and develops web sites for clients in and around Bath, Bristol, Frome, Trowbridge, Devizes and Swindon. Please give us a call on 01380 830224 for a no obligation chat.
2 Responses to Getting the “right” CMS from your web designer
I’m one of the developers of Perch which you have listed as a micro-CMS. We are, but we aren’t hosted as in your other examples. So in the case of a developer wanting to extend the product, they can. It is hosted on your own server and we also have a nice developer API to make creating your own apps and plugins pretty simple. All of the official add-ons use that API so they can be downloaded and looked at as a good starting point.
We’re trying to get a good mix of ultra-simple for those that want it and hidden power for developers to do interesting stuff. However we’ve always been self-hosted – you download the code and install it on your own server.
I stand corrected. Just having a spin through the docs now. Pondering if I can use Perch for a site I’m investigating at the moment.
Just out of curiosity, if the source is hosted on the client’s site, how can you manage licensing. Trust?