A Few Use Cases I Would Like To See Solved In Gutenberg

While I've used WordPress in many ways over the last nearly ten years, I primarily spend my time working on two publications: Scary Mommy and Cafe. "Big Media" publications have challenges and use cases that are different than standard WordPress sites. As Gutenberg continues to evolve, there are a number of use cases that I see as needing to be accommodated. Most of these are things that don't need to be solved "out of the box", but that the extensibility of Gutenberg should accommodate.

It's possible that some of these use cases are already accounted for, but that that the documentation on them is lacking. 

Publication Requirements

Before "Publish" can be pressed, a number of steps need to happen. This could be selecting a featured image, making sure some taxonomies are properly filled out, or that there is 2nd sign off. This takes the form from the super basic such as what make.wordpress.org sites use ( an "Are You Sure" checkbox that must be checked before the publish button is enabled) to the complex custom plugins that are prevalent.

The important part is that there needs to be a documented and extensible way of only allowing posts to be published when other criteria have been met. 

Block Removal

Out of the box, Gutenberg has alot of blocks.  Not every site needs a "Verse" block, and there needs to be a way to remove it. As the classic saying goes, "Design is done not when there is nothing left to add, but instead when there is nothing left to take away".  The ability to remove blocks is necessary for the success of Gutenberg.

Block Modification

Currently, the headings block in Gutenberg allows for selecting H2, H3, and H4. What about sites that also support H5? What about sites that only use H2?  There is a need to make minor modifications to many of the default blocks. While some sites and some users benefit from allowing the content producer to select the alignment of blocks, other sites have strict rules and want to lock it down.

Block Rules

There is a need for blocks such as subheads that only exist after the title. Similarly, there may be editorial rules such as never using more than 3 twitter embeds, or always having at least two paragraphs between headings. These should be a way to enforce these rules.

As Gutenberg continues to evolve, more modification requirements are sure to come up. It's going to take years before all sites can use Gutenberg due to the millions of dollars invested in custom editorial processes, but these are my initial modification use cases.  What are yours?

BRAD: Better Responsibility Around Discoverability

Last week, I saw a tweet that identified a challenge for the WordPress UI:

https://twitter.com/williamsba/status/885520668154089472

I wasn’t alone in seeing this as an issue that was worth solving:

https://twitter.com/norcross/status/885582016456130560

Knowing that plugins are best when they are built and supported by teams rather than individuals, Norcross and I started collaborating (though in the end, the majority of the code was written by him). What we came up with a plugin to improve the experience for site creators. As the responses to Mr. Williams tweet shows, It’s very common to mark a site as inaccessible to search engines and then forget to uncheck that setting when it comes time to launch.

BRAD aims to solve this by moving the notice about search engine discouragement to the top of the dashboard.  It also becomes a recurring dismissable notification.

  • Every week, there is a check to see if the site is still hidden from search engines, and if it is the notice comes back
  • If you change the siteurl or home options, then the notice comes back (note, you need to change these via the UI or via wp-cli, directly changing the DB)

BRAD is already loved by many

I was lost before BRAD

Before this plugin, I never knew if my site was excluded from search engines or not. And if it was, where the heck did they move the “Discourage search engines from indexing this site” checkbox to?

Thank you, BRAD

Heavy praise from the leader of a great WordPress Agency!

Life changer!

BRAD literally changed my life – now BRAD tells me where to go every day!

It feels amazing to help change the life of someone who wrote the book on WordPress (over and over again)

If you would like to contribute to BRAD, join us on Github. If you are building sites, add BRAD to your WordPress site today!

Birth of a Community

Seven years ago today, the First WordPress D.C. Meetup that was focused on a continuity of community took place. Tomorrow the first WordCampDC kicks off. It's been a heck of a journey. 

I've been gone from the community for a few years.  I know the community has continued to evolve and grow, but for the first 3 years of its existence, I was honored to serve it as one of the organizers. Looking back, there are a number of things that stand out to me about those early days of WordPress DC. 

The DC community has helped many people grow. Many people took on larger roles in the WordPress community in part due to the involvement in the meetup. Committers, Lead Developers, Training Team Leads, Speakers, Meetup Organizers, Meetup Organizer Organizers, Code Contributors, Testers, Theme Reviewers, Accessibility Team Leads and Support team members. You would be hard pressed to find a community that has done more for WordPress.

