Within the WordPress community, it’s been hard to ignore all of the hype surrounding Gutenberg – the new content editor being developed for the world’s most used CMS. Currently available in plugin form and scheduled for inclusion in WordPress 5.0, the first thing you notice about this newfangled way of creating a page or post is that it provides a very different experience from what we’re used to.
Needless to say, the reaction has been mixed. That’s to be expected whenever such a dramatic change is made to a venerable piece of software like WordPress. With so many designers and developers making a living off of working their magic with it, there’s no way something this big was going to go unnoticed.
The whole situation has already been written about ad nauseam, but we wanted to bring the perspective of someone who brings specific concerns to the table. Today, we’ll introduce you to one developer whose commentary touched a nerve within the community, along with some within the WordPress development team.
His name is Greg Schoppe, a Vermont-based WordPress developer. His post, entitled “You called it Gutenberg for a Reason.. That Doesn’t Make it Revolutionary. (An open response to Matt Mullenweg)”, got a lot of people talking. Schoppe points out what he sees as flaws in Gutenberg’s scope and the approach WordPress takes to data structure. A follow up post, “The Gutenberg that could have been”, takes us through his own vision for the new editor.
Greg was kind enough to sit down and answer a few questions regarding Gutenberg and the reactions to his commentary. Some answers were edited for brevity.
Q: Tell us a little bit about your background as a developer and the type of projects you work on.
I’m the lead developer at a mid-sized digital marketing agency called Burlington Bytes. We have about 300 WordPress clients, ranging from one-page digital brochures to online catalogs with almost 20,000 products. I’ve got about 5 years of experience in WordPress, and about 10 in PHP.
Outside of work, was a speaker at both WordCamp Maine and WordCamp Boston this year, I have three plugins in the WordPress repository (Blockade, SmartCrop, and Utility Script Runner), and I’m a semi-regular commenter on reddit’s r/wordpress subreddit
Q: What led you to speak out about Gutenberg? It sure looked like there was a deeper philosophical difference there and that maybe the new editor was the last straw.
Well, there’s a lot of reasons to love WordPress. It has a fairly intuitive interface, as CMS systems go, and it has a massive community base, with tools for almost anything. But developers and themers who dig into core more deeply, to build the tools that other WordPress users love, know a bit of a secret. WordPress Core is a minefield of design decisions that were made for what WordPress was at the time, and didn’t age well.
There’s simple stuff that confuses first-time developers, like
home.php being the blog archive template or
get_the_content() being completely unlike all the other get_the functions, but there are also deeply-rooted issues like the lack of proper variable bind/prepare statements for database queries, even though the function involved is called
$wpdb->prepare, or the
wpautop format that posts are stored in, that messes with developers’ ability to save HTML in the plain text editor.
Once issues like these have been introduced into core, they are almost impossible to go back and fix, because WordPress values back compatibility above all else. So when I saw that HTML comments were being proposed as a hacky way to turn unstructured HTML into this new Block-Driven structured post format, I was taken aback hard.
This is clearly a decision made looking at “how can we not modify core”, rather than “how can we plan for the future”. It’s the
wpautop moment of this decade, and the core team is building another non-standard hack that will plague the community for the next decade.
I knew I had to speak up, or we’d all be stuck dealing with it long after the concerns that drive today’s decisions are forgotten.
Q: Why do you think your post resonated with so many others in the WordPress community?
To be completely fair, some of it is fear of the unknown. That can’t be discounted. People will cling to criticism when they are scared, and Gutenberg is scary for many reasons, some legitimate, and some illegitimate.
However, a lot of support has come in from people who use WordPress as a CMS or an app platform, who go beyond what it was originally designed to do, and architect new solutions to new problems, using WordPress. These are the people Matt (Mullenweg) was talking about when he famously called WordPress “an operating system for the open web,” and they know where it falls short of that goal.
Those people know that building a new non-standards-based format for data-storage is creating something they will have to hack the heck out of, to make it jump through hoops the original developers didn’t imagine existing.
They know that embedding React into core is likely to lock developers into another framework of the month, or worse yet, cause developers to abandon integrations with that part of WordPress in favor of complete replacements for the post interface (which won’t play well with others) or stagnating third-party development (like we’ve seen with the backbone.js-based media library)
Those people are also dealing with the muddled, and frighteningly rushed communications coming from Matt and the Core team. For example, according to Matt, developers should be working to port their features to Gutenberg by the end of the month, if they want to take advantage of them for the 5.0 launch.
However, at the moment, the API for storing metadata from a Gutenberg block, the Interface & API for creating nested blocks, and the API for fixing certain blocks in position and forcing them into place on load all are non-existent.
So, even if all these features manage to make it into the system before the end of the month, developers will need to be writing in a framework that has maybe a couple of pages of documentation written, and has been standardized for only a few days, or according to Matt, they will be behind the curve.
This rushed pace and lack of clear communication and attainable goals comes at the same time that standard features like metaboxes are suddenly being called “legacy features” by the core team. I sat down to start work on a brand new plugin over the weekend, and had to think “this uses a lot of metaboxes… should I even bother tackling this until 5.0 is out and the Gutenberg framework is stable?” Other developers are having the same experience, and it really isn’t good for the ecosystem’s forward motion.
Q: You also wrote a post regarding your thoughts on what Gutenberg should be (as opposed to what is out there right now). How would you gauge the reaction so far?
Unfortunately, at the moment, I’d call the reaction from the core team defensive. I hear a lot about how things like LTS (Long Term Support) releases or meaningful re-factors of core just aren’t gonna happen, but I don’t hear a lot of considering, or a lot of explanation as to why not.
The reaction from third-party developers has been frankly mutinous, with several people offering their support in forking WordPress to a new, enterprise-minded codebase that would allow for refactoring core functionality on major version releases, while providing LTS releases for older versions, to keep companies safe in their investment in WordPress.
I fundamentally don’t want to chase that path, as although it would be far easier for developers like me to work with a stable system with solid roots, the WordPress community is too valuable to fragment lightly. I am further concerned that I’ve seen talk of forking WordPress in other forums and comment sections as well, and it looks like more of a credible risk now than ever before.
My current opinion is to stay with core, but that may change, depending on the fallout of the 5.0 release.
Q: Have you considered volunteering for the Gutenberg team or any other official roles with WordPress?
But as of late, it’s become a very closed system to outside ideas. “TinyBlocks”, “Comments as Structure”, and “React in Core” were all decisions that felt pre-ordained before they even hit the Slack channel (despite React in Core technically being “undecided”), leaving little room for outside voices, except as cogs working towards the grand vision. I’d love to work with the Gutenberg team, but I don’t think there’s much room for dissenters at the moment.
Q: Has anybody from the Gutenberg team or WordPress in general reached out to you?
Unfortunately, what I haven’t seen, in the months that I have been raising flags in Slack, on my blog and in comments, is any sign that these issues are considered anything but “things to explain to the community.”
Q: What’s your realistic hope for Gutenberg at this point?
My hopes are modest, and my expectations are low. I believe that Gutenberg will launch, mostly as is, and on the front end, some people will love it and some people will hate it. I believe it will be a new set of hacked-in solutions that WordPress developers will have to work around, and I believe it will cause some serious upheaval, as some well established and well loved plugins are unable to work in the new paradigm, or some developers simply don’t have the time to perform a complete rewrite of their interfaces that interact with the edit page.
I hope that ACF, Carbon Fields, PODs, CMB2, Yoast, and SEO Ultimate are all able to make the transition to the new interface, although some of the popular extensions to those plugins will certainly stop working.
I hope the new comment-based interface will hold up to most use cases, and I hope that a nested block interface will come out with version 1.0 (as without it, there will be a million hacked together standards, just like the current fractured landscape of page builders)
And I hope that the documentation and hooks offered by Gutenberg won’t leave it inaccessible to users with unexpected use cases. We already had one major release that effectively killed customization in an entire section of WordPress (the media library). I hope we don’t have another.
Speaking with Greg Schoppe, it was clear that he has a great passion for WordPress and its community. He also insists that he’s in favor of the idea of a new editor, stating “The concept of Gutenberg is something I welcome with open arms. WordPress needs a native way for themes to present more advanced editing options to their users, and a way for them to limit which options are available in which contexts. The implementation is where the problem lies.”
And, as someone who has authored a page builder plugin, Schoppe notes “Blockade is actually something I would LOVE to see rendered obsolete. It was created with the understanding that page builders are particularly horrible for developers to work with, because they don’t operate within the bounds of what WordPress natively supports.”
Note that Schoppe’s is just one perspective in this worldwide discussion. We’ve reached out to members of the Gutenberg development team and would love to get their thoughts as well.
While in some ways it may seem like we have to choose sides in this argument, it really shouldn’t be about that at all. In the end, this debate and the decisions that come from it should be for the betterment of WordPress. Hopefully, that’s where it all leads.
Note: As it turns out, WordPress is now removing React.js from Gutenberg and will rewrite code using a different library. In response, Greg Schoppe told us “This is a major change, and should be noted as an instance of the Core team positively responding to public criticism and concerns. I still have deep issues about the custom nature of the underlying data structure, so this change doesn’t put me fully in the Gutenberg camp, but I want to give credit where credit is due. This is a step in the right direction that was entirely community driven.”