Drupal CMS Docs: Should We Combine the CMS and User Guides?

When Drupal CMS 1.0 launched, we rushed to create an MVP of the Drupal CMS Guide. Now, we’re circling back to try and address some loose ends—how should this guide evolve, and how does it relate to the existing Drupal User Guide?

The Drupal CMS Guide, like Drupal CMS itself, was conceived and started super quickly. And guidance from others in the Starshot Initiative on what it should or shouldn’t include has been pretty minimal. So we’re making a lot of this up as we go.

We wanted to have something to show when Drupal CMS first launched. But, that meant plowing ahead on an MVP while leaving a lot of questions unanswered. Now, I’m both trying to push more content into the pipeline, while also circling back to spend more time thinking about some of these big picture questions.

A key question is how the Drupal CMS Guide relates to the existing Drupal User Guide. Defining this relationship will streamline future content decisions and development. Not to mention removing something that has proven to be a big mental blocker for me personally.

Background

I’ve been deeply involved in the creation and ongoing maintenance of both the Drupal User Guide and the Drupal CMS Guide.

The Drupal User Guide is a community-driven effort to provide a clear, structured introduction for Drupal site builders. It follows a style guide, stays up-to-date, is translatable, and uses Git for editorial workflows. Drupalize.Me has sponsored much of my work on it, and because the guide is licensed under CC BY-SA, we can also republish it on Drupalize.Me—benefiting both our site and the Drupal community by keeping it maintained.

To keep things manageable a decision was made early on when writing the User Guide to focus only on Drupal core—avoiding the complexity of deciding which contributed modules to include, and thus document.

The Drupal CMS Guide shares many of the same goals but takes a different approach. The whole idea is that Drupal CMS is built around core plus commonly used contributed modules and a better reflection of how Drupal is really used.

End user documentation for Drupal CMS shouldn’t differentiate between Drupal core, and contributed modules. Instead it should focus on the cohesive feature set created through the combination of these parts.

Image
Venn diagram showing overlap between Drupal and Drupal CMS

This creates a key challenge: While someone could learn Drupal -- including Drupal CMS -- from the User Guide, the UI, content structure, and site configuration workflows in Drupal CMS differ from Drupal core due to what's shipped with Drupal CMS. For example, Drupal CMS uses the Gin admin theme instead of Claro, meaning screenshots won’t always match. Readers can mentally adjust, but they shouldn’t have to—that’s unnecessary cognitive load.

Another example: Documenting how to create content in Drupal CMS means covering SEO metadata, automatic URL aliases, and other features added by contributed modules—things not included in the core-only Drupal User Guide.

Each guide serves slightly different audiences. The Drupal User Guide focuses on best practices for core Drupal, which assumes using Composer to install and manage dependencies. Meanwhile, Drupal CMS is designed to work entirely in the browser, making it more beginner-friendly.

Finally, with the Drupal User Guide already written, we should aim to reuse it as much as possible rather than reinvent the wheel.

Two guides? Or one mega guide?

One of my biggest questions right now is what is the relationship between these two chunks of documentation? Should they be combined, or kept separate? And why? This is similar to the broader question of how Drupal CMS and Drupal core relate to one another that a lot of people in the community and the Starshot leadership team are trying to work through right now.

