Drupal THE BEST Website Creation tool out there.

Hello everyone,

My name is Nicolas Bouteille, I am a French engineer specialized in the web. Not just development, I also do design, digital marketing, SEO... anything that is fun and is related to the web, including writing articles and training people. 

Since 2010 I have specialized on Drupal up to the point that since then I actually only do Drupal, and I only want to do Drupal because it simply rocks :)

In this video I'd like to convince you that Drupal is the best solution in the market in terms of website creation.

Drupal is usually introduced as a CMS which stands for Content Management System and the definition behind this designation would be a tool ready to use that allows you to create and format contents or products, publish them, but also interact with your visitors through comments, questionnaires, payments, a forum maybe... lots of stuff.

And let me insist on the fact that a CMS is a tool ready to be used and that can provide you for free all the common features that you see all around the web. Isn't that great?

And let me add something very important as well: you can add any custom needs to those tools through custom coding. So let me ask you this: Why would you not choose to base your project on a CMS ? Why would you choose to pay a development team a whole lot of money to create from scratch what already exists for free and that can be extended at will if need be? 

And you might be right to answer: in order to obtain something more stable, more secure, and easier to maintain that what a CMS can provide me with. And since stability, security and maintenance are really important factors for any project in my opinion, I would totally share that feeling regarding some solutions like Wordpress and Joomla — just to mention the ones that are often compared to Drupal. But not Drupal.

See, Wordpress and Joomla are real CMS in that they were created for people who don't necessarily have technical skills.  Which means that the plugins you can install on those two systems are supposed to be plug and play. People should be able to configure them and use them very easily to achieve their goals. The only way you can make that possible is by making some choices FOR the end-user so that he/she has the less possible options to choose from. It's logical, the more you make something easy and quick to use WITHOUT requiring any specific knowledge, the less power you can give.

The consequence of that is that each one of those plugins usually meets a specific use case or scenario from which you cannot really escape without custom coding. Now the good news is, because Wordpress is meant for non technical people, they don't want you to have to do custom coding so the idea is to create a new plugin for each possible need people can have. Which explains why there are so many Wordpress plugins... millions of them... but now let me explain why this is not a good thing...

If the rule is to not make any plugin complicated so everytime you need something a bit different, instead of making what already exists more complexe you actually build another new separated plugin... if you do that, you actually end-up having a lot a of similar plugins. Plugins that are not exactly the same, but kinda work the same or anyway share a common behavior. And technically this means that they could share some base code.

If they did share code, it would be very good in terms of maintenance, stability and security. Because fixing an issue at one place would affect all plugins relying on that same piece of code. 

But to make that possible, creators of plugins would need to work together, they would need to follow strict rules and follow standards... BUT that would make creating a plugin more complicated. And Wordpress, Joomla and Drupal are all Open Source projects. Which means that the people that actually make the projet grow by contributing new plugins are the same ones that actually use the tool. And since Wordpress and Joomla were designed for the non-technical end-users, they are the ones who create plugins. So you cannot impose them complexe rules for creating plugins. You need to make plugin creation as simple as using a plugin. So the reality is that Wordpress and Joomla plugins don't share code. So you get a lot of duplicated code, created by people that may not have high technical skills, which indeed can make you run far far away from those solutions is you care about stability, security and maintenance. And trust me you want to care about those! Even for simple projects.

So, why is Drupal different? Because Drupal is actually not a CMS. Drupal was never targeted to the non-technical end-users. Drupal was made for the developers, for the people who actually create web sites everyday, not for those who use them in the end. Drupal is a CMF which means a Content Management FRAMEWORK, not System, and framework means tool. 

Plugins in Drupal are called modules. There are many less Drupal modules than Wordpress plugins, but each Drupal module can cover the use cases of thousands of Wordpress plugins. And to tell you the truth, you can achieve more with the Drupal modules than what can be done with the millions of Wordpress plugins. Because each Drupal module is like a tiny framework on its own. A module does not make any decision for you ; instead it tries to cover all the possible use cases the website creator could face. The same Drupal module can be used by a website creator to achieve many different scenarios and many different features. So instead of needing to discover a new plugin for each new scenario, website creators who rely on Drupal get to use to the same modules all the time and get better and better at using them. How good is that?

There is another reason why there are so few Drupal modules comparing to Wordpress plugins. It's not just that each module has tons of options so that you can do anything with it. Because if that were true, each module could be a real nightmare to master even for website creators with experience. What makes Drupal so smart and so well organized is that each module is supposed to handle one specific type of task and sticks to it. 

You know in a web agency for example, you have the project manager that gets the clients needs and sees that the project reaches them, you have the developer that builds the technical architecture of the project, you have the designer that makes it look good and maybe the SEO specialist that makes sure people find the website online in the end. So each one of these team members get to work on a specific type of task, which makes them get better and better at their domain and when the project manager needs some type of job to be done, he knows immediately who to ask. Plus, if the developer of the team learns new skills or new ways to make coding more secure, it will affect all the projects of the agency because he/she works on all of them. So making an improvement in one field affects all projects. Cool right?

On the other hand, in a web agency where each individual acts as a freelancer, receives the client needs, takes care of the development, the design and the SEO of all its projects, it's different. Cause if one person makes improvements in any domain, it only affects his own projects. 

