46 comments

[ 346 ms ] story [ 4908 ms ] thread
The part about Drupal I really liked was the ability to handle structured content, not just a bunch of posts of free text written in some WYSIWYG editor. It required a bunch of modules, but later was part of the core CMS. This was really powerful to create specific workflows and ensure consistency.

But for a small site Drupal got far too complex with later versions, and upgrading was pretty much impossible. Especially if you used any modules, it got very messy very quickly. Not sure how much better the other CMS are at this.

Dozens of headless CMS systems have far better content models than Drupal.

Often Drupal is used because it has been used for x years and change is hard, non-technical managers are hired on account of their years of experience “building with Drupal”, and everything is shit.

It's hard to agree with you but I won't argue. I worked with many CMS and I've not seen anything better in terms of the compound metric architecture + code-quality + support. Time will tell what users love more.
Don't think that there are many headless CMS that has better content models than Drupal. Basically Drupal has entities, bundles, fields, all can be stored in yml configs and it can be easy extended. Could you please provide examples?
Better is relative, but from Strapi and DatoCMS on the lower end to Contentful on the higher end, there's a whole lot of possibility outside of a first-generation, monolithic CMS like Drupal.

Drupal can do things, and in the hands of a developer who really knows the platform it can do things well. But I've been Drupal-adjacent for a decade and the vast majority of teams I've encountered landed on Drupal because a consultant they can no longer afford convinced them that it was the answer to all of their web publishing dreams and left them with hot mess. Especially in the civic and non-profit space the fact that Drupal powered the Obama campaign's web site kicked off a long era of cargo culting.

I'm not familiar with all CMSs you mentioned but aren't they also monolithic (compared to microservices)?
Self-hosted Drupal is an open source, community run project, that is free as in beer. A lot of headless CMS are SaaS products, it seems. Apples and oranges.

Is there a good resource listing/comparing the headless CMS options that are equally open and free as Drupal?

To my knowledge, only Strapi CMS is comparatively free/open source headless CMS, in that it can be self-hosted and is not strictly SaaS. There's also a community of plugins, which also seem to be free/open source. Curious to hear of any others, as like you said, most are "freemium" SaaS products.
Drupal users tend to forget that "entities" and "fields" are the vaguest possible nouns they could have come up with. It's like defining a data type called "item" and just making it a struct with an unbounded string, a timestamp, and an owner. It's a nightmare to learn.
Don’t get me started on “vocabularies”.
Nice! I left Drupal at the 7-8 transition stage, it was kind of hard to upgrade. And I actually said something like "Maybe I will come back to Drupal when they release 10". Now it's 10 and it's time for me to think about coming back.
You are not afraid running into the same problems again when v11 comes?
After all the drama that happened, I think they have learned their lesson quite well.
It won’t be near as tough. I’ve been in Drupal since the 6->7 transition. D7 was still procedura with a homebrew event system (hooks). D8+ is OO based, near total rewrite built on top of symfony and a few other well managed PHP components. The change was drastic and removed 90% of the hook system so no D7 code could run on D8 if it wasn’t a pure php library. Upgrading from 8->9 though is fairly simple on a requirements level and only gets tricky if you have some heavy customization. Each time a new major version comes out now there is an equivalent old version that still has all the deprecated code. So for instance moving from 9->10 we have 9.5.x that will be supported for the next year and has all the same features available to it as 10.0.x. So it is just a matter of tracking down deprecated code (either Drupal 9 or PHP < 8.1) and refactoring it, then running composer update. 10 to 11 will follow the same pattern unless there is some massive unforeseen change. This process can be accelerated by paying attention to the 6 month minor releases that mark code as deprecated and direct devs to the appropriate replacement. Odds are really good that a well maintained 9.4.x site can jump to 10 with minimal pain.
Hooks were great from the module writer point of view.

They lost a huge part of the community when they ditched hooks.

It was also the time when Drupal became too important for dozens of businesses to let it run in a meritocratic way.