Drupal CMS Guide current working outline (Feb. 2025) Drupal User Guide outline
  1. Get started
    1. Install Drupal CMS ✅
      1. Install Drupal CMS locally with DDEV ✅
      2. Try Out Drupal CMS ✅
      3. Run the Drupal CMS Installer ✅
      4. Move your site to a hosting provider ✅
    2. Get to know Drupal CMS ✅
      1. Getting around Drupal CMS ✅
      2. Adding functionality with smart defaults ✅
      3. Understanding content modeling ✅
        1. What is content modeling? ✅
        2. Content modeling for layouts ✅
        3. Content modeling for views ✅
        4. Content modeling for social media and SEO ✅
        5. Content modeling for editorial workflows ✅
        6. Additional resources ✅
      4. Default content types ✅
      5. AI Tools in Drupal CMS ✅
  2. Create a site
    1. Add features with smart defaults (recipes) - (currently in the section above) ✅
    2. Enable functionality with modules
    3. Set up content models (structure, aka Field UI)
    4. Choose and configure a theme ✅
    5. Design page layouts (layout builder now, XB in the future)
    6. Configure basic site settings
    7. Use the AI chatbot
  3. Manage content
    1. Content administration ✅
      1. Tour the content administration areas (content, comments, media, blocks, webforms)
      2. Creating a content item ✅
      3. Adding a page to the navigation ✅
      4. Change the URL of a page ✅
    2. Use the AI assistant in the editor
    3. Create accessible content
      1. Understanding accessibility
      2. Using editoria11y to ensure your content is accessible
    4. Create basic pages ✅
    5. Create events
    6. Create (Drupal CMS content type X)
    7. Customize the contact form
  4. Customize your site
    1. Customize your site to match your brand
    2. Set up email sending
    3. Manage data privacy and compliance
      1. Understanding consent management
      2. Set up consent manager for a new service
      3. Create a privacy policy
    4. Set up a multilingual site
      1. Understanding types of multilingual sites
      2. Add a multilingual feature (recipe)
      3. Add a language
      4. Translating content
  5. Promote content with SEO
    1. Set up Analytics
    2. Optimize your site for search engines (SEO)
      1. SEO Checklist
      2. Customize metatags for individual pages
  6. Launch your site
    1. Choosing a hosting provider
    2. Getting help with deployment
    3. Deployment checklist
  7. Keep your site up-to-date (automatic updates)
    1. Set up automatic updates
  • 1. Preface
    • 1.1. Copyright
    • 1.2. Audience and Goal
    • 1.3. Organization
    • 1.4. Reporting Problems
    • 1.5. Conventions of the Guide
    • 1.6. Guiding Scenario
  • 2. Understanding Drupal
    • 2.1. Concept: Drupal as a Content Management System
    • 2.2. Concept: Modules
    • 2.3. Concept: Themes
    • 2.4. Concept: Distributions
    • 2.5. Concept: Types of Data
    • 2.6. Concept: The Drupal Project
    • 2.7. Concept: Drupal Licensing
  • 3. Planning Your Site
    • 3.1. Concept: Regions in a Theme
    • 3.2. Planning Your Site Layout
    • 3.3. Concept: Content Entities and Fields
    • 3.4. Concept: Modular Content
    • 3.5. Planning your Content Structure
    • 3.6. Concept: Editorial Workflow
    • 3.7. Concept: User Interface, Configuration, and Content translation
  • 4. Installation
    • 4.1. Concept: Server Requirements
    • 4.2. Concept: Additional Tools
    • 4.3. Concept: Methods for Downloading and Installing the Core Software
    • 4.4. Preparing to Install
    • 4.5. Using Composer to Download and Update Files
    • 4.6. Running the Interactive Installer
  • 5. Basic Site Configuration
    • 5.1. Concept: Administrative Overview
    • 5.2. Editing Basic Site Information
    • 5.3. Installing a Module
    • 5.4. Uninstalling Unused Modules
    • 5.5. Configuring User Account Settings
    • 5.6. Configuring the Theme
  • 6. Basic Page Management
    • 6.1. Concept: Paths, Aliases, and URLs
    • 6.2. Creating a Content Item
    • 6.3. Editing a Content Item
    • 6.4. Designating a Front Page for your Site
    • 6.5. Concept: Menu
    • 6.6. Adding a Page to the Navigation
    • 6.7. Changing the Order of Navigation
  • 7. Setting Up Content Structure
    • 7.1. Adding a Content Type
    • 7.2. Deleting a Content Type
    • 7.3. Adding Basic Fields to a Content Type
    • 7.4. Concept: Reference Fields
    • 7.5. Concept: Taxonomy
    • 7.6. Setting Up a Taxonomy
    • 7.7. Adding a Reference Field
    • 7.8. Concept: Forms and Widgets
    • 7.9. Changing Content Entry Forms
    • 7.10. Concept: View Modes and Formatters
    • 7.11. Changing Content Display
    • 7.12. Concept: Image Styles
    • 7.13. Setting Up an Image Style
    • 7.14. Concept: Responsive Image Styles
    • 7.15. Concept: Text Formats and Editors
    • 7.16. Configuring Text Formats and Editors
  • 8. Managing User Accounts
    • 8.1. Concept: Users, Roles, and Permissions
    • 8.2. Concept: The User 1 Account
    • 8.3. Creating a Role
    • 8.4. Creating a User Account
    • 8.5. Assigning Permissions to a Role
    • 8.6. Changing a User’s Roles
    • 8.7. Assigning Authors to Content
  • 9. Blocks
    • 9.1. Concept: Blocks
    • 9.2. Creating A Custom Block
    • 9.3. Placing a Block in a Region
  • 10. Creating Listings with Views
    • 10.1. Concept: Uses of Views
    • 10.2. Concept: The Parts of a View
    • 10.3. Creating a Content List View
    • 10.4. Duplicating a View
    • 10.5. Adding a Block Display to a View
  • 11. Making Your Site Multilingual
    • 11.1. Adding a Language
    • 11.2. Configuring Content Translation
    • 11.3. Translating Content
    • 11.4. Translating Configuration
  • 12. Extending and Customizing Your Site
    • 12.1. Finding Modules
    • 12.2. Enabling and Disabling Maintenance Mode
    • 12.3. Downloading and Installing a Module from Drupal.org
    • 12.4. Finding Themes
    • 12.5. Downloading and Installing a Theme from Drupal.org
    • 12.6. Manually Installing Module or Theme Files
    • 12.7. Concept: Development Sites
    • 12.8. Making a Development Site
    • 12.9. Deploying New Site Features
    • 12.10. Synchronizing Configuration Versions
    • 12.11. Managing File and Configuration Revisions with Git
  • 13. Preventing and Fixing Problems
    • 13.1. Concept: Cache
    • 13.2. Clearing the Cache
    • 13.3. Concept: Data Backups
    • 13.4. Concept: Log
    • 13.5. Concept: Status Report
  • 14. Security and Maintenance
    • 14.1. Concept: Cron
    • 14.2. Configuring Cron Maintenance Tasks
    • 14.3. Concept: Security and Regular Updates
    • 14.4. Keeping Track of Updates
    • 14.5. Updating the Core Software
    • 14.6. Updating a Module
    • 14.7. Updating a Theme
  • 15. Final Thoughts
    • 15.1. Connecting with the Community
    • 15.2. Getting Support
    • 15.3. Learning More
  • 16. Glossary
  • 17. Index

