Advent of Gutenberg – 1

The WordPress space, and other open source communities are building anticipation around the new content editor, Gutenberg. The development of the editor and overall process, has been controversial, inspiring ClassicPress, a fork of WordPress. I think the controversy is definitely perceived at a higher level of severity, being amplified by the current cultural climate permeating many things. Controversy aside, new things are on the way and in this season of gift giving, I am very excited for the world to receive the gift of this new content editing foundation.

It’s all about the blocks

The new foundation of WordPress is not being built on the editor persee, instead it is being built upon the block concept. Gutenberg does feature a new UI that is different from the current editor. The current WordPress editor always felt boxed in, closed off, and subconsciously limiting to creativity. Your content was in a small box surrounded by all of these other distracting elements. The new user interface for WordPress will be more open; with a pure focus on content. I can focus so much more easily on the words as I type in Gutenberg. That’s just the new interface; great, but not groundbreaking. It’s all about the blocks.

What’s in a block?

The idea of a block is vague, and abstract. A block is essentially an individual unit or grouping of content. This post so far has been comprised of headings, and paragraphs. Each is its own block, and as a whole, the entire post becomes a block containing this content. So what’s the big deal?

Unlike the previous editor or really any content editor I know of, there is now a deeper fundamental connection between the visual layer and underlying data model. This connection is made possible by having a more accessible, programmable, data driven content layer. Sure, the posts end up being stored as HTML, or more specifically WP Post Grammar, but that isn’t necessarily the data model of blocks. WP Post Grammar is just the current storage format. So although we had content before, and now we can make the same content with the block editor, there is a very subtle and fundamental shift occurring.

To explore this shift further, let’s think about numbers. A number is this vague abstract concept, much like a block. Most of us have become accustomed to using a base ten numerical system using 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. So much can be expressed with just different variations of these numerals. If we want to figure out what 9 x 9 is, with sufficient learning, we get an answer of 81, fairly easily. Let’s use another system to represent the same numbers; Roman Numerals. Now we have IX * IX which is equivalent to LXXXI. Math is usually not widely loved, but let’s be thankful for not having to learn it in Roman Numerals.

There was a time when many people who needed to figure something out had to use this terrible number system. The very syntax itself made certain thoughts unthinkable, certain ideas inexpressible. If I lived in that time, I would have never questioned it, I would have carried right along unaware of this other world that had not been discovered. The very foundations of arithmetic would not be as discoverable with a system like Roman Numerals. With the web, and the computational medium in general, we are in its infancy. I am excited to see what worlds we can open by having a new creative foundation. Gutenberg and the block concept, I think will play a part in opening up new creative outlets.

WordPress’ content as it is now

With Roman Numerals there are all of these rules around each character, and the placement of each character can effect its meaning and the meaning of other characters. It is really terrible. No one uses Roman Numerals anymore. Let’s look at them if you are not familiar, so you can see how confusing they are. “I” is 1, so “II” would be 2, “III” 3. You might think four would be “IIII”? Wrong; “IV” ( :facepalm: ). “IV”, what the hell is this? Let’s see. “V” means 5, and “X” means 10. Somehow putting “I” before “V” or “X”, means subtract 1 from the following value. So “IX” is 9, and “IV”, is four. But “VX” is just not a number, it doesn’t mean subtract 5 from 10. It only gets worse from here.

Roman Numerals just really do not make any sense at all, or there are too many different rules that govern them. You can’t keep track of it all in your head. I can’t help but feel this same problem plagues WordPress. I have seen many people struggle learning WordPress, including myself. Like Roman Numerals, once you learn them you can navigate your way around, but you do not realize what you are missing out on.

In WordPress we have widgets, nav menus, post types, meta boxes, shortcodes, links (not used anymore), media, post formats, page templates, and whatever else is brought in by the plugin ecosystem. There are so many things you have to keep track of when building content with WordPress. We are just used to it. On top of that each of these content types can have many super confusing interactions, and special cased rules. The block concept unifies these content types. Blocks on their own will not solve the woes of WordPress, but they afford us the ability to start building a new future.

Future of blocks

Dennis Snell shared a really cool block on twitter:

Dennis Snell is a really nice person, and has been very active on the parser for WP Post Grammar.

So here I am, in the moment of thinking about this, grabbing Dennis’s tweet, and sharing it in my post as a tweet block. Super fast, super easy. I can see it right now as I type. Imagine how this will allow us to share ideas more quickly, more expressively, and with WordPress, unlike other platforms, I have sovereignty and authority over the content I interact with.

Dennis, in only 137 lines of code, created a drawing tool. Would you imagine drawing in the current state of WordPress? Would it only take 137 lines of code? When I complete my doodle, because it is now a block, maybe I can just send it to you, and you can add your own doodle on top and send it back?

It goes further. It is maybe an insensitive or uninformed opinion, but I believe Gutenberg will be even better for things like accessibility. Why? Since Gutenberg is now connecting us with the underlying content in a new way, we will have new ways to represent content, and represent how to interact with content. Although the design stance has centered around making a uniform experience, I can see plugins providing alternate editing experiences accommodating everyone’s needs to a further level. This doesn’t mean that the core should not be accessible, but I think perhaps even our current ideas around what web accessibility means could change.

Reality of today

Gutenberg is not without its faults. There have been communication failures in the process. There are bugs. There are outstanding issues. As I write, on my host, I see warnings of updates failing. This could be very scary to a non technical user, as they will believe their work is not saving. Even though I see these warnings, my content is saving. I have never lost content using Gutenberg. I lost power a couple weeks back, right in the middle of writing a post. When I checked back, not a single letter was missing. That is the level of care put into this editor. I am sure there will be Gutenberg horror stories, but in the WordPress community one thing that I have seen and can guarantee is that people care. They will work hard to try and help as many people as possible with an open ear and heart.

Even though Gutenberg could change a lot of things, maybe it won’t. Maybe it will be just a more pleasant writing experience, or not. Maybe it will be incredibly underwhelming. Maybe some of the technical decisions will sink WordPress into further technical debt. The reality is that nobody knows what is going to happen. As Gutenberg stands today, it is not a radical shift from how we currently use WordPress, but to me it symbolizes a new road ahead, that is open and awaiting new visions to guide the way. 

What’s next?

For this season of generosity, I will be making 25 posts in honor of advent, to show the gifts that I think Gutenberg will bring to WordPress and the web. Each day we will learn something new about Gutenberg, what it can do, and where it could go. I leave the rest up to you!

Leave a Reply

Your email address will not be published. Required fields are marked *

%d