Your help wanted: Gutenberg Migration Guide

This post originally appeared on make.wordpress/core.

Happy Thursday 🙂

I’ve started a new crowdsourcing project, the Gutenberg Migration Guide, to document WordPress Classic Editor customization points and their Gutenberg equivalents (if such exist).

For example, the media_buttons action is a common way to add a button atop the editor:

Its Gutenberg-equivalent is the Block Inserter. Converting a media button to the Block Inserter requires registering a block type. And now we have a corresponding page for developers to reference.

media_buttons is only one of the many ways the Classic Editor can be customized. Wouldn’t it be great if there was a database covering all of them?

This is where you come in! Take a look through the Gutenberg Migration Guide. For each action, filter, and so on, we’d like to document real-world examples of how they’ve been used. Then, for each of those real-world examples, identify how the feature might be replicated in Gutenberg.

Have a new hook to suggest or question to ask? Please open a new GitHub issue and we’ll get it sorted.

Summary of Gutenberg Plugin Compatibility Database results to date

A quick run-through of where we’re currently at with the Gutenberg Plugin Compatibility Database.

Since announcing the database on March 1st, 70 people have been granted testing status. However, of 5000 total plugins, we’re still at 4139 untested plugins. No companies have stepped up to contribute a significant amount of person-hours.

Of the 861 tested plugins:

  • 219 (25.44%) are compatible.
  • 518 (60.16%) are likely compatible.
  • 25 (2.9%) are likely not compatible.
  • 39 (4.53%) are not compatible.
  • 60 (6.97%) are in “testing”, which means someone started test and abandoned the process.

Notably, this data is largely biased by the “likely compatible” results. For the most part, these are plugins I pre-screened (e.g. caching plugins) prior to March.

In the original data set, 18 (28.125%) of the 64 incompatible and likely incompatible plugins were updated in the four weeks prior to March 1st. This means the majority are on slower development cycles.

Of the 64 incompatible and likely incompatible plugins, the reasons include:

  • Missing Add Media and TinyMCE buttons (NextGen, WPForms, Formidable, FooGallery, Page Scroll to ID and others).
  • Missing QuickTag buttons (Quick AdSense).
  • Meta box doesn’t display at all (Page Links To, Revision Control).
  • Semi-live preview of SEO title doesn’t work in Gutenberg (All In One SEO).
  • Custom Short or Long Product Description fields don’t appear at all (WooCommerce).
  • Featured thumbnail previews aren’t being generated (Auto Post Thumbnail).Whitescreen of death (qTranslate X, CKEditor).
  • Registers a CPT with editor support that doesn’t include show_in_rest=>true (Portfolio Post Type)
  • Adds section to Media Library that isn’t displayed in Gutenberg (Add From Server).
  • Access restriction from plugin not applied in Gutenberg (Advanced Access Manager).
  • Specifying custom gallery image links isn’t applied in Gutenberg (WP Gallery Custom Links).
  • Doesn’t log changes made in Gutenberg (WP Security Audit Log).

Next steps are to be determined. “Try Gutenberg” represents an opportunity to generate more data (out of support forum requests). However, we need a workflow for capturing that data.

Touring a basement conversion ADU in Portland

Last Thursday, as a part of Design Week Portland, I had the chance to tour this basement conversion ADU (accessory dwelling unit) off NE Prescott:

It was pretty cool! From the outside, you’ll notice both sliding glass and French doors where garage doors used to be. This is because it’s a basement and garage conversion ADU.

In case you aren’t already aware, ADU is shorthand for adding a second living space (bed, bath, and kitchen) to a residential property. ADUs can be inside the existing structure or somewhere else on the property (space-permitting).

More generally, ADUs are neat because they open up a number of opportunities:

  1. In communities without new land to build on, ADUs can be cost-effective infill housing.
  2. ADUs make homeownership more attainable by adding cash-flow to cover the mortgage.
  3. For seniors wanting to downsize, ADUs can offer a “downsize in place” option that lets them stay within the community.

Here’s a pano of the immediate interior:

The developer, Kol Peterson, has been building and consulting on ADUs for almost a decade now through his company, Accessory Dwelling Strategies. He’s also written a book, Backdoor Revolution, that’s incredibly informative and information-dense. I’m already at page ~150.

As far as building an ADU in our house goes, I’ve already discovered what Kol identifies in the book as a classic regulation blocker:

(5) In addition to the parking spaces required in TDC 73.370 for the detached single-family dwelling, one paved on-site parking space shall be provided for the accessory dwelling unit and the space shall not be within five feet of a side or rear property line.

In short, we need a three car driveway in order to permit an ADU. But, we only have two slots and there’s no place to put a third. And, ironically, our neighbor can park six cars in their garage, driveway, and street just fine.

Incentives matter

The tech sector’s obsession with user engagement is like quantifying health by measuring total calories consumed.

In case it’s not obvious: this is a bad thing. Let the renewal begin.

First Arduino project: distance alarm

Amazingly, our refrigerator doesn’t have an alarm for when you accidentally leave the door open.

In the last six months, we’ve left the refrigerator door open overnight three times. Because the light stays on when the door is open, another horrible design decision, the refrigerator thermometer hits 107°F by the time I notice it in the morning.

At yesterday’s inaugural PDX Raspberry Pi and Arduino meetup, I prototyped my solution to the problem: an alarm for accidentally leaving the refrigerator door open.

Using a Parallax Ping Ultrasonic distance sensor, the Arduino board detects its distance to the nearest object in front of it. If there’s nothing within 2 inches for greater than 5 seconds, then the Arduino board uses a piezo buzzer to make some noise. The system resets when an object is placed within 2 inches again.

On a whole, I was surprised how quickly I got up to speed on Arduino. My “Hello World” project, blinking a LED diode, took about 10 minutes to complete. This distance alarm only took 20 minutes beyond that, with a little bit of guidance on what hardware to use and access to tutorials on how to use it.

Up next: figuring out how to miniaturize the entire setup so I can put it in a small housing and deploy to production (aka use it in my home).

Four short links – April 5, 2018

TV worth watching, urban experiments, and open source sustainability.

  1. Lessons from "The Profit" (Marginal Revolution) — I hardly watch TV but I'm going to binge so hard on this series.
  2. The big experiment at Plaza 122 (Bridgeliner) — To buy in, neighborhood residents first have to participate in a financial literacy class, which is available in Spanish, Vietnamese, Arabic, and Russian. After completing the course, they can make micro investments of $10 to $100 in the plaza each month. With enough of these investments, the community will eventually own Plaza 122 in full. So cool! You should subscribe to Bridgeliner.
  3. One City: Many Futures / Better Block PDX (Design Week Portland) — Can we make this bike lane better, on a budget that's slightly more than beer? "Street prototyping" as disruptive policy innovation.
  4. Open source sabbatical = awesome (Julia Evans) — Sabbaticals as a model for open source sustainability.


Thanks to the generosity of WP Engine and DreamHost, I now have a good amount of time to dedicate to Gutenberg over the next few months.

Of particular interest: using automated systems to ensure an exceptional day one (and two and three) user experience.

Lots of problems to solve between now and then — looking forward to diving in!