One of the things I want to dive back into now though is answering that question. And I still don’t have an answer, but here are some of the things that are on my mind as I’m thinking through this/

The Drupal CMS Guide is a work in progress. As of February 2025, this outline reflects our current thinking, shaped by Drupal CMS’s features, the needs of the Adopt a Document program, hints from the Starshot leadership team, and lots of brainstorming sessions between Amber and me. Some sections (those with a ✅) are done, while many others are still on our to-do list. And there are still key topics missing that should be included.

There’s already a lot of overlap between this and the Drupal User Guide. Comparing the two outlines side by side, as you can read above, it’s clear that the Drupal CMS Guide is missing essential site-building topics. Things like adding pages to navigation, modeling content types with the Field UI, and creating views. These skills are crucial for both Drupal CMS and core users.

So far, we’ve tried to avoid duplicating content from the User Guide by linking to it instead. But that quickly creates a frustrating experience by forcing users to jump between two guides with different screenshots and interfaces because of the contributed modules and recipes in Drupal CMS.

Early on, we considered merging the User Guide into the CMS Guide entirely. But that raised bigger questions:

  • Who is the CMS Guide really for?
  • How should it be managed?
  • What’s the best way to handle content updates?

Without clear answers, we pushed forward without worrying too much about duplication—for now.

