And Now For Something Completely Different

Over the last several months I have found myself working with a Content Management System that I would never have chosen to work with of my own accord. Why? Because I am a WordPress developer, and so, this is my tool of choice.

I know how it works, the finer details and how to build an incredibly custom user experience both in the admin and the frontend of the website. But, for this project, there was no WordPress. No, for this project, there was Drupal.

Drupal, of which my only experience had been an inherited website that had been outsourced at some point, only to return as an unnervingly fragile application, that would and did, break at will.

Now, this post is not really going to be a WordPress developer telling you umpteen reasons why WordPress is better than Drupal. Nope, not today.

You see, I’ve realised that as developers, we can hold such subjective opinions on what the best CMS, framework, library etc is, that it blinds us from trying something new, and really all this does is pigeonhole us and prevent us from seeing a bigger picture. Maybe even appreciating that another tool might do something a little better.

So, with that said, instead of telling you all the things that have really ticked me off about Drupal, I’m going to tell you all the things I liked about it, and maybe even something it does better than WordPress.

Also, now is probably a good time to note that this wasn’t a monolith Drupal website, it was used as a headless/decoupled content management system for a website built with Next.JS.

Content Types Vs Post Types

Starting with a small one. I really appreciate the way that different content types in Drupal are referred to as just that. Content Types.

I found that when I first started working with WordPress, that term Post Type was misleading. A Post Type could be a page, post or some other custom type, but always referred to as a post. The history behind that is probably that WordPress was originally a blogging platform.

The Clean Admin

While it did take me a little while to get used to, I do actually quite like the admin now. I like how clean it is. No junk.

With WordPress, you can find that when installing plugins, you are all of a sudden are being spanked with spam messages in your own admin. I appreciate that that doesn’t happen in Drupal.

I would also just like to state for the record that I’m not really a “there is a plugin for that” type of developer. I want to know all about the code in my install, so would normally go down the custom development route.

So, in case you are curious. I’m using the Drupal/Contenta CMS with the theme Seven.

JSON:API

As mentioned in the previous point, I’m using Drupal/Contenta CMS, which is an API first install. I have to be honest that using the JSON:API did have some drawbacks, and at times was a real humdinger to work with, but, I can appreciate now, the ethos of only the minimum response by default.

By this I mean that, when querying the api for details on a page, it will only return the info on that page. If there are linked entities such as taxonomies, users or other details (like paragraphs (thats basically a component)), you have to specifically tell the api to include that data.

I also found the filtering on the api very powerful. With WordPress I have had to create custom endpoints in the past to get some functionality that the default API didn’t provide. Not the case with Drupal so far.

Community Support

This one is not to say that WordPress doesn’t have great community support, because it does, but I was really pleased to see that it was also the case for Drupal.

There were several times in development when something was not right in Drupal, or it was not quite doing something I needed it to do, and to find such great community support around these issues and the willingness from the community to write patches that could help achieve these goals was priceless.

That support is vital. I have worked with a couple of other Content Management Systems in the past where that support is not there and solving mysterious bugs just takes so much longer.

Conclusion

Ok, I am stopping there. So what is the takeaway here?

I am glad that I have had the chance to actually work with Drupal because it does give me a better appreciation about what I like and do not like both with WordPress and Drupal. I feel I can now provide an objective opinion on why I prefer one over the other.

But this post is not really about choosing one over the other. I am still a WordPress developer, but I am going to be working a lot more with Drupal going forward.

One tool is not right for every job.

Here are some links to items mentioned above:

;