Gutenberg Chapter 1

Going Gutenberg: Chapter I

We’ve made significant rewrites and refactors of our products over the years, but adapting our plugins to fully integrate with the new editor coming in WordPress version 5.0—code-named “Gutenberg”—is the biggest ecosystem change we’ve faced since the introduction of custom post types.

Agencies and developers have been speaking out in large number and loud volume about their hopes, fears, and predictions for how Gutenberg will change the WordPress world. This blog post isn’t about that—we’ll instead take a specific look at how The Events Calendar will be affected by Gutenberg, and how we plan to grow our plugins to take advantage of everything the new editor has to offer.

Why Gutenberg is Worth the Effort

Our existing metaboxes and shortcodes will continue to work for a long time in the new editor. This means that there are two main roads we can embark on:

  1. We could just make minimal changes to ensure nothing breaks. This is the cheapest option, and lets us focus on our existing roadmap of new plugin features.
  2. We could fully embrace Gutenberg, and look for new opportunities to improve our products as the foundations of WordPress itself change.

We’ve chosen the second path. It’s the more expensive route, and requires us to shift our focus away from other things we’re excited to build. But for years, we at Modern Tribe (makers of The Events Calendar) have been obsessed with the evolution of content creation, and how we can improve the experience of creating events. Just making things “not-break” is an inadequate response to such a unique opportunity to change the content-creation experience in WordPress on a foundational level.

We are generally optimistic about Gutenberg, and think most of our users will love it and the opportunities it provides. The editing experience is truly better, along with these other benefits:

  • Better/More-Enjoyable Code — The new blocks system takes advantage of what modern JavaScript has to offer. As we’ll likely explore in a future Going Gutenberg post, creating blocks—even with advanced features—is simpler and more flexible than creating PHP metaboxes.
  • Reusable Blocks — If you find yourself entering the same data on events, or even just the same kind of data, you can save the block as a “Reusable Block”, and save the time and energy you’d spend recreating the block from scratch each subsequent time. There is nothing in the current editor like this.
  • Customizable Events Display — We’re often asked how to move this event detail above that event detail, or how to put event tickets information in a certain place on the single-event view, etc. Blocks would allow users to drag and drop event and ticket data pretty much anywhere they’d like, giving them a ton of freedom to design their event layouts without editing the theme.
  • Foundations for Future Change — Gutenberg is not just about the editor. In the words of the Gutenberg team: “With the editor, we lay the foundation for bigger things when it comes to page building and customization. A lot of features are planned, too many to list. But a rough roadmap is: v1) post and page editor v2) page template editor, v3) site builder.” The slower we are to adapt to v1, the slower we’ll be to adapt to v2, and the less experience we’ll have with the new ways of doing things.

Why Gutenberg is a Little Scary

The new editor doesn’t only bring unanimously-great things—there are some issues we foresee when the editor goes live in April, and some issues we’re already running into.

Issues We’re Already Running Into

  • No Custom Block Categories (Yet) — Blocks are currently only allowed to fit into one of the following categories: “Common Blocks”, “Layout Blocks”, “Widgets”, and “Embeds”. We think it would be nice to create a custom category for event blocks to keep things a little more organized. The search feature in the add-blocks panel prevents this from being a huge pain for now, but custom categories is definitely something we’d love to see and hope the current efforts to implement it are a success.
  • What Becomes a Block? What Goes in the Settings Sidebar? — The solution to this question may seem obvious: Anything that’ll render on the front-end is a block, while anything that doesn’t (and relates more to event meta details, for example) goes in the settings sidebar. But with some event, venue, and ticket information, it’s not clear whether making it a block or putting it in the settings sidebar is the best choice.
  • High Technological Barrier to Entry — While we have some serious experts, our entire team isn’t 100% fluent in React. Many of us are working hard to learn and catch up, but for now there’s an unfair burden on the core developers who do know React very well. At the same time, it’s unrealistic to expect every team member to become a JavaScript master; gaining deep knowledge of React and other modern JavaScript technologies takes considerable time.

Issues We’re Anticipating

There are certain issues endemic to a change this size that have nothing to do with Gutenberg specifically. Scope creep is a real challenge, for example, as we try to figure out what features are “nice-to-haves” and what features are truly essential. Scheduling a change this large with a team as large as ours is another challenge in its own right, and we’ve also got some concerns about testing our changes to ensure we “play nice” with the other plugins and themes our hundreds of thousands of users rely on.

  • Customer Agita — As great as Gutenberg is, there will inevitably be some subset of users who absolutely hate it, especially if its release breaks things on their site. We’re working hard to ensure our excellent support team is educated and ready to handle the myriad questions sure to come.
  • Compatibility Across Add-ons — The Events Calendar is the most popular plugin we make, but add-ons like Events Calendar PRO and Filter Bar have huge audiences as well. We worry about issues arising if The Events Calendar is fully Gutenberg-ready while other plugins are not yet compatible. We’re prioritizing our most popular plugins (and any that touch the post editor) to minimize possible issues on this front.
  • Compatibility with Third-Party Plugins — We can’t only look inward when it comes to worrying about compatibility. We need to make sure that whatever changes we make won’t affect third-party plugins negatively, especially the plugins people most heavily rely on like WPML, Yoast SEO, Jetpack, and more. We also worry about their impact on our plugins.
  • Graceful Handling of Prior Site Customizations — While we don’t have hard numbers, we probably have five- to six-figure numbers of users who’ve customized their sites in some way via the Customizer, child themes, custom template files, our official Extensions, or some combination of these and other methods. Ensuring a smooth upgrade path for these users is challenging, but crucial.
  • Too Many Options — There’s something to be said about having all of the event details in one metabox. We think breaking this out into blocks is the right move, but do worry that some users will find it a little confusing or complicated to have a separate block for each “event details” component.
  • Building Events on Mobile Devices — We’re not really sure what the experience of using blocks will be like on mobile devices, especially touch-screen ones. While the current metabox system doesn’t make for an award-winning experience, it’s fairly easy to create events and fill out event details on an iPhone or Android device; we don’t want to lose that functionality.
  • Accessibility — We care very much about accessibility, as do the many universities and other institutions that use The Events Calendar. But we don’t know much about how accessible the blocks system will be. “Accessibility is not an afterthought,” The Gutenberg Handbook currently states, before admitting, “Not every aspect of Gutenberg is accessible at the moment.”

The Road Ahead

The point of this blog series, Going Gutenberg, is to document our journey as we go from having no support for the Gutenberg editor to having full compatibility with it. We will start with an optional Gutenberg-friendly event editor that we hope to release before WordPress 5.0 officially arrives.

The next installment of this series will showcase some early design work for that editor. It’ll also reveal other changes we’re planning for the event post type, our widgets and shortcodes, and more. Be sure to subscribe to this blog and/or follow us on Facebook and Twitter to stay abreast of our progress—and our roadblocks.


🔔 Please Note: This is a blog series about active development and exploration. Anything we mention here is subject to change, and this blog series should be read as a tentative roadmap for our products—not an official release plan.

Going Gutenberg Series