Drupal or not Drupal?

Posted on 22 Jul 2018 by Alexei Raiu
To be or not to be

Should I use Drupal for my website? Should I use Wordpress or Wix instead? Or, maybe, hire a team and build my site with NodeJS or Python and Django? This will address the technical complexity behind this question.

The general rule of thumb is this: The more flexible the system is, the more work it will take to create something of it. Imagine Duplo vs Lego. Duplo is easier, with larger parts. It's easier and it's better suitable for kids, but if you want to make something advanced, you will find yourself too limited. Lego is much for flexible, but also much harder, you probably won't give it to a three-year-old. If you need a very custom thing and have enough money, you may 3d-print a thing for yourself, which is much harder than Lego, if you will also design it in a 3d editor. With web sites, the situation is roughly the same.

Site builders. Wix and Squarespace.

If you want to build a "Duplo" website, you can use a provider with a site builder, like Wix or Squarespace. You can laugh at the comparison - but really, if you need something simple, why would you need anything more? You can use an UI to drag images, text, create links, and build pages for yourself from larger blocks without writing code.

With UI builders, you can build your first site easy and quick, and have an overall pleasant experience, where you can do the changes yourself and not have to pay anyone else to do it. Add an image, some text, and "There you have it, a professionally looking web page." This works because modern technology allows the service providers to create a set of fancy templates, add a possibility to change some attributes of these presets via UI, and then expose them to a user. You can thus easily create web sites for yourself out of those presets, pretty much like building a toy with Duplo. If, in fact, Duplo is what you need, then there is no reason to go for something more complex.

But there are some considerations as well. If you later decide to grow your site's complexity, grow beyond a simple blog, shop, and a small set of draggable options, and want to add a complex structure, advanced functionality, or other users to your site, you will hit the wall. Another issue, is migration. All data and media is stored on the server in a custom format, and you can't export it in a friendly form if you want to move somewhere else. Most site builder providers will charge thousands of dollars, claiming that they would have to develop custom scripts if they are to export your website (as if you were the first client to leave).

To cut to the core, if you know you want a very simple site, and you are absolutely sure you won't need to grow beyond your site builder's limitations, then choose a site builder. You can also choose a site builder for a temporary site, realizing that you will need to rebuild if you decide to brow beyond it.

CMS. Drupal VS Wordpress.

Now if you want to have a complex web site, you may want to consider some powerful CMS (Content Management System). I suggest either Wordpress or Drupal. Now about Wordpress VS Drupal. On a larger scale, they repeat the Duplo vs the Lego paradigm. Wordpress is easier and less flexible, Drupal is harder but more flexible. This makes Wordpress desirable for small websites, especially blog sites, and Drupal desirable for websites with the complex architecture.

Both Wordpress and Drupal store media in file system, and content in database. You can always extract and move/migrate to a different hosting or another CMS, or between Wordpress and Drupal, without being a hostage to your provider, like you are with site builders.

Wordpress started as a blogging system, and though it now has extensions that allow adding custom content types and fields, they are overrides to the base Wordpress architecture, rather than native solutions. However, the admin interface is much easier and more unified in Wordpress, and thus, if it's a simple web site with a blog, a few pages, and possibly a shop, you will find Wordpress easier to use.

Drupal has built-in SEO, content types, and a flexible field system out of the box, which means, that immense flexibility and scalability are native to the architecture. While you can also build simple sites with Drupal, it has a steeper learning curve and as of this moment does not have as powerful media support. It would only make sense to start with a small Drupal site if you know that you will be extending it with more complex architecture in the future.

Thus, if you are building a smaller site and prefer easier UI, use Wordpress. If you prefer a more flexible and robust website, that you can scale and extend better, and the steeper learning curve does not scare you, then you should choose Drupal.

Drupal and CMS VS CMF (Python and Django, Symfony, Ruby on the Rails).

Now, there is one more step in flexibility and complexity - using a CMF rather than a CMS. A CMF is a Content Management Framework. While Drupal and Wordpress are great to start websites, they still have certain presets - they have cores that have their own handling of database, APIs that dictate how to write extensions and plugins, and database layers, own media management tools, etc. That is all great when it is used to allow to create a website faster, but for some more advanced developers, that can be a useless load. This is especially true for the so-called "web applications" like search engines, web email applications (Google has a whole suite of apps online). These apps usually are so different from the content websites in their anatomy, that they have their apps built on frameworks. Frameworks are to CMS as CMS are to site builders - a step down in flexibility and complexity (and step up in the cost of development).

If you need a website, rather than a web app, you don't need to use frameworks - that will only blow up the development time and expenses. In fact, Drupal was built in such a way, that it can proficiently handle even the web apps - those of them, that are built about arrays of content. Due to it's flexibility, Drupal can easily allow architecturing, categorizing, and cross-referencing wildest data entities and sets of data entities.

Conclusion.

If you need a website, that you would own, that would be easily exportable and would not hold you hostage to the hosting company, CMS is more preferable then a site builder. If your site is less complex, Wordpress is preferable, and if your site is complex, Drupal is preferable. If you are building a non-standard site, SaaS (Software as a Service), or a web app, then you may end up using a framework. However, if you are building a data-based web app, Drupal is still an option.