So where am I going with this metaphor?? Well, say you want to publish a questionnaire, receive an email every time someone fills it up and then access a list of all received submissions in your admin.

Basically a Wordpress plugin would handle all of this from A to Z just like a freelancer would do. So the mechanism behind choosing the questions, sending the email, making a list of all the submissions... all of this would be handled by one single Wordpress plugin.

In Drupal, you would use one module for building the questionnaire, one other module called Rules, to send the email every time the form is submitted, and a third module named Views to list all the submissions. So there would be one module for each type of task, just like our well organized web agency team.

And because Rules is a generic module that deals with triggering actions based on specific events, if tomorrow you need something different like sending an invoice every time a payment is made on your website, you will still use Rules for that too, whereas with Wordpress you would need to find a new plugin specifically for this new use case. And because those plugins are like freelancers, any improvement made on one of them would not benefit the other.

Now I was talking about Rules but the same goes with Views that deals with listing content in a smart way. You would use it to list the submissions received regarding your questionnaire but you would also use Views to summerize all payments made on your site or to just make a list of articles... No matter how many use cases you face, you will always reuse the same modules for the same type of task. And as time passes those modules get more stable, more powerful and more secure.

While we're at it, let me give you another great consequence to not having too many modules in Drupal. For a module to actually get more stable, powerful and secured in time, you need people behind that. Having a lot of people using each module is great to find bugs and ways of improvement... but for those improvements to actually happen and be done, each module needs to have maintainers. Developers who volunteer to be responsible for the module and work on it, for free. And because this is not a paid job, it is good to have at least 2 to 3 maintainers for each module. And sometimes maintainers don't have enough time to take care of the module anymore so they ask to be replaced. This is where having not too many modules in Drupal helps. Because each module is used by a lot of people, it is much easier to find at least three maintainers for important modules and to replace them quickly when it becomes necessary. So basically it allows to centralize the task force of the community in a few projects instead of spreading it in a lot of tiny similar plugins, plugins that eventually get abandoned because the person that released it does not have time to take care of it any longer and there's no one to replace him or her.

I hope you're starting to realize that Drupal modules are of a better quality than the plugins of other solutions. Now let me give you another very obvious reason to support that statement. Remember that I said earlier that Drupal was made for the developers and that it is a Framework, not just a plug and play CMS. For those reasons, Drupal is not easy to handle at first because there is a lot to learn and a lot of rules to follow. And that has become even more true with new version of Drupal : Drupal 8 that now relies on Object Oriented Programming and Symphony 2. You don't need to know what that means but just that it makes learning Drupal even harder while improving its stability, security and especially its maintenance. So Drupal cannot be used by non-technical people, and even amongst the developers who choose Drupal, only those who are patient and devoted enough to pay the price of the steep learning curve can finally benefit from all Drupal has to offer. That gives you an idea of the kind of developers working with Drupal, who remember are the same ones that are supposed to create new modules since Drupal is Open Source... And because contributing modules to the Drupal community is even more difficult, only the most talented ones actually do it. Which indeed reflects the quality of the code behind each module and Drupal itself.

All of this to say that if you care about stability, security and maintenance, you should not be scared to choose Drupal as a framework for your project at all. On the contrary, I would say that the Drupal community is today, in my opinion, the best organized and talented web agency in the world. 

And I was going to add that it's free... but that would be hiding the truth... the truth is that as the project owner, you cannot just install Drupal for free and hope to start using it yourself. You need to pay trained developers first to use those free modules to create your project. And Drupal developers will charge you more than Wordpress developers would. Which is fair because they invested a lot of time learning Drupal which level of complexity cannot be compared to Wordpress. But also because for the same reasons, Drupal developers are much harder to come by than Wordpress developers. So yes, choosing Drupal will cost you more than the other CMS. But I say if you want real quality, basic CMS like Wordpress or Joomla are not an option. And if you were to not choose any CMS and actually pay a development team to build your project from scratch, it would cost you way much more than what going with Drupal anyway. But more importantly, the quality of the code they would come up with could never equal the one of Drupal that is the result of thousands of talented developers working together for years in a smart and disciplined way in order to come up with the best website creation tool possible.

So if you need to remember one thing : the reason why Drupal is so great is not about how many modules it has or what they can do... or anything... it's because of the way the Drupal project and its community are organized, so it's about something anchored deep in Drupal's DNA. Something that won't change and something that the other solutions don't have.

Some people say there is no best solution. That each CMS can be the best option depending on the client needs. If the client needs a simple website go with Wordpress, if the need is for an eCommerce website Prestashop or Magento would be the way to go, and only for complexe project would you choose Drupal. I disagree with that. I believe once you master Drupal, you can make simple websites very fast and eCommerce websites almost as quickly as with Prestashop. I say he who can do more can do less. So why waste time learning about multiple CMS when you can learn how to master one comprehensive tool that is Drupal and then always use it on any project?

But see how I did not simply say "choose" Drupal, I said choose to "learn how to master Drupal". If you choose to go with Drupal, you should not plan to start a project with it before you know it well enough. You should attend a consistent Drupal training first. And guess what, I made another video to tell you why this is so important. So if I convinced you that Drupal is present and the future of web creation, I definitely encourage you to go have a look at my other video.

The link is in the description ! See you there. Bye.