What is Gutenberg?
Gutenberg is the codename for a revolutionary approach to WordPress site building and publishing. Named after Johannes Gutenberg, who revolutionized printing in the 15th century, this project aims to bring a similar transformation to digital publishing.The Vision
The Gutenberg project represents a fundamental shift in how you interact with WordPress. Instead of working with a single content area and complex shortcodes, you compose content using blocks—discrete, modular components that can be easily manipulated, arranged, and styled.The project is following a four-phase roadmap that will eventually touch every aspect of WordPress: Editing, Customization, Collaboration, and Multilingual support.
What Makes Gutenberg Different?
Modular Block System
Every piece of content in the editor is a block. From a simple paragraph to a complex image gallery, each block:- Has its own settings and formatting controls
- Can be inserted, moved, reordered, and deleted independently
- Maintains a consistent interface across different content types
- Can be nested within other blocks for complex layouts
Visual Content Creation
Gutenberg provides a visually intuitive way to create media-rich pages. You see your content as it will appear on the front end, eliminating the disconnect between the editing experience and the published result.The Block Editor Interface
The Block Editor consists of three primary elements:- Inserter - A panel for inserting blocks into the content canvas
- Content Canvas - The main editor where you compose content with blocks
- Settings Panel - Configuration options for individual blocks or the entire post
Core Components
Blocks
Blocks are abstract units for structuring and interacting with content. When composed together, they create the content for a webpage. Everything from a paragraph to a video to the site title is represented as a block.Block Patterns
Patterns are groups of blocks combined together to create design patterns. They provide starting points for building advanced pages and layouts quickly, without inserting individual blocks one at a time.Unlike reusable blocks, patterns don’t remain in sync after insertion—they’re meant to be customized and edited by you.
Templates and Template Parts
With Full Site Editing, you can use blocks to build your entire site from header to footer. Templates describe full pages, while template parts represent reusable areas like headers, sidebars, and footers.Global Styles
The Global Styles system (configured throughtheme.json) provides a unified interface for managing design settings, color palettes, typography, and layout options across your entire site.
Technical Architecture
Data Format
Blocks understand content as attributes and are serializable to HTML using a custom block grammar. The raw form of a block includes:- HTML comment delimiters (
<!-- wp:block-name -->) - Optional JSON object with block attributes
- The block’s content or output
Block Types
Static blocks contain rendered content and attributes used to re-render based on changes. Dynamic blocks require server-side data and rendering while post content is being generated.Composability
Blocks are hierarchical—a block can be nested within another block. The parent-child relationship is managed through theInnerBlocks API, enabling complex layouts like columns, groups, and covers.
Development Platform
Beyond the editing experience, Gutenberg is a powerful developer platform with:- Rich JavaScript packages published on npm
- Comprehensive REST API integration
- Extensible data stores using
@wordpress/data - Component library for building custom interfaces
- Block development toolkit via
@wordpress/create-block
Key Concepts
Dive deeper into blocks, patterns, and templates
Quick Start Guide
Build your first custom block
Monorepo Structure
The Gutenberg project is maintained as a monorepo using Lerna, with:- 80+ JavaScript packages in
/packages/directory - PHP code in
/lib/directory - Comprehensive documentation in
/docs/directory - WordPress plugin that bundles the latest features
Plugin vs. Core
The Gutenberg plugin provides bleeding-edge features and improvements that are tested before being merged into WordPress Core. Installing the plugin gives you:- Latest block editor features
- Experimental APIs and components
- Performance improvements
- New blocks and patterns
Open Source Development
Gutenberg is developed openly on GitHub with:- Continuous integration testing
- Automated end-to-end tests
- Community contributions from around the world
- Regular releases every two weeks
Getting Started
Ready to start building with Gutenberg? You have several options:- Try the live demo at wordpress.org/gutenberg
- Install the plugin from the WordPress plugins repository
- Set up a development environment with
@wordpress/env - Read the Block Editor Handbook for comprehensive documentation
Block Editor Handbook
Complete developer documentation and tutorials
Storybook
Interactive component documentation