Gutenberg and Publishers: unconference notes from WordCamp for Publishers

At WordCamp for Publishers, I hosted an unconference session on "Gutenberg and Publishers". There were forty people overflowing a conference room who worked at agencies, publishers, universities, hosting companies, as freelance developers and writers, and one person who described their affiliation as "I left my backpack at the bar last night and lost my name badge, and that's representative of my professional career."

The people in the room had all largely used Gutenberg in some way before the session. Almost the entire room had at least 5 custom meta boxes on the editor screen, over two thirds had at least 10 custom meta boxes, and a few had more than 20. The vast majority used custom taxonomies, many of which had at least one using a UI other than the default taxonomy UI. 


After everyone introduced themselves, I gave a brief introduction to Gutenberg, including demonstrating some of its features. I also explained the block based approach, the desire to eliminate mystery meat, and that Gutenberg is still in very active development with things changing all the time.  After that, I kicked off the discussion.

What do you view as the biggest challenge for publishing companies in making the editor better?

  • Long form layouts. Even with something like short cake to render short codes, you still don't get the full-width experience that you do in a full post. A lot of bouncing back and forth to compare sizes.
  • Everything hooked on to save post and how that negatively impacts the actual saving experience.
  • Collaborative editing and the work around to collaborative editing, which is moving from a thirdparty tool, Google Docs, some other workflow. Bringing that integration into WordPress.
  • Allowing users to preview a prepublished preview version of the post in, the home and the category views. Platform Preview: How do posts look different on different size devices, different platforms, whatever.

What are the customization points that matter most Publishers for the editor? On your site, what's the most custom part of the editor in your eyes?

  • Probably our biggest anxiety around Gutenberg, what is the fate of that metadata management system under the new Gutenberg regime.
  • Taxonomy customization comes in multiple forms:
    • A taxonomy that's a single value, a drop down for it.
    • A taxonomy that can have zero or one with radios and a "clear" button.
    • We'll group multiple taxonomies together in a single meta box that maybe has a repeating field either an autocomplete or a drop down where you select. So there might be five taxonomies which each can have multiple terms.
    • I've had numerous times is where I want a hierarchical taxonomy, but I wanted to limit to two levels. And another is a really long list of taxonomy terms. And so I want to get an audit complete. And then when you select one, it adds to the list of ones that are selected. And have a check box next to the ones that you decide you want to do later. So there's a whole bunch of different ways to do taxonomy.
    • We end up doing a lot of custom validation around taxonomies. We check this one taxonomy, you can check three other of this other type, or X, Z, Z. And right now, I think there isn't sort of a builtin validation mechanism to do enforcement on the layout or on taxonomy.
    • So a couple that I've used as well, in addition to the ones mentioned, is where taxonomies can't be you can choose taxonomies, but you can't add new ones. I think that's probably fairly common.
    • Taxonomies where you must select one, but there's no prepopulated one. There's no default. And taxonomies where you have to select one before you can save the post as well. And it has to pass a save checklist validation thing.
  • I think just validation in the editor as a whole is a wonderful thing that can help us, as developers, make richer experiences. So I can think of other use cases beyond taxonomies. But say like someone has a rich media embed. Is it tagged correctly extremely in another place? Say someone has a citation they're using. Has it been factchecked? Has it been proven? Validation is currently very difficult. Unless you're doing something extremely custom. Which takes a lot of time and a lot of maintenance.

