I’m a web designer. I know how to design a website (using tools such as Figma) and translate this to HTML and CSS. I don’t know how to program. So when I use a Content Management System (CMS) to build a website it needs to be usable without me needing to write any PHP code.
The past fifteen years I’ve worked with all the big Open Source Content Management Systems out there. Specifically WordPress, Joomla and Drupal. The last few years I have worked almost exclusively with Drupal. Here are my main reasons for picking Drupal for every project:
- Drupal is very flexible. You can build a simple website with only 10 pages, but it also enables you to create complex websites. Such as communities where users interact with each other. WordPress is great for blogging. Joomla is awesome for a simple site. But if you want to extend beyond that, you will face difficulties. Those systems are not suitable for demanding website builders like you and me.
- You can easily extend the functionality of your websites using the 4.700 + modules that are available for Drupal 9. The same can be said for WordPress and Joomla, but the big difference is that the Drupal modules are all centralized on the same website. Meaning you can download them all (for free) on Drupal.org. This is also the place where you can post your support questions or report a bug. Modules can also easily switch maintainers because all the code is all open source. This is different from WordPress and Joomla where you have to pay for most modules. Support is depending heavily on the creator of the modules (or plugin). What if the module maker has moved on or lost interest in the project? You might be left hanging with a buggy website.
- Despite Drupal having the reputation of being hard to learn I’ve managed to come a long way without ever learning to write PHP.
Examples of websites I’ve built with Drupal
The best way to illustrate the power of Drupal is by telling you about some complex websites I’ve built with Drupal. And keep in mind, I've built (mostly without any external help) all these Drupal sites without touching any PHP code.
Video sharing site for a University
For one of the biggest universities in the Netherlands I designed and built a Drupal website which enabled users to share video’s. These video’s could be liked, commented on or flagged as inappropriate by other users. Like YouTube but smaller.
Community for work reintegration specialists
For the UWV (the Dutch Employee Insurance Agency) I’ve created a community where specialists can share information with each other. They have the ability to register, login and share best practices or ask each other questions. I’ve also developed sort of an internal Twitter. People within the community could post a short message on a wall, such as a question or an external link to something which might be useful for members of this community. Other users were able to comment on this message.
Within the same website I made it possible to create multiple regional instances (called domains in Drupal). These regional sites share the same Drupal installation as the main site and community, but have content which is tailored to a specific region. A regional administrator is assigned to only post and edit content in their own domain. This has massive implications when you have 50+ sites using the same Drupal installation. Instead of individually updating and maintaining all regional sites you just have to make sure the main site is up to date. Learn more about how a Drupal mulitsite works.
Another advantage is the sharing of content within the regions and the main site. A news post, for example, can easily be shared between multiple domains without having to copy and paste the text.
Reddit like website for media recommendations
A few years ago I built a website where people could ask each other recommendations for movies, music or tv shows that they liked. My idea was to go past the filter bubble. If you get recommendations on Netflix (or any other service) they are usually hit or miss. The aim of the website was making recommendations a human interaction instead of an algorithm deciding what you would like. It never really took off so I’ve taken the website offline since then.
But still, I managed to create a site where people could post a recommendation request and other people could comment with their recommendations. The requester could also give points to the people providing the recommendations in case they liked it. I also created a leader board showing the users with the most points.
Another cool feature was the sorting of the requests. Instead of relying on post date I created a way to sort requests by radioactivity. Which meant that every request had an initial radioactive value which decayed slowly over time. However, when someone made a recommendation, the radioactive value would get a bump. This way the most active requests would be on top of the list.
Check these other complex sites I've built with Drupal.
The downside of Drupal
As cool as it is to build web applications without having to write any PHP code there are some downsides to Drupal:
- The community is geared towards developers. So when you’re stuck and are searching for a solution you usually end up with someone suggesting you paste some PHP code in some unspecified file. This can be frustrating. Especially since most problems are easy to fix with changing some settings or using a different module.
- Learning Drupal takes time. As mentioned in the previous point you will have to do a lot of exploring on your own. You have to make a lot of mistakes and try out different things to see what works. This can be annoying and time consuming but in the end will help you to be a better Drupal web designer. Every time you’ve figured out a Drupal problem by yourself will help you develop your skills which will benefit you in the long run.
- Sometimes you want a feature or functionality which is not available as a module (yet). In my experience I can build 90-95% of the required functionality combining different modules. For the remaining 5-10% I just accept that it can’t be done at this moment. Another option is to ask a developer to create a module to bridge the gap. This is a costly endeavour and should only be done if it is something you can’t go live without.
Have I convinced you of picking Drupal? Or do you want to check if Drupal is suited for the project you have in mind? Let me know by leaving a comment.
P.S: Don't forget to subscribe to my Drupal newsletter and receive an update (and more) when I post a new blog.