I’ve been a developer for a number of years now and, although it’s great to be able to write your own code and build an application from scratch, in reality it’s not something you can do every time you start a new website.

I know this from personal experience, when I began to use more and more advanced programming methods, my sense of curiosity (or probably a programmer’s control issues) got me thinking about creating an all-round application that gives a web user what they need.

This is certainly not a task for the faint of heart: creating something that everyone can use is almost impossible, I can think of very few real world examples where an item needs an alternate version to meet the demands of every user. Almost every aspect of our lives in the digital and real world is customisable in some way, from wallpapers on your desktop to the shoes you personalised online.

So what has this to do with me programming a website?

Everything! I’m not saying given the right time and resources, I couldn’t do as good a job as WordPress, Drupal, Magento or many other Content Management Systems available. If you asked me to, I would merrily type away for the next 6-18 months and build you one of your own. But what sets these applications apart from many others is how configurable and customisable they are. What makes them so great is that they are actually designed this way!

Each of these systems has the ability to extend its core functions to fit your needs, but if all of them can do this, why choose one over the other? If WordPress has an ecommerce plugin, why not use this over Magento, or Drupal for that matter?

For me, I feel that the role an application was originally built for has a huge impact on future development as well as the limitations that are inherently placed on that system from its original design. It’s the same as repurposing a jet for a world record attempt. Attaching a jet engine to a chassis, then linking it to a gear box may make it a car that can break a land speed record, but it’ s already been limited in its functionality by the fact it was originally designed for an airplane.

What are the pitfalls of doing the coding yourself

Take a look at current popular Content Management Systems that are in use and that have become popular today and have become much more than their original design.

Let’s take a look at three  of the top four CMS today ( as a percentage of Market Share 1 (Nov. 15).

1.WordPress (58.7%)
2. Joomla (6.6%)
3. Drupal (5%)
4. Magento (2.9%)

Of each of these only Magento has had year on year growth, but why?

It’s because of the way Magento was designed, it knows it’s limits (as do the developers who are building extensions for it) and it is this that should be one of the biggest factors in influencing your choice of CMS for your site.
WordPress was originally a blogging tool, it was built to allow its user to add posts in chronological order, since then the ability to create landing pages, add ecommerce and many other features have been added, but at its heart it is still a blogging engine and if you read ‘7 Uses of WordPress’ most of them are variants on a theme, most of these uses are common everyday uses and you can say that with Drupal you can do exactly the same as with WordPress.

Having to write code that can be used as an interface between your clients and your business can create a great site that gives your clients access to all your products, videos or images but think of this from WordPress, Drupal or Magento’s point of view. You have to write a framework, that you don’t know what it’s going to do, but you have to be prepared to allow other people to adapt and change this code without breaking it.  Your customer base suddenly is not the people who are buying your products, but the people who are using your system and are unable to navigate past the checkout stage because someone has edited the framework to make it ‘better’.

What about the three other main CMSs


When you get down to the nitty gritty of it because WordPress was built as a blog its original core code is still a blog and displaying galleries, Job Posts, Blog Posts, idea posts, feeds, etc. you see the running theme, the ability for one user to share data with another user – the reader.

WordPress does have some great extensions that let you create a site which is not a blog – ecommerce for instance, but they too have the feel of being bolted on, despite sharing the same theme, the look may be the same, but the ‘feel’ is not.

Don’t get me wrong! I like WordPress, I just feel that it has a time and a place. For those people who are not as technical as others, who need something out of the box – or as a blog with some Landing pages – like this one, the magepress.co.uk site is written using WordPress. Because the function of the site requirements is met by the application, there is little need for custom programming over and above what comes out of the box.

For those who think I hate WordPress, take a look at some of the sites I have found that have been developed using WordPress,

This is Your Kingdom

Worry Free Labs

Toronto Standard

This shows that WordPress sites can look GOOD but the fact remains that the majority of the content is information that one person wants to convey to another, rather than the sale of a tangible product, or an application that provides a service.

What about Drupal and Joomla?

So what about Drupal and Joomla? Well, in my defence, I am much more a Drupal expert than I am a Joomla one but because they essentially provide a very similar service I shall be using Drupal in this example.

Drupal had a very different beginning, originally conceived as a platform that could be used by an Open Source community to extend and build upon an original framework was a fantastic idea. Many developers out there are often doing the same old jobs, i.e. creating a site that provide certain needs for a client. These needs could range from a cataloguing site that keeps track of your social media presence on the web through to announcing White House speeches (Yes, THAT White House).
To the casual observer there is little difference between the two, but to a developer  there’s a world of difference.

WordPress allows you to display content, Drupal would help you to build functions that can create content.

Can you plan for future features?

Absolutely! And this is my point. One of my first contracts after qualifying as a developer was to work with an Open University professor.  He was collating information from feeds: he had an amazing student who would take the data which I had scraped from several sources and then present it as an interactive ‘map’ of your online presence.

To me this was mind blowing, you could take a framework that someone else had written, using the quality assurance that comes with the brand, but not only that, you can extend the code base yourself – and are actively encouraged to do so. I saw the potential of Drupal straight away, instead of just applying a theme to a website and posting content every now and then, I could use Drupal to actually do something with the data I had collected. What made this better was that there was a huge community of developers who loved the Open Source ethics of Drupal and began to build many, many modules that could help a user do almost anything they  needed to.  In fact, I could almost guarantee that if you need functionality for a site, you will find it in the modules and extensions of the frameworks mentioned in this article.

Benefits of using a CMS

Well, the first one is that 95% of the code and the site has already been written, you just need to clear away the excess marble to show the sculpture underneath.

More recently Magento ecommerce was released, at first programming for this application made my eyes go glassy and I would get cold sweats thinking about XML configurations and many other aspects of Magneto that just seemed overly complex and completely unnecessary.

Then I used it. After a couple of days I began to have some moments where I suddenly had a smile on my face thinking ‘That’s clever’ and suddenly realised the importance of a CMS’ origins and how that affects its future development.

Magento was designed as an ecommerce system, its themes, its modules and extensions are all geared around building a site that sells items, be they tangible or digital.

As far a programmer is concerned it has the same functionality that you can find in WordPress and Drupal. That is, you can extend the core functionality of a system by writing your own code, but how these extensions work will also depend upon the original designers’ thoughts when designing the architecture for the CMS/framework.

Drupal was built with more abstraction in mind allowing you to create a variety of sites that have a more general feel to their functions and programming.

Magento is built for ecommerce and the additions to this application are also built with ecommerce in mind. Magento still allows you to build landing pages but its primary use is ecommerce; WordPress allows you to sell online but its primary use is landing pages and the distribution of information. Drupal allows both of these but allows much more customization with the ability to cross reference data in a way that neither Magento nor WordPress provides.

Here are some top tips for choosing a CMS

So choosing a CMS is not just about selecting the most popular application, it’s about planning ahead:

  • What CMS fits my needs now and is there a possibility these needs may change in the future?
  • Do I want to sell online?
  • Am I distributing information?
  • Do I have something to say?
  • Am I processing information?
  • Do I want a high level of customisation?

These are some of the questions you need to ask yourself and, in my very humble opinion (and let’s face it, if you didn’t want it you wouldn’t have read this article as far as this)……what? Something’s missing at the end of this sentence.
If you have a lot of text or information you want to share amongst a specific community use WordPress, if you want to create a site that is more specific in its functionality, one you want to extend with ease and provide higher level functions – but not selling – use Drupal, and finally for ecommerce, I would use Magento.
Play to your application’s strengths and avoid its weaknesses, do this and you will allow yourself to plan ahead much more.