What other hooks for validation do people think are needed?

  • Knowing which block is above and below in some way so that you can enforce not stacking seven videos on top of each other. It's really easy to write a beautiful post in Gutenberg and it's really easy to write a horrible post too.
  • We work with a lot of news agencies. And something that they have been asking us about is how to handle packages. This article has a sub, a side bar. This article has eight photos connected to it. Plus, a graphic, plus, an opinion piece. It would be really great to be able to create that kind of content, either taxonomy or association for future output. 
  • Per context, content. Because for us WordPress is the entry point for web, mobile, and print. So right now we have a tabbed interface with multiple tiny MCE editors to prepare content for all three. Videos make no sense for print. So with Gutenberg to switch over and see the printenabled blocks, but not see the webenabled ones. Or native. Because native will only support certain things too.
  • One opportunity Gutenberg might have is less developercentric and more journalistic is, so if you decide on an atomic unit of writing called the Block, you could annotate this. And you could preserve reporter's notes as to the source of the information. This was from an interview. So a year from now, that reporter is long gone. Right now the source material is lost, scrawled into paper notebooks and stuff like that. So I like that opportunity for this. Each Block could have a source that is published or not published or whatever.
  • One point to accept further on your note about comments within block level, it would be awesome if there was a hook to create additional kinds of data. So not just comments, but also, again, I'm thinking back clarifications. I'm thinking custom meta about meta. Which is weird to say, but it's useful, because at some point when we have to look at this, if a copy editor comes in and wants to look at the posts and validate or triple check, whatever that might be, having a starting point or a place to view all that information, that doesn't sit there baked on the side under the context menu. But you can view that directly next to it.
    • That opens up possibilities around having blocker paragraph levels. Like this has been signed off by the copy editor. Like the collaborative features. The photo editor signed off on a picture. And then you can easily view what paragraphs haven't been signed off. Or if a paragraph changes, the sign off automatically turns off and it needs to get resigned off on.
    • And if there are tasks associated with that article that have to go through revisions or approval or whatever might be. Those become part of the dashboard. An article requires work? Who has to do that work? You can associate more information beyond just the article. Even though we currently do this in our own individual workflows, some of the workflows can be sussed out by having the additional information.
    • Kind of along those lines, the side effects of editing a block. One thing I want to point out. It's built with React and Redux. If you're not familiar with Redux, when things change, you can see the actions that have been changing. And you can hook into those changes and do something else in WordPress, right? So you have a block or let's say somebody is typing a paragraph and you just find that, okay, this is for a publisher, we need to factcheck every paragraph. Whatever. You can have that, as they finish the article, use Redux to send that off to validation server as they're writing the next block. And if it doesn't pass validation or fact checking, maybe the state changes and it's highlighted red.
    • And actually, I can't validate that you talked to this person. And they respond on a different system using the heart beat API or whatever. And within 15 seconds, you my light that, they're off working fact checking. I'm still working on content.

Data Storage

  • Would it be a good idea to maybe have an ability to save this in a JSON format and keep that all together with its own components being stacked? So I think that might help a lot of us. Especially if you're doing things that are WP API based. And headless. 
  • The HTML comments as structured data is Shortcodes reloaded. It's too easy to break. 
  • It's certainly possible to store data elsewhere and then hydrate it for the editor. 

Other Observations and thoughts

  • We do have prototype support for WPGraphQL for Gutenberg. It uses the blocks parser to transform the content. 
  • Gutenberg opens up the possibility for front end editing in the customizer since it's also essentially a sidebar and main content area like Gutenberg. 
  • We had an idea we played with in shortcake for a little bit which was contextual rendering of the short code so, for instance, to say it's a YouTube embed that's being rendered under the RSS view. Maybe you don't want us in the iFrame. You want the YouTube API and get an image instead to replace it. I feel there's a lot of adaptive content ideas you could play with around that.
  • For us, posts end up being three different pieces of content. So if they need to fix a typo in one, it's three spots currently. With something like that, if you had context for a block, it would be the same source of truth. If they change here, the context is just a visual thing.
  • I don't know if this is being thought about but right now you go to get a new post and you basically, have a blank screen, a blank canvas. And if you have task workers you want to, give them a bunch of different things to fill out. I don't know if that's part of the vision to be able to create those task worker forms as well.
  • And another is kind of adaptive posts where you start entering things in and depending on what you select, I'll use the term "Post type" here. But I don't mean specific post type. You select certain fields and get different subfields that you would be able to fill in.
  • There were two ideas that came from a workshop yesterday. I wanted to share these with you. One of them was, building in the blocks themselves rules and best practices. So, you know, that could include things like a link catcher sort of validation process. Another one was to integrate context into distribution. This block will work better at this time. Or in these conditions. 
  • I think a lot of what we're talking about with the blocks with, deciding AMP versus mobile, what it all kind of boils down to is setting specific custom meta for the blocks individually and then saving them as a whole. That would allow you to do your different views because you would be filtering out based on just, I want to see just the AMP version of this. So anything that is either not flagged general or AMP, I'll just not put in. But I have no idea how that would work elegantly in the comments. The current system.

