Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Gutenberg Blocks for WordPress and React Developers
Rating: 4.4 out of 5(945 ratings)
6,415 students

Gutenberg Blocks for WordPress and React Developers

Use Your ReactJS and Redux Knowledge to Create Complex Gutenberg Blocks and Plugins from scratch.
Created byAli Alaa
Last updated 9/2025
English

What you'll learn

  • Learn about the block editor design guidelines.
  • Discover how the block editor saves your post in the database and how the editor UI is constructed.
  • Learn how to use wp-scripts to transpile ES6 and JSX, compile SASS to CSS, bundle and minify your JS and CSS files and more.
  • Integrate ESLint, Prettier, Stylelint and Husky in your project to improve your workflow.
  • Create a new custom Gutenberg block from scratch.
  • Customize the block editor features in your WordPress theme.
  • Discover every aspect you need to know to create a complex Gutenberg block.
  • Create a nested block (a block that accepts other blocks inside of it).
  • Use third party react libraries to create complex features.
  • Learn about handling deprecated blocks.
  • Learn how to transform your custom block into another block.
  • Create a dynamic block.
  • Explore how to use the existing data stores in your blocks.
  • Learn how to create your own data stores stores in order to share data between blocks.
  • Learn different ways to manage meta fields in the block editor.
  • Learn how to create a custom sidebar in the block editor and manage your meta fields inside of it.
  • Learn how to extend the existing block editor's sidebar.
  • Learn about features like patterns, context, formatting API and templates.
  • Modify existing block's behavior with JavaScript & PHP filters.
  • Internationalize blocks by generating and loading translation files.

Course content

10 sections114 lectures16h 16m total length
  • Before Watching the Course3:33

    Adjust video quality up to 1080p, set playback speed, enable captions or transcripts, and access lecture-specific code on GitHub branches plus a Q&A for the current lecture questions.

  • Installing a Starter WordPress Theme5:00

    In this lecture we will install and activate a theme that we will use through out the course. You can use your own theme if you like since most of the work will be in a plugin. Additionally we are going to take a look at the gutenberg repository on github. This will be useful incase you ever needed to look at the source code of existing core blocks.

  • The Block Editor Interface2:41

    In this lecture we will explore the structure of the new block editor page. We will see what every area in the editor is called and its usage.

  • The Block Interface & Design Guidelines11:40

    In this lecture we will take a look at the structure of the blocks in the new editor. We will explore the UI elements of the block and their purpose. We will also discuss some design guidelines that we should follow when designing a block.

  • How is a Post in the Block Editor Saved in the Database5:17

    You might be wondering how a post in the block editor is saved in the database? Do we save 2 representations for the post? One for the frontend and one for the editor? In this lecture we will answer this question.


  • How the Visual Editor is Reconstructed From Plain HTML3:52

    In this lecture we will discover how the visual editor is reconstructed by parsing the post’s HTML content.

  • A Brief Introduction to the Redux-like Data Stores in the Block Editor8:41

    In this lecture we will briefly take a look on how data is managed in a redux-like fashion in the block editor.

  • The Post State Array in Action9:05

    In this lecture we will revisit the diagram that explains how do we reconstruct the visual editor from the HTML. But we can get a better understanding now that we can see the post state array and other data stored in the redux-like stores.

Requirements

  • You should be familiar with HTML, CSS (SASS), Javascript and PHP basics.
  • You should be familiar with WordPress development.
  • You should be familiar with ReactJS Basic Concepts.
  • Redux Knowledge is Preferable
  • Any code editor you are comfortable with, I will use VS Code in this code.
  • A local server like MAMP, WAMP, XAMPP, Laragon or any other software you are familiar with. I will use MAMP through out this course.
  • NodeJS and NPM or Yarn installed on your machine.

Description

Recently WordPress decided to change their old WYSIWYG editor into a new ReactJS based block editor known as 'Gutenberg'. Gutenberg also known as the block editor is based on blocks. So your post will be composed of some blocks and each block will have a purpose. You can have a block that displays a button or an image or some text and so on. 

In this course you will learn everything you need to know in order to create custom blocks for the block editor. We will start by a simple block and then we will create some more complex blocks.

In order to gain the most out of this course you need to have WordPress theme/plugin development knowledge. Javascript knowledge is required for this course. You should be familiar with basic JavaScript concepts and preferably the recent ES6+ versions. ReactJS knowledge is also required for this course. So concepts like component state, hooks and basic react concepts should not be new to you. Also advanced concepts like higher order component knowledge would be ideal however it will be discussed briefly in the course. Redux knowledge is also ideal. Not all blocks will require using redux, however in some blocks we will use redux heavily. So it would be ideal if you are familiar with redux concepts like stores, actions, reducers and so on.

The course content will go as follows:

  • First and before any coding we will discuss some design guidelines that you should follow when designing a block.

  • We will take a look on how your Gutenberg post is saved in your database and what happens behind the scenes in order to construct your ReactJS based UI from the content saved in the database.

  • In Section 2, we will create a WordPress plugin. Inside this plugin we will register out first Gutenberg block. We will also use a tool provided by WordPress called wp-scripts in order to process JS and CSS files in this plugin. We will also integrate tools like ESLint, Prettier, Stylelint and Husky for an improved development workflow.

  • In section 3, we will take a quick look on some stuff that you can do in your WordPress theme that will allow you to modify/add some features in the block editor.

  • In section 4 we will create a simple block. However in this simple block we will learn a lot about what we can do in a block.

  • In section 5 we will use our knowledge to create a more complex block with some advanced features. These features include how to add blocks inside of other blocks, how to handle images and many more.

  • Section 6 will be about creating dynamic blocks. So blocks can be static or in other words only generate some static HTML. But also they can be dynamic for example they can fetch something from the database.

  • Section 7 will discover more about the redux-like data stores in the block editor. We will see how to use the existing data stores and also create our own store.

  • Section 8 we will see different ways that we can follow in order to manage metadata in Gutenberg. We will manage metadata using a block. And we will also learn how to create a custom sidebar plugin and manage metadata in this sidebar.

  • In the final section we are going to discuss various topics like: context, patterns, templates, formatting API, filters and internationalization.


Who this course is for:

  • WordPress theme/plugin developers who are familiar with ReactJS and want to create Gutenberg blocks from scratch.
  • Anybody with some WordPress and ReactJS experience who wants to know everything about the Gutenberg editor.