I know of countless people who got jobs because they started networking at the WordPress DC meetup. Early on, we stole from the PHP meetup the idea of asking "Who's hiring, Who's looking" at the end of the meetup and giving people a moment to introduce themselves.

Early on, the decision was made to focus the main monthly meetup on users of WordPress, with the idea that designers and developers can always learn more about users and for many of them, networking after the meetup could be even more valuable than hearing yet another talk about custom walkers. We did hold a number of special events especially aimed at developers and designers though. We tried "Brown Bag Lunches", Saturday afternoon pre-release testing sessions, Friday Night's with
Mitcho (sadly, only one since he was only in town one night), and "Happiness Socials" focused on helping each other with issues. 

The collaboration the meetup had with the broader DC community helped WordPressDC standout.  The Open Source BBQ become the summer event that everyone looked forward to.

This isn't to say the meetup group was perfect.  It took us a too long to realize that our speaker roster was heavily male, and leaned young.  Thankfully, we realized it before it poisoned the community.  In many ways, it reminds me of one of my favorite tweets. We fucked up, but then we tried not to make the same mistake again. 

Finally, the friendships that grew and developed can't be understated. For many of us, The second Tuesday of the month became a highlight that we didn't want to miss. Many people I met or got to know better through the WordPressDC community are people I still consider friends today.

Happy Birthday WordPressDC.  Tomorrow, we celebrate with the first WordCamp DC!

WordPress Serves Many Masters

I have used WordPress in a number of different ways over the last (just shy of )10 years.  I got my start building a blog that my friends I and I wrote
satire on. We got a bit of a following (I remember the first time we hit 1000 views in a day on one article, it was exciting). I then moved on to building a site for a movie my friends and I wanted to make, before starting freelancing and being exposed to many sites.

Freelancing Days

Over the course of about two and a half years of freelancing, I worked with dozens of clients. They most commonly were:

  • Comedians
  • Small non-profits.
  • Small Businesses and Restaurants
  • An SEO consultant on products that he offered (my first foray into product development rather than developing primarily for marketing) 

A site I worked onwhile freelancing

The first three groups of sites make up a large percentage of WordPress sites. There are freelancers and agencies in just about every town/city in the world helping Individuals, smaller non-profits, small businesses, and restaurants get online every day. In general, the organization has little knowledge about what tools they should use, and doesn't care what WordPress is. These are the passive users of WordPress.

The Enterprise

I then moved to a couple of large organizations( ranging from 50 to 500,000 employees). Here, WordPress was chosen by the organization, but it was never the main technology of the site.  It was a supplement

WordPress supplemented the technology, rather than being its base.

Each of these organizations had at least 5 engineers, but it was rarely more than one or two people who worked on WordPress, and outside of security updates, months would go by without any work being done to WordPress from a coding standpoint.  At one organization during a major redesign, the only reason WordPress was updated to match the site design was due to other tasks taking less time than anticipated.  

Big Media

Some of the biggest WordPress sites (at the time) were at Condé Nast. The New Yorker switching to WordPress received praise from Matt Mullenweg (twice!), while WIRED, Vogue, Bon Appetit, and others were receiving large amounts of page views and allowing editorial teams to seamlessly publish a lot of content. Working with the teams on each of these sites showed me that when you have multiple people all working on WordPress at once, you can make it do whatever you need it to.

Let's Try Something Different

The next step was a short stop building an analytics product with WordPress as the main piece of the backend technology. Essentially, it was using WordPress as a framework. WordPress provided much of what we needed, but we could have just as easily used something that advertises itself as a framework. WordPress gave us a lot of things out of the box though. We didn't need to build a user system, we could use WordPress. We didn't need to build a command line interface, we could use WP-CLI. By using WordPress, we got a lot out of the box for free.

Where I am now

I primarily work on five sites now: two personal, one volunteer non-profit, two for work. My personal sites are "boring" sites. The non-profit site is rather complicated, in that it is a marketing site, a conference registration system, a blog, and an intranet all in one. But it's also not 100% WordPress. Many pieces have been carried forward