Closing Thoughts

After the session, a few of us chatted further.  One of the ideas discussed was a "Block Council", essentially a group to collaborate on blocks so that there aren't 15 different Facebook blocks floating around (i.e., issues we all see with widgets and plugins). Overall, there is a lot of anxiety around the unknowns of Gutenberg, but most of the people are excited for what Gutenberg offers. There is a lot of work remaining, but the more people that can be involved, the more likely Gutenberg is to be successful.

This post would not have been possible without the transcription by Amanda Lundberg from White Coat Captioning who live captioned the session. Most words are direct from the speaker's mouth. Some have been lightly edited for easier reading. 

Mini Tracks for Technical Conferences

Conference organizing comes with many challenges. Attendees are going to complain about the food. Someone is going to think "There aren't enough SEO/Security/Regular Expression/". Overall, you are not going to be able to make everyone happy. But one way to increase attendee hapiness and make sure people walk away with solid lessons is by curating mini tracks.

Your job as an organizer is to curate the experience and lessons you want your attendees to have. You shouldn't pick a talk because it's popular, you should pick talks that tell the story you are aiming to tell. The story you are telling is one that takes its characters and lessons from the speakers and talks you choose.

What will the attendees be talking about tomorrow? 

The attendees of a conference are going to go back to work, are going to rejoin their professional circles, and bring things with them. Unless you are doing longer workshops, these are going to often be the themes and lessons that are weaved throughout the day. I like to create "mini tracks" of a couple of talks that build upon a theme.  

For example at a WordCamp, a mini track on "Fundamentals of WordPress Development" could include talks on custom post types, child themes, the user and role APIs and post meta. These talks may be at multiple levels, but that's ok.  They all build upon a thesis of "WordPress has multiple ways to be extended". A new to development person may gain an understanding of how a plugin they use works and may come up with a new idea. A new to WordPress developer may gain an understanding of how to structure a custom plugin. An experienced WordPress developer may gain a new way of thinking about when to use one API over an other. 

Some themes come in different styles than others. I've seen a number of different types of mini tracks including ones focused on a vertical ( Real Estate, Education, Enterprise, etc ), those focused on a type of worker ( Freelancer, Manager of People, Remote Worker, etc ), or on more generalized theme (Advancing as a Developer, Redesigning Websites, Social Media). 

Mini Tracks in Action

Mini tracks were something I first observed for a conference at WordCamp Boston 2011. This conference went so far as to print the names of these tracks on the schedule. (Sidenote: The greatest technical talk I've ever seen at a WordCamp was at this WordCamp. )

By grouping three "Enterprise" talks together, an attendee who wanted to gain an understanding about enterprise could make sure they were setup in one location to do so. And while there, they could learn about growing teams, growing code bases, and growing sites. With Boston having so many world class universities, the education track was a natural choice.  This track included engineering talks, strategy talks, and more. It was about a common interest, rather than common skill that united these talks.

Another example can be found at WordCamp DC 2017 were three talks in a row looked at questions concerning equality, inclusion, and intersectionality in three very different ways. Attendees could see these three talks and walk away inspired and with a better understanding of how they could use WordPress in an entirely different way.

If you start working on a conference schedule, consider what the lessons are that you want the attendees to walk away with. Think about the themes in the talks. Schedule something "Hard" or "Complex" or "Technical" where it might not be obvious. Allow people to learn something they weren't ready to learn. Give them something to walk away with that may not be useful for years, but might stick with them. 

Fall Conferences – PHP Madison and WordCamp NYC

Today I get to announce two conferences that I’m speaking at this fall. The first is here in NYC and is the 2015 WordCamp NYC.  I’ll be giving a talk entitled:
Lessons from Science Fiction and Fantasy we can use in Creating Websites.  Here is a short synopsis.

Science Fiction and Fantasy can teach web creators many valuable lessons. From seeing how Daleks with too narrow of a goal always fail to understanding the Klingons value of honor, to hundreds of other we can become better web creators by borrowing lessons from Science Fiction and Fantasy.

Next, I’ll be traveling to Madison, Wisconsin for the first time in almost 10 years to present “How Not To Build A WordPress Plugin” at Madison PHP.  A short synopsis of this talk is

WordPress has a powerful plugin architecture that enables you to build almost anything on top of WordPress. This power though can lead to anti-patterns that slow down sites, confuse users, and make it hard to scale. Let’s look at the wrong way of building plugins so you can avoid these traps.

Tickets for both events are on sale.  If you are either one, make sure to say hi!

WordCamp Europe 2015 pictures

WordCamp Europe 2015 was an exceptionally well run conference[1].  The content of the talks was so good that I mostly kept my camera in my bag, but managed to capture a couple of pictures during the event.

All photos are licensed CC BY-SA-NC 2.0. If you are the subject of a photo and want a difference license, just let me know.

1) Siobham McKeown, the lead organizer is accepting booking to organizer events. If you want a professional organizer, get in touch with her.

