Gutenberg

Description

The block editor was introduced in core WordPress with version 5.0 but the Gutenberg project will ultimately impact the entire publishing experience including customization (the next focus area). This beta plugin allows you to test bleeding-edge features around editing and customization projects before they land in future WordPress releases.

Discover more about the project.

Editing focus

The editor will create a new page- and post-building experience that makes writing rich posts effortless, and has “blocks” to make it easy what today might take shortcodes, custom HTML, or “mystery meat” embed discovery. — Matt Mullenweg

One thing that sets WordPress apart from other systems is that it allows you to create as rich a post layout as you can imagine — but only if you know HTML and CSS and build your own custom theme. By thinking of the editor as a tool to let you write rich posts and create beautiful layouts, we can transform WordPress into something users love WordPress, as opposed something they pick it because it’s what everyone else uses.

Gutenberg looks at the editor as more than a content field, revisiting a layout that has been largely unchanged for almost a decade.This allows us to holistically design a modern editing experience and build a foundation for things to come.

Here’s why we’re looking at the whole editing screen, as opposed to just the content field:

  1. The block unifies multiple interfaces. If we add that on top of the existing interface, it would add complexity, as opposed to remove it.
  2. By revisiting the interface, we can modernize the writing, editing, and publishing experience, with usability and simplicity in mind, benefitting both new and casual users.
  3. When singular block interface takes center stage, it demonstrates a clear path forward for developers to create premium blocks, superior to both shortcodes and widgets.
  4. Considering the whole interface lays a solid foundation for the next focus, full site customization.
  5. Looking at the full editor screen also gives us the opportunity to drastically modernize the foundation, and take steps towards a more fluid and JavaScript powered future that fully leverages the WordPress REST API.

Blocks

Blocks are the unifying evolution of what is now covered, in different ways, by shortcodes, embeds, widgets, post formats, custom post types, theme options, meta-boxes, and other formatting elements. They embrace the breadth of functionality WordPress is capable of, with the clarity of a consistent user experience.

Imagine a custom “employee” block that a client can drag to an About page to automatically display a picture, name, and bio. A whole universe of plugins that all extend WordPress in the same way. Simplified menus and widgets. Users who can instantly understand and use WordPress — and 90% of plugins. This will allow you to easily compose beautiful posts like this example.

Check out the FAQ for answers to the most common questions about the project.

Compatibility

Posts are backwards compatible, and shortcodes will still work. We are continuously exploring how highly-tailored metaboxes can be accommodated, and are looking at solutions ranging from a plugin to disable Gutenberg to automatically detecting whether to load Gutenberg or not. While we want to make sure the new editing experience from writing to publishing is user-friendly, we’re committed to finding a good solution for highly-tailored existing sites.

The stages of Gutenberg

Gutenberg has three planned stages. The first, aimed for inclusion in WordPress 5.0, focuses on the post editing experience and the implementation of blocks. This initial phase focuses on a content-first approach. The use of blocks, as detailed above, allows you to focus on how your content will look without the distraction of other configuration options. This ultimately will help all users present their content in a way that is engaging, direct, and visual.

These foundational elements will pave the way for stages two and three, planned for the next year, to go beyond the post into page templates and ultimately, full site customization.

Gutenberg is a big change, and there will be ways to ensure that existing functionality (like shortcodes and meta-boxes) continue to work while allowing developers the time and paths to transition effectively. Ultimately, it will open new opportunities for plugin and theme developers to better serve users through a more engaging and visual experience that takes advantage of a toolset supported by core.

Contributors

Gutenberg is built by many contributors and volunteers. Please see the full list in CONTRIBUTORS.md.

Blocks

This plugin provides 17 blocks.

core/categories
Gutenberg
core/block
Gutenberg
core/site-title
Gutenberg
core/tag-cloud
Gutenberg
core/post-title
Gutenberg
core/latest-comments
Gutenberg
core/archives
Gutenberg
core/calendar
Gutenberg
core/social-link-
Gutenberg
core/legacy-widget
Gutenberg
core/navigation
Gutenberg
core/latest-posts
Gutenberg
core/shortcode
Gutenberg
core/search
Gutenberg
core/post-content
Gutenberg
core/template-part
Gutenberg
core/rss
Gutenberg

FAQ

How can I send feedback or get help with a bug?

We’d love to hear your bug reports, feature suggestions and any other feedback! Please head over to the GitHub issues page to search for existing issues or open a new one. While we’ll try to triage issues reported here on the plugin forum, you’ll get a faster response (and reduce duplication of effort) by keeping everything centralized in the GitHub repository.

How can I contribute?

We’re calling this editor project “Gutenberg” because it’s a big undertaking. We are working on it every day in GitHub, and we’d love your help building it.You’re also welcome to give feedback, the easiest is to join us in our Slack channel, #core-editor.

See also CONTRIBUTING.md.

Where can I read more about Gutenberg?

Reviews

