When Gutenberg was introduced to WordPress in 2018, it fundamentally redefined how content is created and structured. Instead of working within a large, monolithic WYSIWYG field, Gutenberg brought a block-based editing experience allowing users to compose rich content layouts using reusable and configurable blocks. This shift empowered editors and site builders alike, introducing modularity without requiring full developer involvement for every content change.
Gutenberg in WordPress: The Block Revolution
The block-based philosophy behind Gutenberg aligns closely with the field-based system of WordPress. Each content type in WordPress comes with a pre-defined set of fields, but Gutenberg blurred those lines by making layout and content structure part of the same visual experience. Blocks could be text, images, galleries, buttons even entire templates. For WordPress, it was a unification of content and layout.
Enter Drupal: A Field-First, Structured CMS
Drupal, on the other hand, is a highly structured CMS. Its field API allows site builders to define complex data schemas across content types. Views, display modes, and entity reference fields offer powerful ways to organize and reuse content. Editors work within these constraints to ensure content is consistent, reusable, and structured for downstream uses (like search, APIs, or layout builders).
One of the biggest complaints among Drupal content editors is the lack of a truly flexible, drag-and-drop editing experience. While tools like Layout Builder have made progress, the editing flow can still feel fragmented, rigid, or overly complex especially for non-technical users. The expectation set by modern page builders and editors (like Gutenberg or Elementor) has raised the bar for intuitive content composition.
Integrating Gutenberg into Drupal
In recent years, the Gutenberg module for Drupal has aimed to bring the same visual block editing experience into the Drupal ecosystem. The module allows developers to plug the Gutenberg editor into any content type, making core WordPress blocks available inside the Drupal UI with relatively minimal configuration.
This plug-and-play capability is surprisingly effective. You can quickly enable Gutenberg for any content type, and start composing content with drag-and-drop blocks including custom blocks or even blocks backed by Views (e.g., EVA blocks). This opens up exciting possibilities for combining Drupal's powerful data architecture with the expressive editing experience of Gutenberg.
The Field Mapping Problem
However, a key challenge quickly emerges: field mapping.
Within Drupal, when you add blocks via the Gutenberg UI, all that block content is stored in the body field of the node. This fundamentally diverges from Drupal's field-based architecture. Although the module supports some field mapping, it's limited. Entity reference fields, view modes, and other structured content types are often left out of the equation.
This can lead to duplication of content maintaining one version in a reference field (for APIs, theming, Views, etc.), and another version as raw Gutenberg content inside the body field just for the editor experience. It’s not ideal.
Enhancing Integration: Gutenberg Content Embed
To help bridge the gap between Gutenberg’s visual editing capabilities and Drupal’s structured content system, the community has also introduced the Gutenberg Content Embed module. This module provides a set of custom Gutenberg blocks that allow editors to embed Drupal entities like nodes, media, or users directly within the Gutenberg editor.
Rather than copying and pasting content into a generic block or recreating it manually, this approach lets editors reference existing Drupal content dynamically. It's a step toward more seamless integration between Drupal's structured backend and Gutenberg’s visual frontend.
However, while it helps bring entity-based content into the editing canvas, it still doesn’t fully solve the field mapping limitations mentioned earlier. Embedded content is still treated differently than fielded data, and layout control around these blocks can be somewhat constrained compared to Layout Builder or Paragraphs.
Still, the Content Embed module represents a strong effort in the right direction reinforcing the potential for Drupal and Gutenberg to coexist more harmoniously with better UX and stronger content reusability.
A Path Forward for the Drupal Ecosystem
There’s a significant opportunity here for the Drupal community.
If the Gutenberg module could evolve to offer more adaptable, dynamic field mapping tightly integrated with Drupal’s field API and entity systems we could unlock a powerful hybrid approach: visual content editing without sacrificing structure, reusability, or display flexibility.
Imagine being able to drop a block in Gutenberg that’s directly tied to an entity reference, or to a media field, or even to a view mode. The editor experience would remain fluid, while content architecture stays intact.
Conclusion
Gutenberg and Drupal aren’t a perfect match today, but they could be. The foundations are there, and the community has already laid impressive groundwork. With further development in field mapping and tighter integration with Drupal’s core systems, the two worlds could coexist more harmoniously.
And perhaps most importantly, it could finally offer Drupal content editors the kind of intuitive, drag-and-drop experience they’ve been asking for without compromising the structured power Drupal is known for.
The Drupal community is already exploring ideas like Fieldable Blocks, deeper Field Mapping integrations, and better Gutenberg–Layout Builder hybrids. The potential is huge, and it rests on collaboration between module maintainers, site builders, and editors.
I'm going to be outspoken here because I feel quite strongly about the subject.
Drupal isn't perfect, but it's the best general-purpose PHP CMS overall. WordPress isn't a CMS, it's a blog and two unrelated modules in a trenchcoat.
And Gutenberg is one of the worst things to happen to WordPress.
Drupal is a better CMS than WordPress, and even with all its flaws it deserves better than Gutenberg.
Management of data, separation of content from layout, the ability to easily replace existing components or re-theme the site - these things are all left at the side of the road.
There is no positive spin for this. It's the selling point, but it's literally the reason Gutenberg is terrible. Storing rendered HTML in your database, along with metadata crowbarred into comments and custom attributes is an astronomically bad idea.
And of course, almost every component from WordPress' example has proved to be inaccessible div soup. Gutenberg is CKEditor on valium.