And my two work sites? Those are content-heavy media sites. They feature a lot of videos and regularly go viral. 

What WordPress Excels At

The problem for WordPress is that for all of these sites, it works pretty well.  It's far from perfect, but it works. One of the biggest challenges for WordPress, especially when it comes to core features that are used on almost all sites, is that it needs to work for many many use cases. Working on sites of all shapes and sizes has taught me there is rarely one solution that solves every site's problems. 

Serving many masters means people look at WordPress and think "It's just a blog", and it is, it powers this blog.  They look at it and think "It's for small business brochure sites" and it is, it powers many of them.  They look at it and think "It's for big media sites with large staff" and it is, it powers ScaryMommy.

Scale is often thought of as the ability to receive a lot of traffic or handle a lot of users, but scale also means working for many use cases.  This is the type of scale that is the biggest challenge for WordPress. It doesn't have a narrow focus of serving one use case, it has a broad focus of serving all users use cases. Scaling WordPress from a core perspective means providing features that first, work for all, and second can be modified to be better for them as well.  Out of the box, WordPress is never going to solve every use case, but when features make it harder for a use case, we really need to ask ourselves if they should go into core.

Patty Melts

One of the greatest food items is the patty melt. It's a burger, it's a sandwich, it's delicious.

As great dinner sandwiches go, it is hard to beat the patty melt

The patty melts deliciousness comes from the fact that's it's only four components. Rye bread,
hamburger, Cheese, and grilled onions. The simplicity doesn't mean you can't customize it though. Dark, light, and marbled rye each add a different flavor, but the biggest way to customize it though is the choice of cheese. Swiss and American are the two classics, but I think cheddar and muenster also deserve consideration.

BONUS: If you want to make the patty melt even better, make sure to include a pickle on the side for dessert.

A patty melt with a side of fries and pickles in a bag

Random Thoughts on Gutenberg

Gutenberg is being developed as the next generation WordPress editor. I made my first contribution earlier today. Nothing big, but something that will hopefully help people test it.  The contribution process was 💯, but for end users, that’s not the important thing. What is important is the actual editor.

I’ve seen talk that Gutenberg is in “Open Beta” now, but I think calling this beta software is still premature. I think there is plenty that will change between now and any possible inclusion in WordPress core for Gutenberg. Here are my random thoughts and my first reactions to using Gutenberg.

  • It’s pretty.  And Fast. I never thought of the post editor as being slow, but there is something about Gutenberg that makes it feel fast.
  • There are a lot of rough edges. It’s hard to know what is a bug, what is intentional,  what just hasn’t been done yet, and what hasn’t been thought of.
  • There is an option for “Drop Cap” that doesn’t seem to do anything on the front end yet.
  • I’ve also never intentionally been able to highlight multiple blocks at once, but I’ve sure done it on accident a lot.
  • I can’t seem to delete some blocks without going into the text format.
  • I really like how the plugin is implemented. Being able to test Gutenberg without completely giving up the current editor is awesome and will hopefully help encourage people to test it out.
  • The tab key doesn’t let me actually add a tab, even inside a code block.
  • Existing content can’t really be imported. I hope this is something that is on the roadmap since it sure would be odd to Gutenberg sometimes not work like Gutenberg.
  • I miss a lot of the meta boxes I’m used to seeing on the screen.  Things like Yoast SEO (on some sites) and custom taxonomies are just not shown. If every metabox ever made for WordPress needs to be remade, it sure is going to make developers lives a living hell.
  • Adding images and the image
    block in general are confusing. For example, despite having “All da” ( which I think is “All Dates” but is cut off) selected, only my 10 most recent images are shown initially.  There are no names/text associated with the
  • I can’t figure out how to add an image to this list.
  • Autoembeds seem to work, but don’t display anything in the UI.
  • The Embed URL block tells me that I can’t embed that content, but the front end of my site tells me differently.
  • The sidebar being empty 3/4 of the time feels really odd.
  • The default state is likely my favorite “Distraction Free Writing” implementation in WordPress yet.  I’m simultaneously able to focus on my content, and yet I have all the tools I need for writing. I don’t have all the tools I need for content creation.
  • I need to take my hands off my keyboard more than usual. Adding a paragraph after a list isn’t easy to do with just a keyboard.