December 12, 2019
It has its flaws and limitations in the beginning, but I am using Gutenberg in many projects now. It's really fast and the resulting html code is much better than what the Classic Editor produced.
December 10, 2019
So many of the reviews of Gutenberg are binary—black or white. They claim Gutenberg is either total garbage not even worthy of existing (the vast majority), or the best editor that has ever been built (far fewer, but still there). The reality is far more nuanced. The editor doesn't completely suck. But it also isn't perfect. Are their problems and rough edges with Gutenberg? Yes. Is the editor a move in a positive direction for WordPress? Absolutely. Like many reviewers, at first I hated Gutenberg. Looking back, I think a lot of that hate came from a gut reaction and aversion to change. Some was definitely attributed to the early days of Gutenberg indeed being a hot mess. The editor has come a long, long way since the initial release and is now far more functional and useful. I now exclusively use it for new sites and am working on transitioning a number of existing sites over (more on this later). In total I am using Gutenberg on 12 different sites. The good: My clients who are trained on Gutenberg love it! It is far closer to WYSIWYG than the old editor. Now that they are used to the difference in how the editor works, I often get comments about how simple things are. Gutenberg makes it is easier to do advanced things such as column layout. Many reviewers claim that even simple tasks require several more clicks. That simply isn't true. And now all tasks are essentially treated the exact same. Everything is a block. Once you understand blocks and that they can have individual settings, the rest falls into place. My clients also make far less mistakes, especially since they used to rely on error prone shortcodes for so much of the advanced functionality. It was inevitable that a client would inadvertently delete a ] for a shortcade and email me asking why their site was broken. When you embrace it fully, Gutenberg can be incredibly powerful. As a developer, the editor being completely written in JS, and having complete access to core data stores means I can create plugins and tools for users I could have only dreamed of before. For example, I recently built a live accessibility checker. It checks the content and metadata (as the user types!) for common accessibility issues, like missing alt attributes on images or incorrect heading hierarchy. My users now make far less accessibility mistakes when publishing content! This makes for a better web for all. There are more keyboard shortcuts. Saving a post, true undo and redo, block insertion with / etc. All great additions. That said, I do miss the heading shortcuts of the old editor. Of course, Gutenberg still has some rough edges: The number one is speed. It is still fairly slow to load the initial edit page (6 or 7 seconds, even in a local dev environment) and pages with a large number of blocks (i.e. a few hundred) can make the interface less responsive. I would love to see a release dedicated to performance and bug fixes. I know development is charging ahead on things like widgets, content areas, and editing site wide content, but I would strongly recommend shoring up what is already in place a little more first. The second biggest issue (at least from the perspective of a plugin/theme developer) is documentation. It sucks. As a developer working with WordPress for a dozen years, I'm used to very detailed and descriptive documentation, with lots of examples. The documentation for Gutenberg is largely missing or cryptically worded. Only the very basics (like registering a simple block) are decently documented. As soon as I start branching out beyond the basics (like working with data stores or APIs) I spend a large amount of time digging through Gutenberg's JS files looking to see how the developers of Gutenberg did something. I'm a less productive developer because of it. Some interactions can be cumbersome and clumsy. For example, if you have a number of blocks nested within each other, it can be very difficult to select the exact block you want. I end up needing to use my up and down arrow keys, or the block navigation far too often. Another example is around finding the exact right place to click to insert a new nested block when using InnerBlocks. If your block has any padding, this can be maddening. Migrating existing sites is very difficult and time consuming. I have only moved a couple sites to Gutenberg, but it has often involved completely reworking the content of every page/post. This especially applies to more complex sites with numerous shortcodes and layout builders. I'm honestly not sure what can be done to address this, but it is a big burden. Finally, a minor gripe, the HTML and CSS of the editor makes styling blocks in the editor challenging. All the negative margins, absolutely positioned elements, and dozens of nested HTML elements mean I spend a lot of time digging through the web inspector. Conclusion: For all those asking to abolish Gutenberg entirely, I feel that is a rash judgement. Gutenberg offers a lot of benefits, if you're willing to embrace it fully. In hindsight, I would have suggested only enabling Gutenberg by default on new installs of WordPress, and perhaps waiting a little longer for some of the major shortcomings to be worked out. That said, today Gutenberg is quite powerful and heading in the right direction.
December 7, 2019
I hoped that the kinks would be worked out by now, but there are still tons of normal things that you can't do in Gutenberg because of how blocks work. I try to minimize plugins for performance and security, but I have had to install way more than usual just to do things that were simple in the old editor but impossible in Gutenberg. And it's cumbersome as well. I haven't yet bailed out and installed the Classic Editor plugin, because I thought I should give Gutenberg a fair chance, but I might have to. For the minority who like Gutenberg, it would be fine as a plugin, but why can't the default editor simply be an editor?
Read all 2,972 reviews

Contributors & Developers

“Gutenberg” is open source software. The following people have contributed to this plugin.

Contributors

“Gutenberg” has been translated into 46 locales. Thank you to the translators for their contributions.

Translate “Gutenberg” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

Features

Enhancements

Bug Fixes

APIs

Experiments

Documentation

Performance

Various