The Benefits of a Good Conference Introduction

Many technical conferences have no speaker introductions or very poor introductions.  “Next up is, um *look at phone* Aaron who will be talking about, um *look at screen* The Next Big Thing”.  While this does serve the benefit of helping people make sure they are in the room they intend to be in, it doesn’t do anything to help the crowd get ready for the talk or help the speaker get ready to deliver a talk.  A good introduction on the other hand gives the speaker ethos.

Ethos is one of three components of persuasion that Aristotle identified in his treatise Rhetoric. Ethos serves as the ethical appeal.  It’s the standing a speaker has.  A good introduction explains not who a speaker is, but why they have the privilege of standing up there and presenting. When you introduce a speaker, you give them credibility. This allows them to immediately focus on logos and to a lesser degree pathos. These are Aristotle’s categories for logical and emotional appeals.

At WordCamp NYC 2014, I introduced Boone Gorges, the keynote speaker.  Let’s breakdown my introduction:

At WordCamp NYC 2010, John James Jacoby introduced our next speaker as a core committer to BuddyPress. Today, I get to introduce him as the lead developer of BuddyPress and our keynote speaker.

I am establishing him as someone with a history at the event and as someone with a prominent place in the community.

During the intervening four years, he has become a full time freelance developer, released dozens of free plugins to the WordPress community and has spent thousands of unpaid hours doing development work contributing to open source software projects.

Boone’s talk was going to focus on contributions to WordPress and the role that freelance developers have in the creation of WordPress. By mentioning his work as a full time freelancer and his contributions to the WordPress project, he can be seen right away as someone who knows about the topic. He has lived it.

He has accomplished all of this while also finishing 46th in 2014 National Crossword Tournament.

I knew that one thing Boone would mention was that he had been in the room this address was before, so I helped him establish this by mentioning his excellent placement in the National Crossword Tournament.

He secretly wishes that he has a masters degree in philosophy. He also grew up in Wisconsin, which is known more for its cheese and beer than the semi-pro football team that plays in Green Bay.

Boone isn’t just a developer, he is a person and someone who has studied philosophy. He also likes a bad football team 😀.

Please join me in welcoming our keynote speaker, Boone Gorges.

I create the expectation with the audience that we are beginning.  That I am leaving so they should cheer.

If you are planning a conference, you should spend some time thinking about the introductions.  If you don’t know the speaker well enough, perhaps you can ask them to write a first draft.  If you don’t know why the speaker is going to be getting up there, perhaps you should ask yourself why they are speaking at your event.

I’m speaking at WordCamp Europe 2015

Avatars of the eight WordCamp Europe Speakers Announced today
Along with Tenko Nikolov, Silvan Hagen, Wouter Groenewold , Juliette Reinders Folmer, Eric Mann , Daniel Pataki , Bryce Adams who all were announced today as speakers at WordCamp Europe 2015

