I build all my websites, web-systems and web-apps with Drupal ( Drupal 7, Drupal 8, Drupal 9, Drupal 10) -- a powerful website framework and "content management system" (CMS).
I do this because, from all the free web-frameworks, Drupal is the most expressive: it lets me build anything for you, from a very small site to a highly complex e-commerce site, or one with highly complex business logic – all the while remaining easy to use form your perspective.
Advantages of Drupal
Let me explain that in more detail, and show you why Drupal has many advantages for you:
- Drupal is one of the leading web-framework which allows you to create anything from small sites to mega web-systems with e-commerce and social-networking, much of it by simply adding plugins, called “modules.” Compared to building a site from scratch, this can be done much more rapidly.
Below is a comparison of Drupal with some other systems. The consensus is hat Drupal has the most range and can do the most.
For that reason, you will find Drupal as the implantation framework for many high end websites.
In my work, I have done a large range of systems with Drupal, from small sites, blogs, to mega e-commerce systems, or intranets with very complex business logic.
- Drupal is "Open Source," which means it is FREE. The same is true for the thousands of add-ons ( module and themes ), which are all free -- that is not true for many of its competitors (see Wordpress below).
- Drupal is a "Content Management system" (CMS) which makes it easy to enter and manage content yourself without ever having to write any code. For you, that means you can input text or data in an interactive form, and thereby build your pages and menus easily yourself, without having to program.
Basically, I setup the site, its structure and workflow for you to the point where you can run it yourself and enter text, data, pages, just the way you want or feel comfortable with.
- Drupal is modular: the base functionality can be expanded using thousands of add-on modules, like for example blogs, forums, comments, contact-forms, etc. Many of these modules offer the most commonly used base functionality, such as login and registration, user-management, security, etc. All this is readily available and does not have to be developed – compared to a site that is started from scratch.
- Because there are many thousands of these modules, you can build up a system very quickly without having to write a line of code.
- From a Programming Standpoint, Drupal 8 / Drupal 9 has been completely revamped, and is now a state-of-the-art PHP based system.
- Drupal has a good Security team (let me stress that point: it HAS one, which is more than most other systems), which keeps modules and Drupal’s core up to date as much as possible. For that reason, Drupal has one of the best enterprise level security policies from any competitor.
Drupal vs. WordPress vs. Joomla vs Typo 3
Drupal is of course not the only CMS system out there. So let me compare it with some other leading open-source and free systems.
WordPress vs Drupal
WordPress is by far the most common CMS system in the world. It started out being used mostly for blogs and small sites, but today it is also used for some bigger sites, including e-commerce. Of all CMS systems, it is the easiest to set up for a novice: you just pick a theme, and start to enter text. However, out of the box, it has a more limited scope, with blogging and small brochure sites still being its core market. You can expand it easily through various plugins, each one adding functionality to the site -- but at one point, especially for bigger sites, you will quickly hit a limit of what can be done easily and then it gets hard, too, requiring custom programming.
Now let’s compare this to Drupal: just like with WordPress, you can build larger sites easily just by adding and configuring add-ons called “modules.” However, you typically will be able to push the complexity out-of-the-box much further before you hit that wall where you need to program. Take two simple examples: 1) Building special lists of items: In Drupal, you configure a “view” in the interface; in WordPress you have to program a custom loop. 2) Modeling data: in Drupal, you do this very easily by adding data-fields to content-types; in WordPress this is nowhere as mature.
But Drupal’s power comes with more complexity, and it is harder to learn how to setup a site with Drupal. That’s why it’s helpful to have an expert like me assist you. Once the sites are setup, both WordPress’ and Drupal’s usability is comparable.
So the general consensus is:
- WordPress is great for blogs and small to midlevel sites, because it is easy to learn.
- Drupal is great for more complex sites, but it is harder to learn how to setup the site.
This is the reason why WordPress has a more installations (there are so many more smaller sites), while Drupal has more range of expression, which means you can do more complex stuff more easily, and is the reason why you will find it more often in complex sites.
Food for thought: If you think your site is small now, could it ever grow in complexity? Bet on a technology that can grow with you.
One thing that both WordPress and Drupal have in common is that both have very large communities behind them. There is one difference: In Drupal, virtually all modules are freely available and maintained by the community (required by license); while in WordPress (and Joomla), there are also commercial modules, often very desirable ones.
Some Wordpress plugins and themes have free versions, "freemiums," which can be upgraded to a premium version at some cost. Now, I understand well that we as programmers have to make a living, but somehow it is acceptable with Drupal that you donate your time and efforts to maintain or improve (through patches, etc) some module, and thereby give something back to the Drupal community; but not so much with Wordpress (outside of core development).
Thus, there are two very different business models, if not ethical views, at play: The feeling with Drupal is, that we as a community aim to make Drupal and its modules better. Wordpress plugin development, however, can be profit driven.
For you, these prices may be marginal, but taken as a whole, it can nickel and dime you to death, too.
Besides having a price-tag, that can have other cons: if you need a fix or new feature, you have to rely on the commercial supplier, and that can be tricky.
OK, you always have the code on your system (because you paid a fee), and if you can program you can always fix it, but these fixes should become part of the general Plugin to make it better. With Drupal, this is relatively easy: the code is always public, and you can upload a 'software patch, which will get tested by the community. This is not always possible with Wordpress, because commercial plugins have no public code to share.
On a completely personal note, I much prefer the programming model of Drupal over WordPress. While Drupal is much harder to learn, to me WordPress feels like old style PHP. With Drupal, there has always been a separation of concerns, separating the logic from the display. This has been carried further in Drupal 8 (Drupal 9), with real Object Oriented paradigms. To me, as far as programming and software architecture, while hardest to learn, Drupal is clear choice.
Joomla and Typo3 vs. Drupal
Joomla is kind of in the middle between WordPress and Drupal. It is not as easy as WordPress and not as hard as Drupal, nor can you easily do as complex a site as Drupal. Again, for me, and maybe for you: why settle for something that can do less?
Typo3 is a CMS system that is mostly found in Germany and Europe; it is largely unknown in the rest of the world. For that reason, its developer base and community are also much more limited.
Why you need my help with Drupal
Drupal is pretty awesome, because you can "wire together" a lot using thousands of modules. And that's a major advantage to you: you can build quite a bit of cool stuff just by configuring the system. But as stated above, it is not always that easy, and you have to know what you are doing.
At explained, Drupal has the most range of all the CMS system (you can do the most with it), but it is also the most complex. And at one point, sooner or later, you will hit the limits of what can be done through simply configuring Drupal, and you have to get into the code. Or you have specific business logic which needs to be encoded correctly in the software, etc.
I use Drupal elusively since 2008 and am an expert with 25+ years as a software engineer who knows how to skillfully leverage the strengths of Drupal and avoid its weaknesses: I use Drupal for what it is good at using "The Drupal Way." For the rest, I write code, and do it right!