The more I use Gutenberg (the WordPress Block Editor), the more I simultaneously like and dislike it

Where do even I begin with Gutenberg, a.k.a. the Block Editor? Well, I don’t really need to “begin” with it, because I’ve been posting about my various frustrations with it for over 5 years now. (This isn’t even the first Gutenberg-related post I’ve started with “Where do I begin…”)

It took me a long time, but I did finally embrace it. Sort of. I’ve suspended new development on my own pre-Gutenberg block-style theme, 34 Blocks, built around ACF Flexible Content, and for most of the year I’ve been working on its replacement, a Gutenberg-centered theme that I regrettably (for the difficulty of typing it) have named 34 Blocks².

It’s better than bad, it’s good

I will say it, without reservation: Gutenberg, which I will respectfully refer to henceforth as the Block Editor, has gotten a lot better. Taken on its own as a piece of software, I might even, now, describe it as… “good.”

But.

There are so, so many things I would have done differently if I were building it myself. Sure, I take a more “opinionated” (as they say) approach to coding and web design, but that opinion is informed not only by a quarter century of professional experience, but by constantly building to suit specific client needs. Before I started using WordPress full-time in 2014, I had been building my own custom CMSes from scratch, going back to late 2000, when I was using… ugh… ASP and Microsoft SQL Server 7. On Windows NT 4. (I get a sinking feeling in my stomach just remembering those technologies once existed.)

So, a) get off my lawn, and b) WordPress has always done things the wrong way, so why change that now? Like PHP itself, WordPress has long been a marvel of being a tool that just about anybody (relatively speaking) could use to “just get stuff done,” without a soul-crushing learning curve. But its architecture borders on madness. It should’ve used an MVC framework 15 years ago, just like it should be using something like Bootstrap now.

Jane, stop this crazy thing!

I’m really concerned about extending the Block Editor content model to full-site editing, and the Site Editor as it currently stands is (in my estimation) a disaster in every conceivable way. But I don’t want to dwell on that too much at the moment. (Mainly, much like Donald Trump, Elon Musk, or cryptocurrency, I want to pretend it doesn’t exist.)

So far I haven’t had much good to say, but believe it or not, I actually like using the Block Editor. When I play by its rules. If you use it to design your pages, great. It gives you way more flexibility than the old “classic” editor.

But you know who doesn’t use it to design pages? Designers. If, like me, you work with designers who deliver you Adobe Illustrator files, and your job is to turn those designs into actual functioning web pages, Good luck shoehorning their designs into the Block Editor. Sure, you can create custom blocks (if you bother to learn React, which, yuck), or you might be able to create a Block Pattern that does the job. But just about any way you go about it, it’s more work than before.

Which brings me to the starkest realization I’ve had about all of this. It happened about a month ago, when I had a rush project. I needed to put together a small site, just a couple of pages, but it needed to be a very precise design, with a lot of polish, and I needed to turn it around in a week. The client didn’t really need the ability to edit content — if they have changes, they’ll come to me anyway.

So I built it by hand.

Oh, I didn’t write every line of code by hand. I used Bootstrap to get my structure started, and I also relied extensively on AOS for some slick animations. I built myself a super-rudimentary PHP framework that is kind of an MVC-lite. (There’s no database, but I did put some content into PHP arrays to allow for loops instead of repeating a ton of identical HTML code.)

The end result looks as close as possible to the designer’s Illustrator file (with my additional adaptations to make the site fluid and responsive), it’s super slick, and the client loved it. And it would have taken me at least 3-4 times as long to do with WordPress and the Block Editor, with inferior results.

I’m aware of the irony… so don’t bother pointing that out

This all brings me back to a question I frequently, and increasingly, ask myself: Who is WordPress for? The core team clearly still thinks it’s for bloggers. Do they still exist? For the past decade, I’ve thought of it as an extremely versatile, open-ended CMS (or CMS-ish at least), suitable for building just about any kind of website and giving my clients easy access to edit their content without messing up the layout.

But I’ve also come to realize over the years that a lot of my clients either a) don’t need or b) don’t want to edit their own content. Or even if they think they do, in practice they edit things so rarely that they need my help to remind them how things work whenever they do actually make a change.

That’s not always the case; I have some very engaged clients who are using their sites constantly, and for them, WordPress has been the perfect tool. Very few of them, yet, are using the Block Editor though, so we’ll see if that remains true.

My business is still very much dependent upon WordPress. Not only do I use it to create most of my clients’ sites, but I have a growing side business building and maintaining multiple WordPress plugins. I want WordPress to be great, and I want it to continue to grow. I want to continue recommending it for my clients.

But I am also realizing more and more that there are definitely some clients for whom WordPress isn’t the best choice. I no longer see it as “suitable for building just about any kind of website.” In cases where either the client doesn’t want/need editing capabilities, or where the designer delivers a highly unique design that isn’t well-suited to the Block Editor, it’s time to consider alternatives. For me, that probably means, ironically, going back to custom-built CMSes, or at least custom-built templates without a CMS. For some clients, that might mean Squarespace or Shopify, even if that then means I’m not the right developer for them.

Update, in the cold light of the following morning: After writing this, I went back and skimmed through some of my previous posts, then read a few other people’s posts I had linked to but had not given a close read initially. That’s when I came across coderjerk’s The Complicated Futility of WordPress (again), and it spoke to me like nothing I have read in ages. Yes! This is me! Yes, I am not alone! Even as I have spent most of my work time this year wrapping my brain around the Block Editor and trying to create my own Block Theme, I’ve also been harboring secret thoughts that maybe this is the end of the WordPress road for me, and have been looking for alternatives. I never get very far though before I abandon the idea of learning a new toolset and retreat back to WordPress. But WordPress is making me learn a new toolset anyway, and it’s one that, deep down, I know doesn’t make a lot of sense. Coderjerk concludes the post with a note about Laravel-based Twill, and I am genuinely intrigued. It looks like it may be “The One.” But I’ve thought that before. Still, I intend to give it some serious consideration.