We have another group of speakers to introduce you to today. They come from across the WordPress community and around the world. We hope you’re as excited as we are about seeing them in Seville in just a few months!

Source: Welcome to another group of WordCamp Europe speakers | WordCamp Europe 2015

I’m excited to be heading to Seville this June to present at WordCamp Europe.  This is going to be my first time presenting to the European WordPress community.  I’m hoping to meet a number of people I’ve never met and also to hear about all the exciting things other people are working on.

I am this years WordCamp Philly Keynote Speaker

cheesesteak wapuu
Cheesesteak Wapuu designed by Tracy Levesque

We’re pleased to announce that Aaron Jorbin will be the Keynote speaker for WordCamp Philly 2015!

Source: WordCamp Philly Keynote Speaker – Aaron Jorbin | WordCamp Philly 2015

On Saturday, I got a phone call asking if I would be interested in presenting the Keynote address at WordCamp Philly.  I didn’t have to think very long.  WordCamp Philly has long been one of my favorite WordCamps.  It’s a great community and they put on a solid event year after year. On a personal note, It’s also the place I met the woman I love.

If you are near Philadelphia, get your ticket today.

 

WordCamp NYC 2010 Roundup

Wow. WordCamp NYC flew by. Despite all of the great conversations and informative speeches, I feel as though it just flew by. I put up a post featuring my slides on WordPress Documentation on Saturday and wanted to run through some highlights:

  • The lightning speeches were a great idea. It gave me more information the I could have possibly learned by giving each presenter a chance to sample what there presentation was on and why the audience should attend. I’d like to see more WordCamps copy this style.
  • John Ford gave a speech that I only caught the later half of on Security that seemed to go above and beyond the traditional WordPress Security speech.
  • Daryl Koopersmith presented on Advanced Javascript techniques. He demystified many parts of javascript and proved why he is such an important member of the WordPress development community
  • Microsoft generously sponsored a dinner for all of the speakers that was a great opportunity to get to better know some of the people that I chat with regularly online. Thanks Microsoft (I bet me saying that surprises a few people)
  • Volunteering at the genius bar was a lot of fun. It’s always exciting to help people solve there problems.
  • Matt Martz and I presented an unconference session on BackPress. I hope that our attendees enjoyed it and learned how BackPress can help them out and how to setup a project to use it.

Jane Wells, Steve Bruner, and all of the other volunteers put in a lot of effort and I’m incredibly happy with how everything turned out. It was great to hang out with Sheri Bigalow, John Ford, Shayne Sanderson, Matt Martz, Sara Cannon, Jane Wells, Andrew Nacin, Daryl Koopersmith, Boone Gorges, John James Jacoby, and many other smart talented folk. I’m looking forward to WordCamp NYC 2011!

Documentation! My WordCamp NYC 2010 presentation

The slides from my lightning speech about the state of WordPress documentation today and where it is going are available as well as my Don’t be a Wanker, Write your Documentation speech. If you happen to catch a mistake (such as spelling), please comment below.

A few resource to help you on your documentation journey:

I will be hanging out in the Hacker Room tomorrow when I’m not helping out at the genius bar or running a unconference session on with Matt Martz (sivel). I also have some Clearspring stickers that I would love to hand out. I’m in a red bow tie today and will be wearing a blue one tomorrow.

If you want to contribute a documentation patch to WordPress, come to the Hacker Room tomorrow. I’ll help you out and we can try to get Andrew Nacin to commit it.

WordCamp Portland Rocks!

I’m at WordCamp Portland today and tomorrow. I’ll be giving a speech on Building Child Themes: The smart way to develop WordPress themes tomorrow at 4:15pm. If you build or modify themes, this will be a good session for you to attend.

If you’re here and want to say hi, I’m the guy wearing a blue and white shirt with a yellow bow tie today. Check my twitter tomorrow to see what I’m wearing then.

If you’re not here, Check out the Live Stream
Continue reading WordCamp Portland Rocks!