In 2008 we hit a bit of a wall. We wanted to produce world-class websites, but we just weren't getting the flexibility and ease of use we wanted out of the software we were using at the time. We built a ton of different websites using Wordpress and Joomla, but half of the time you were either hacking plugins, or writing plugins from scratch just to get the software to do what you want. That is when we started our quest to find the best CMS in the world.
What is a CMS?
CMS is short for "Content Management System". It's a web application designed to allow non-technical users to add, edit, delete and do other functions that help them manage a website. It means that with very little knowledge of programming, you can use a username and password, log in and start posting videos, or adding images or do most of the every-day tasks needed to manage a website.
How does a CMS help web developers?
A CMS has a lot of default functionality, such as logging in, resetting your password, basic templating etc. If you don't use a CMS, it means all of this functionality must be built from scratch. Re-inventing the wheel is never a good idea. By using a CMS, web developers can build amazing sites, without having to rebuild core functions that just about every website needs anyway.
But won't all websites look the same then?
Not at all. Although most Content Management Systems come with default themes, you can create customized ones that can give you any look and feel you want. The important part to note is that a CMS provides you with the basic building blocks of a website. It is still up to you to decide how you are going to put those blocks together.
But why not just make it 100% unique and build it from scratch?
I was guilty here for a long time. I'm not sure what the cause is, but most developers seem to believe that building something from scratch somehow means it will be better and faster or more unique. Or perhaps it has to do with not wanting to go through the effort of learning new technology. I think that was one of the reasons why I never really took the time to explore with more languages, something I only started doing in the last 2 years. You sort of get stuck in your ways and comfortable. The problemn then is that you are missing the point of being a programmer: "To be a problem-solver and to be an explorer". Whatever the reason, I've seen many old and young developers do this, thinking it's better to rather build something from scratch.
The reality is that unless you are an expert in every field in computer science, chances are you are not going to produce the type of quality code you find in some of today's Content Management Systems. Even with a highly skilled team of 100 developers, you will struggle to get to the quality and reliability found in software like Worpdress, which has been built over many many years. (Remember: the core Wordpress code is extremely reliable, very well-tested and very safe to use... it's the plugins and changes made by inexperienced developers that often cause security problems) But I digress, why would anyone who sat down for a minute to think about it, ever opt for a solution that is written from the ground up? Here's why I think it's always better to find a framework or CMS that will work for your specific problem:
- No re-inventing of the wheel: You are not wasting time building things that have already been created and tested and used in practice by thousands of people.
- Better Security: New code hasn't stood the test of time. When you get a framework or a CMS, you know the only new security threats that can enter the system, are the one's you add in afterwards. You don't have to focus on code that has already been verified.
- Community Support: If you get stuck, there is a massive community that can help you find advanced solutions to problems.
- Structure: Whether you use a CMS or a Framework, there is some sort of structure to it. Future developers can work faster, because they only need to understand the CMS or the Framework in order to add to the code.
So which CMS did you choose?
I'm sure the image at the top of this article gave it away, but we ended up going with Drupal. Even after testing and going out of our way to ensure we made the right decision, we still couldn't be sure without using Drupal in practice. Support for Drupal could've dropped or something much better could have been invented.
Luckily, to date, 6 years later, Drupal has managed to keep up with trends and Drupal 7 is downright amazing! I have also gotten my hands very dirty with Laravel as of late, which is based on Symfony. So imagine my joy when I found out that Drupal 8 will incorporate Symfony. This could mean even bigger things for Drupal.
Why did you choose Drupal ?
Drupal managed to eliminate thousands of problems we had with other software packages. Unlike Joomla and Wordpress where most plugins are specific to a problem with a lot of configuration options, Drupal is almost the other way around. You start with nothing, but everything can still be configured. It's far more in line with how developers think when designing a site than what a end-user would think.
The building blocks of Drupal are called "content types". These are essentially objects that you can assign fields to. By simply creating a content type called "Car", it can have fields like "Number of Doors", or "Brand" or "ID" or anything you can think of. Before you know it, you have finished defining the structure of your data and next up is deciding how to display that data. With Joomla and Wordpress you would have to build a plugin from scratch or rewire an existing plugin if you wanted a website that shows a listing of cars. Or worse, you would have to find a good FREE plugin, or buy a plugin, then hack it to do what you want to do.
I think Wordpress is the biggerst culprit here. Unlike Drupal Modules where there are clear development and production versions of code, Wordpress often only has the option of either updating to the latest copy of a plugin or not. The code might be available to the public to use, but all plugins certainly don't get tested nearly as much as the components of a Drupal module. This means Wordpress installations, but far specifically, Wordpress installations that have installed plugins with less reputable authors, could result in your site being left open for malicious users to get in.
Drupal often gets a bad name because of its steep learning curve. But it seems the world is catching on with many people acknowledging that despite Drupal being complex, it is the superior solution. It's understandable though, because Drupal is far more complex than Wordpress or Joomla. But people also misunderstand what this. Clients think that because Drupal is complex, it is going to be Complex for them. But the reality is that if you set up Drupal correctly, it is much much much easier to use than Wordpress or Joomla.
The best CMS In The World?
Whether or not Drupal is actually the best CMS is in the world is debatable. In fact, it's probably debatable as to whether or not it's really a CMS. Many believe it's more of a Framework than a CMS, especially with it now heading in the Symfony direction. Regardless, we have not come across many scenarios where a website had to be built, where Drupal could not do the job.
There are of course exceptions. In some cases not using Drupal and using something else could be a better choice. Which is why the real question is not: Is Drupal the best CMS in the World? The real question should be: Is Drupal the best CMS for this specific problem?
As a strong Drupal supporter I really feel that no other CMS can come close to it, and would urge any serious web developer who wants to build websites, to consider learning Drupal before delving into Wordpress, Joomla or even Frameworks like Laravel and Yii. I say this because I've tried all of these and at the end of the day, I still came back to Drupal because it just has so many advantages over all of the CMS and Frameworks I have worked with. It's just that good!