Lots of things are constantly changing with Gutenberg ( my small change was merged within hours of proposing it). I’m going to keep my eye on it. The content for this post was drafted in Gutenberg and I’m going to try to continue to do that going forward.  Go install Gutenberg, so you can generate your own opinons on it.

Up close differences

Painting, while often thought of a 2d medium, is much more three-dimensional than it is often given credit. It makes it hard to appreciate a work of art in two dimensions.

I spent a while yesterday studying two of MoMA’s masterpieces.  Flag by Jasper John stood outside the entrance for the Robert Rauschenberg: Among Friends exhibit that’s in place right now. From a distance, flag appears to be a textured painting of an American Flag, but as you get close you can not only see that it’s newsprint underneath, but you can actually read the paper. You can see how it hang off the side of one of the stripes.  You can hear other people ask ridiculous questions like “Was this made before Alaska and Hawaii were states and that’s why there aren’t 50 stars on it?” (there are 56 stars). Up close and in person, you really get to appreciate the aspects of the piece you can’t see from a 2d picture.

Around the corner, Roy Lichtenstein’s iconic Drowning Girl inspired a similar feeling. When you look at photographs of Drowning Girl or you view it from far away, it comes across as a comic book piece that likely was first done in pencil, and then gone back over in ink (we can debate if this is tracing some other time) but upclose it becomes clearer that it’s not just clean lines. The strong black lines that dominate the painting aren’t smooth. The brush marks are clear. The dots that make up the shading are far from uniform in size. Many of them, especially in the lower left of the painting blend into each other.

When looking at things from far away, it’s easy to miss the imperfections. But it’s the imperfections that make it art. In many ways, it’s the same when we are working on a website. From a distance, when we aren’t intimately involved, there are things we aren’t going to see. When we get close, we can start to really understand what is going. We learn the background for why specific decisions get made. It can also cloud us. We stop seeing the big picture and focus on the flaws.

Balancing the close-up view of the imperfections and the broader story is always going to be a challenge. Concurring it though is what helps separate good from great.

Thirty Four

Today I’m still three years away from another prime birthday, but this is my ninth semiprime birthday and my ninth Fibonacci birthday.  That last Fibonacci birthday was a bit of a bigger deal though.

I didn’t publish my post about thirty-three. I spent the day fairly exhausted after having my brother visit, and for a while when I get exhausted I tend to get fairly down emotionally. I need to get better with sleeping. Maybe I’ll try that as a thirty-four-year-old.

As a thirty-three year old, I really threw myself into making art. I painted, I drew, I burned wood.  I often struggle to love anything I create, but every once in a while I do. Lately, I’ve mostly been doing watercolor sketching in bars, painting with a brush attached to a Dremel, and burning small pieces of wood. It’s fun to experiment with things that are so different than how I spend my days. It’s important to step away from the computer. I’m glad I found an outlet for me to do that in 2016.

Professionally, thirty-three was the year I was honored with the opportunity to be the deputy lead of a WordPress release. Helping do that will forever be an important accomplishment and one of my most important contributions to WordPress.  I also switched jobs (again), moving back into media and publishing. I’ve also added to new events to my volunteer schedule, taking a (broader) role in WordCamp US and being a part of the inaugural team around WordCamp for Publishers. The role I have as a part of the Model UN I help organize has evolved yet again and I’ve switched into a senior staff role that is less focused on the day to day running of a department and is now completely focused on photography, technology, and helping where it is needed during the actual event.

Thirty-three had challenges. Every year does. These challenges won’t magically go away with me turning a year older. Today is really just another day, it just happens to be the anniversiry of the day I was born.  So I guess I’ll drink to that. 🍻🥂

Aaron’s Rule for Better Meetings #6

An addendum to my initial list of rules for better meetings.

  1. All Meetings where product decisions get made need to include a designer and an engineer. It’s important to provide multiple perspectives when making product decisions, and none of those decisions should be made without engineering and design having an opportunity to explain their perspective on benefits and costs.

photo: used under a Creative Commons Attribution license. Original: #WOCinTech