Now, it’s time to revisit that question. I still don’t have a final answer, but here are some of the key things on my mind as I think this through.

Maintenance

  • We don’t want to write from scratch something that’s already been written for the User Guide. But I also don’t want to maintain two versions of nearly identical content.
  • We’re planning to add a Git-based editorial workflow for the Drupal CMS Guide. The User Guide already has one. But they’re not going to be the same and the User Guide will need to get completely refactored regardless. See Decide on the future of the user guide [#3470837], which also contains some ongoing discussions about moving the User Guide away from asciidoc.
  • As someone doing work to maintain both, I’m keenly aware of not wanting to add any extra work for myself or anyone else.

Scope

  • Does the Drupal CMS Guide only document things that are specific to Drupal CMS? And defer to the Drupal User Guide for things that are part of both Drupal CMS and Drupal core? Like, for example, managing blocks. Presumably Drupal CMS users will want to manage blocks. Or create custom content types. Or Views.
  • Drupal CMS includes a bunch of contributed modules, and their features. The current version of the User Guide’s policy is to document only things available in core.
  • How does it impact the overall experience of the reader if they’re constantly jumping between two different guides for different things. They don’t know about the difference between Drupal CMS, and Drupal core, and they shouldn’t need to.
  • What about the content in the User Guide that deals with things like installing Drupal using Composer, or updating modules & themes using Composer? These are probably still relevant to a lot of Drupal CMS users, but their exact mechanics vary. And, in theory, the Drupal CMS Guide's current goal is to not include giving instructions that require using the CLI. Or writing code.
  • A lot of Drupal CMS's features are destined for core, including Project Browser, Automatic Updates, Recipes, Experience Builder, etc. So, do those get documented in the User Guide or the Drupal CMS Guide?

Audience

  • Can we assume that Drupal CMS will be the starting point for most (all?) people who are new to Drupal? Should it be? It’s definitely a more holistic example of what building a real Drupal site feels like.

Translation

  • All 120+ pages, and all screenshots, of the existing User Guide have been translated into 12 different languages. Creating, and maintaining, those translations also takes a lot of effort and is accomplished by just a few people so again what solution means the least amount of additional work with the greatest translation coverage?

Value

  • From the Drupalize.Me perspective, we’ve got a lot of content, like our Module Developer Guide, that is a continuation of where the current User Guide leaves off. If the User Guide disappears because it becomes part of the Drupal CMS Guide that’s going to mean a lot of content updates and re-recording of videos for us.

What do I think?

I’m leaning towards combining them. We should merge the guides, prioritizing Drupal CMS as the primary experience for new users. Users who install only Drupal core can still follow along, with clear notes where differences exist.

I think that if there are two guides it’s confusing to someone who is trying to figure out where to start with Drupal. And we should be trying to remove these points where someone gets stuck trying to figure out which option they should choose.

But I don’t have a definitive answer yet. Part of writing this blog post is an exercise in trying to collect my thoughts. And to have them written down so I can share with others.

What do you think?

If you’ve got thoughts about what would help to make Drupal’s documentation best-in-class with regards to these two guides feel free to leave a comment, ping me in Slack, or track me down at DrupalCon Atlanta.

Add new comment

Filtered HTML

  • Web page addresses and email addresses turn into links automatically.
  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <code class> <ul type> <ol start type> <li> <dl> <dt> <dd><h3 id> <p>
  • Lines and paragraphs break automatically.

About us

Drupalize.Me is the best resource for learning Drupal online. We have an extensive library covering multiple versions of Drupal and we are the most accurate and up-to-date Drupal resource. Learn more