I am in love with Drupal . It pays my bills for almost 15 years now.
Drupal is great and gets better with every release! It was a tough time making the technological leap from the D7 to the D8, but now it just evolves.
Im glad Drupal is still thriving, but at a certain point it became discombobulated enough that for simple use cases it made more sense to use WordPress and for complex use cases it made more sense to use Laravel. Drupal still holds a great niche for highly collaborative sites and Enterprise CMS. I wonder if it will ever find a resurgence to previous levels of popularity or will slowly fade into those niches.
This has been our experience as well. Laravel is miles ahead of Drupal and can be used to essentially build anything regardless of complexity.

The only current use case I've seen is in legacy situations primarily because some IT dept for a local govt or university "knows Drupal" and so that's where their comfort level is.

EU institutions have been building websites on Drupal for around 12 years by now.
I moved from building sites on WordPress to Drupal about 5 years ago and never looked back. Thankfully I’ve only ever used the new (8+) architecture so I’ve never had to deal with all the procedural stuff.

I enjoy using the CMS immensely. We build sites with a lot of well-structured data (mostly transit, and other government) so Drupal is a great fit. We also use it to power some services and it works great headless. I don’t get the derision I see on HN about it a lot, but it doesn’t matter. It pays my bills. I don’t need other people to like it. There’s certainly a large community of people who do.

Yeh, ignore the derision, it's the same people who say that PHP sucks.
Were there any resources (books, websites, videos, etc) that you found especially helpful as a WordPress developer trying to learn Drupal?

I sling WordPress everyday and like it for the most part, but I'd like to have some Drupal knowledge in my back pocket. WordPress isn't always the best fit for some projects.

So I'm on the hunt for "Drupal 101 for advanced WordPress developers" type material.

Thanks in advance!

Unfortunately, no. I was hired as a WordPress developer on a team that did a lot of Drupal work, so I was able to gently ease into doing small projects. Understanding the Drupal render pipeline will help you immensely, but it is complicated. Merely being able to understand entity types, fields, and views will put you leagues ahead of what WordPress can do for data-heavy sites. The majority of what I do with Drupal is configuring entities, fields, view, modes, and views. After that, it’s basically just learning to twig syntax (not my favorite part of Drupal) and the various pre-process hooks to make data available to the theme. Once you have the core functionality pretty well understood, it’s easy to extend it because basically everything in Drupal already extends Symfony.
Ah, gotcha. Great stuff here to start digging into.

Thanks for taking the time!

