Drupal

I build all my websites, web-systems and web-apps with Drupal ( Drupal 7, Drupal 8) -- 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.

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 (link).

  • 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.   
  • 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. 
  • Drupal and also be used as a pure Data Server (using REST webservices).  This can then be used in a so called “headless” system, where the display is managed by a completely different application, often a JavaScript framework like Angular JS, Ember, React  JS, etc.  The bleeding edge would be an AI voice-recognition front-end, and connect that to a Drupal backend to store the data.
  • From a Programming Standpoint, Drupal 8 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:

  1. WordPress is great for blogs and small to midlevel sites, because it is easy to learn.
  2. 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.  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.

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:  you embed PHP logic directly in HTML.   With Drupal, there has always been a separation of concerns, separating the logic from the display.  This has been carried further in Drupal 8, 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.

Summary:

For me as a professional software engineer, Drupal is the clear choice: I don’t mind the complexity, and I can get the most done for my customers, in the cleanest way.

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!