This past year we have spent much time working with various page builders in both Drupal and WordPress.
First a little technical background.
Drupal supports custom fields and content types without needing extra addons or custom code. WordPress requires using its clunky metadata (which supports only text) or the awesome ACF (Advanced Custom Fields) plugin for fields, and custom code or the Custom Post Types UI plugin for post types. We use ACF on nearly all WordPress sites we work on, but it is a bit of a shame that a third-party plugin is needed to achieve field-related functionality similar to what Drupal offers out of the box.
Drupal also has Views built in, letting us display our field data in complex, filterable ways; the closest WordPress comes to this is with the Content Views plugins, which is good and does support ACF, but the fact that Views is part of Drupal 8 and 9 core (and has tons of modules supporting it) is huge.
WordPress offers many visual page builders.
We have personally used Gutenberg, Elementor, WPBakery, Visual Composer, Divi, and Beaver Builder, although there are many others besides these (Oxygen comes to mind). These don’t seem to support fields that much. Elementor does, on some of its widgets, but not all, and I have yet to have a need to use fields in any of the other ones I just mentioned. Gutenberg has a very clean UI, and many people love it. It isn’t for me, personally, but that isn’t to say it’s a bad choice at all. It comes with WordPress and requires no extra plugins, though there are plugins that extend its functionality.
We use Elementor and love it. It can be used to edit individual pages, for which it is really very intuitive. Our customers like it a lot, and it’s easy to train people on.
On the more technical side, Elementor can also be used to set up the entire site layout, and that includes post type archives, e.g. if you have a News post type with URLs like /news/your-post-title, you could set up an archive at /news and use Elementor to set up the query and styling for that grid. If Elementor’s query options are too limiting for your use case, you can hook it into a custom query of your own, in code. Comparing that to Drupal, I will say that although this is a good enough workaround for a lot of cases, it can still feel limiting compared to the tons of options available when using Views in Drupal. It is simply a trade-off. If the site we’re building only needed a view for one or two pages, chances are we can achieve the same or very similar functionality in WordPress using either custom code or some combination of plugins.
Drupal offers fewer page builders
WordPress is miles ahead of Drupal when it comes to easy to use page builders, but Drupal may be catching up. Here is an overview of visual page builders / editors:
- Paragraphs – we use this on most Drupal 8+ sites we run. While it isn’t a fully visual editor, it is very powerful and does allow a drag-and-drop approach to rearranging content, inserting different kinds of content (e.g. blocks, views, different types of ‘paragraphs’, etc). A ‘paragraph’ is like a content type, and contains fields, and it can be referenced from nodes, blocks, or any other entities. The Drupal 7 analog to this was the Field Collection module.
- Layout Builder (in Drupal 8/9). This can be compared to Visual Composer or perhaps WPBakery. We prefer the highly visual drag-and-drop approach of Elementor, though, and wish for something like that in Drupal, which brings me to:
- Elementor – an unofficial (not supported by the Elementor team) port that works in Drupal. I have used this and thought it was quite good. I recall running into one or two issues that I thought were big enough hangups that we couldn’t use this on production sites yet, but it looks very promising.
- Lastly, Stacks – looks promising, but we have not used it, mainly out of a concern of it having a small user base compared to Paragraphs (and hence less support).
There are many ways of approaching visual page editing, and an approach that works great for one person may not work as well for others. Part of that is also just what you’re used to: changing habits is hard, and retraining site editors can also be a serious challenge (also in terms of knowledge transfer). The last several years we have used Paragraphs on Drupal projects and Elementor on WordPress projects, although we do support many WordPress sites that use other page builders. It will be interesting to see how visual page builders develop this year.