If you need some pointers about a specific subject feel free to email me at t@fust.us
Your best option is to subscribe to drupalize.me and work through their content. (I'm not affiliated)

Unfortunately the changes over the years with Drupal meant you can find guides online but they may be outdated.

There is also a book "Learning Drupal 9 as a framework" written by Stef Van Looveran. He appears to keep it updated and while it isn't a complete resource, it could be worth a look.

Hey I’m mentoring devs and I’ma Drupal specialist. Shoot me a message, happy to set you up.
I built everything with Drupal once upon a time but I got so tired of having to rebuild my theme practically from scratch whenever I needed to upgrade Drupal.

This is how WordPress won, the devs didn’t rewrite their APIs whenever they saw something shiny.

Drupal 7 : great product, worked fine. Drupal 8 : “Let’s change everything including the module architecture.” Not a disaster if not for some critical modules that I needed, that took more than 3 years to be converted, at which point D9 was already in the works.

I do sometimes miss Drupals fields and views system, that was quite good.

I've been told that after Drupal 8, they decided that mandatory nightmarish upgrades every few years was not a good idea and introduced much better backwards compatibility. They lost half the community during the D7 to D8 transition, many quit Drupal altogether or went with a D7 fork named Backdrop.

For the record, I've done D6 to D7 and D7 to D8 data migrations on fairly complex sites. I say "data migration" and not "upgrade" because you're effectively creating a new site, then migrating the data over. Essential modules in one Drupal version may not exist in the next, though I understand D8, 9 & 10 modules are near identical so upgrading is way easier.

There's another thing that really split the community, many want automatic security updates to Drupal core, but the Drupal core devs have taken a hard stance against this. Letting the site rewrite it's core files is seen as a major security risk, which I agree, but in my opinion that's outweighed by an even greater security risk. Every Drupal site needs an active dev to immediately perform security updates, but this isn't the case for half (or more) of Drupal sites and those sites get burned badly by the policy of forbidding automatic security updates. Drupal's adherence to "best security" has led to some absolute disasters (see Drupalgeddon parts 1, 2 & 3 where thousands and thousands of sites were hacked).

Regarding Drupal versus Wordpress comparisons. Drupal has been moving towards being a Content Management Framework that requires a knowledgeable PHP developer to build and maintain. If you want an easy way of creating a blog/website that practically runs itself and has thousands of plugins for just about any functionality you can imagine, you don't want Drupal, you want Wordpress.

Agreed that is a bad stance from a security standpoint. Security updates will always be coming , users can not be relied on to always update so you get sites that will never be updated and eventually hacked and spam/ scan / redirect to malware and create a bad experience. On your average shared host drupal would be set to write to itself anyway since php will run under the same username of the files. I guess permissions could be set lower to 444 to prevent this - but the fact Wordpress will auto update the core is essentially to security.
I'm not very familiar with Wordpress, so don't know how auto-updates work in it. Does it really autoupdate the core remotely automatically, or it is a human who presses the update button?
The default is that is updates automatically.

It has a very unique "cron job", wherein pages effectively fork by doing a "curl wp-cron.php". One of those jobs is a daily check for updates, and it will apply one if it exists. I've had people argue that they want to disable they behaviour, and do manual qa before updates. I can see why. But the last person I argued this with had their website replaced with a gore image because they got behind in updates.

Thanks for explaining how it works.
The upgrades from D8 to D9 to D10 are still somewhat of a pain because they do deprecate things and not all modules are compatible (let alone custom code).

Not to mention that upgrades have no tangible benefits for site admins. They lose features, and rarely any UX improvements.

To be fair, WordPress core does break things sometimes, but most plugins are very actively maintained, so it's just a few clicks and the upgrade is done. Every upgrade brings UX improvements (and not just Gutenberg, but things around user account security, for example).

I supported Drupal for 15 years, but that ship has sailed.

Wordpress, as a development framework, sucks.
Eh I think it’s fine. You work with it for enough years you will have accumulated enough code to quickly bang out new projects. But yeah if you don’t bring your own toolbox it isn’t great.
It really depends on what you know in WP. Want to use it for enterprises? Look into WordPress VIP or try to use https://roots.io (you can even use Laravel modules with it)

Whenever I read someone say "best" "sucks" - it makes me wonder how much research they've done.

> There's another thing that really split the community, many want automatic security updates to Drupal core, but the Drupal core devs have taken a hard stance against this.

That might have been true at some point, but certainly is not the case anymore. In fact, automatic updates is a "strategic initiative" for Drupal core:

https://www.drupal.org/about/core/strategic-initiatives/auto...

This still means there is no out of the box way to update Drupal core automatically _yet_, but you can in fact do so with a contributed project, developed and maintained by people that are contributing to the core initiative.

>This is how WordPress won

Appropriate use cases for Wordpress vs. Drupal have been diverging and I'd say functionally distinct since Drupal 8 became usable.

Congrats to the Drupal team. I continue to use Drupal for a number of projects. It's not always what I need, but it's a great starting spot for building something bigger. The architecture is really pretty flexible.
After using Drupal 7 and 8 I was hoping it would die when I left it. The word drupal and little blue icon brings me so much pain and fear.

Every drupal programmer I even met only knew how to click and install, they never knew how to actually write code. My experience may be varied.

(comment deleted)
I've been running PortableApps.com on Drupal for 17 years now. Still running on D7 because the D8/9 upgrade path was always messy and a number of modules I use were never upgraded. Still debating between powering through a D10 upgrade and degrading some of the site due to lost modules, switching to Backdrop, and switching to something else entirely.
I recently sold a D7-based website because all options were too tedious for a solo bedtime developer.