The Things I love about Drupal

Why Drupal? I have been working with Drupal since version quite early (version 4.5) and have seen it progress over the years. There have been points where I felt very uncertain about Drupal’s future, especially, at the great migration between version 7 and 8. Now that the dust is settling and I have observed the Promised Land and tasted of it’s fruit (been working with Drupal 8 for more than a year, actually), I thought that it’s a good place to share why Drupal remains my CMS of choice, any I love it, and why I recommend it to my clients and colleagues.

A short list:

  1. Drupal is Flexible.
  2. Drupal is Robust.
  3. Drupal is Scalable.
  4. Drupal Themeable.
  5. Drupal has lots of free quality Modules.
  6. Drupal has a great Community.
  7. Drupal is an Enterprise quality CMS.

1. Drupal is Flexible.

Drupal is architectured in such a way, that you can start adding your custom content types and adding fields of different kinds to those content types out of the box.

You want a gallery with image fields, text fields, date fields? No problem - you add all the fields you want, and configure how they are displayed on edit form and on an actual page. You have some content type that needs to fit your specific needs? You create it and add the needed fields to it, tailoring it to your needs. You want a complex data structure with multiple content pieces cross referenced and categorized with multiple taxonomies or tags? It’s all out of the box with Drupal!

So what does all this boil down to? When I open a spreadsheet and start writing down the data requirements the client wants to have, I am pretty sure that Drupal will be able to handle all that, and in most cases, will do that out of the box.

Well architectured data is one of the keys to success. I need a flexible system that allows handling various cases without assuming too much, but yet do that in an UI, so that I don’t have to code too much. That’s Drupal.

2. Drupal is Robust.

I have heard criticism of Drupal, that it’s not as robust as a hypothetical custom script. I admit, that if you wrote a custom solution, it would be leaner than Drupal (or any other CMS). However, custom tailored solutions have much higher costs in development, support, and scalability. Among the CMS, however, Drupal is one of the most robust. “Robust” means that it can handle the tasks of roughly same complexity efficiently. As of the moment of writing this blog post, Drupal has been superior to it’s competitors (Wordpress and Joomla) in robustness. This fact is well known among the large businesses who build big and complex sites on Drupal.

Now, I admit that “robustness” is a hot topic, and in the end of the day, especially for smaller sites, the difference is imperceptible. So if I had to use Wordpress, I would do that (but not Joomla, which is a separate issue).

Drupal is proud with it’s caching system. Among the existing CMS, Drupal has the most advanced and powerful caching mechanism. In Drupal 7, pages served for non-logged-in users were cached, and in Drupal 8, all pages are cached, even if viewed by logged-in users. And that caching is smart, and has a very smart system to identify when and what to invalidate and rebuild.

Even not arguing whether Drupal is *the* most robust, and how much of its robustness has been lost in it’s transition to version 8, it suffice to say, that Drupal is very robust as far as the CMS go. This means, that when your site is built, you not only get a functional and flexible CMS, but also a fast one, that won’t crash under an onslaught of visitors easily.

3. Drupal is Scalable.

Every developer knows, that when building a client site, whatever your goal is, it ends up being only a step. You build a blog, and then client wants to sell things though it. You build a museum web presence, and then they want to add a shop and a database of heroes and historic relics, searchable and categorized… That’s life. Now, with Drupal, I am very certain that I won’t have to blush when a new scale request comes through. Drupal is very scalable and can handle growth very well.

How easy is it to grow your site? Add a new gallery or blog? Add new content types, add new fields to existing content types? This is architectural scalability. This kind of scalability is a result of Drupal’s architectural flexibility that we’ve already discussed before.

4. Drupal is Themeable.

One of the questions that every CMS has to answer is how easy is it to theme it? In other words, can I make the data served by the CMS look the I way I want it to look, and if yes, what will it take? In my opinion, Drupal walks a very wise road, providing some decent out-of-the-box theming, and exposing the data in a very powerful way should you want to override the default style.

Drupal’s approach to theming is two-fold. First, you have access to a lot of preprocess functions, that allow you to get, format, and override the data before it gets served to the templates. And second, is the templates themselves. Templates are used to put the data into markup. Drupal 8 uses a very popular and powerful Twig theming engine, thus making theming for Drupal industry relevant.

So, Drupal is well themeable, and in can deliver web sites, beautiful to the eye and clean of markup.

5. Drupal has lots of free quality Modules.

There is a lot of discussion about the “free”. Some say, you can’t get a decent product unless you pay for it, and pay a lot. My response to it that that you can pay a lot and still get crap. The real issue is the price and the quality. In the modern world, it is not uncommon for companies to provide free quality product and seek to monetize it elsehow.

It is not uncommon to hear, that the Drupal developers are usually paid more than some of the competition. You can have a Wordpress site of some types built cheaper, than on Drupal. A blog site, for example. But a part of this price curve is that Wordpress, being very popular, has developers who code “on the lap”, producing sub-standard web sites that cost less. At the same time, if you want to start thinking of some of the functionality that Drupal has out of the box, and Wordpress doesn’t, you start counting the paid modules that you would have to use. A module for SEO, a module for more flexible fields. A module for better search. A module to display content in listing via UI. And then you realize that your modules and plugins basket is above a hundred of dollars. Not bad - people have to monetize, why not. I am not criticizing Wordpress, merely noting a difference.

With Drupal, you get all those modules either out of the box or for free from the Drupal site. Why? Because selling modules is not how Drupal developers monetize. Drupal developers monetize their work by building sites and themes, and writing custom modules where needed. The bulk of some strong and very high quality modules, however, is available for free. Search, field types, listings, SEO - either in Drupal core already or available for free download.

The most powerful and important modules are supported by large companies. Thus, they end up being very secure and efficient. It is not uncommon for developers from different companies to work on common modules.

Thus, Drupal has been providing superb quality of code for it’s most popular modules, and that for free. Hundreds of thousands of man-hours in Drupal core, hundreds of thousands of man-hours in the contributed modules, sponsored and developed my some serious companies, and available to be used for free. These are some very serious and powerful tools that Drupal has.

6. Drupal has a great Community.

You would probably ask, why is this here at all? But if you are a developer, you won’t be asking this. For everyone who is learning a new CMS, or has questions, it is imperative to have a community that can help you understand the tools better.

Drupal has some very well documented APIs, and very rich community at StackOverflow. You can find almost anything you want to know. And if you can’t formulate the questions, or need a general direction, you can always find people to help you. I am saying that because I went through all that. Giving back in code, in counsel, and in help, is a very good tradition for Drupal.

7. Drupal has a powerful SEO.

Yes, I wanted it to be seven. Again, thanks to Drupal’s architectural flexibility, SEO can be very powerful and easy with it. Drupal 8 has a lot of SEO tools out of the box, such as basic schema and clean urls support. Then, additional tools such as extended schema, different types of SEO smart tags, automatic meta-tags and URL aliases generation is available to download for free.

Conclusion.

So these are the reasons why I love Drupal. Drupal is not perfect, of course. If you read my blog, you can see some of my criticism where it’s due. Overall, however, viewing all the aspects in perspective, Drupal is pretty awesome and powerful, being flexible and robust on one hand, and walking a fine line of providing unobtrusive out-of-the box solutions and powerful tools on the other hand. Big words aside, it is one of the monuments to human intellect and collaboration. If the world was like Drupal community, we would surely have gone to Mars by now.