Categories
WordPress

Block-Business

This post is a response to a question recently asked by WP Tavern: Can the Block Directory and Business Interests Coexist?


When you stop to think about it, the WordPress Plugin and Theme ecosystem is a shining example of the Free & Open Source Software ideology working sustainably.

Take a completely open source project, and extend it with purely open source plugins. Keep it up for 16 years, until you power over a third of the internet, with no signs of stopping.

It seems outrageous, but that’s what WordPress has done!

The WordPress ecosystem is a perfect answer to skepticism from die-hard capitalists – it really is possible to build a business on non-proprietary, freely licensed, shared knowledge.

Of course, this doesn’t work without some private enterprise – there’s got to be some money in it, somewhere, if it’s going to last. Here we meet the cast: Hosting, Premium Plugins, Premium Themes, and Marketplaces.

WordPress.org’s laissez-faire approach has, thus far, created an ecosystem perfectly balanced between free for accessibility, and premium for sustainability.

> Enter stage left: Blocks

This year, a new extension paradigm is being introduced to WordPress. We’ll soon meet the Block Directory, and we’ll install and manage Blocks in the same way as Plugins and Themes.

Put briefly, I’d like to propose a new type of WordPress plugin that provides blocks and nothing else: Single Block Plugins. These will be hosted in a separate Block Directory section of the Plugin Directory.

Alex Shiels – The Block Directory, and a new type of plugin

It’s going to look something like this:

Mel Choyce-Dwan – Block Directory in WP-Admin: V1

This looks amazing. Especially the “grouping” of blocks below the parent block library. Imagine this on the Plugins screen, for all your WooCommerce extensions!

Since Blocks are basically just Plugins, there shouldn’t be any reason we couldn’t build a Block business in the same way as our Plugin Businesses, right?

Wrong. 😕

> Cue scary music
> Cue fog machine
> Enter: The Block Directory Guidelines

In no uncertain terms, the Block Directory forbids monetising Blocks. From the Guidelines:

5. Block Plugins must not require payment or a paid account to function.

This includes payment for premium features. You may use the donation link feature.

8. Must not promote other blocks, plugins, or themes.

Block Plugins are blocks. They must not include advertisements, prompts, or promotional messages.

Ouch.

Although I’m sure a few excited developers will create some great blocks just for kicks, without any long-term support model, these efforts are bound to be short-lived, unsupported, and unsustainable.

5 years from now the Block Directory will be full of blocks that haven’t been updated in the last 4 years.

Scene: Luke Has An Idea

> Spotlight centre stage

Instead of completely removing any monetisation opportunities, we could create a user experience which anticipates which Blocks are free of ads and up-sells, and which aren’t.

We could allow users to filter out plugins with strings attached, so that when an advertising fiasco like this happens, it was (in a way) consented to.

Apple’s App Store does this with In-App Purchases:

Jonathan Wold and I came up with this idea during an episode of Crossword. The more I think about it, the more it makes sense.

So I put together a few mockups. Concepts of how this might look in the Plugin and Block Directory. I’ve taken a few different approaches – which do you think works best?

The “Contains Ads” text is right below the Install button, can’t miss it.
Some plugins require an account with a third-party service.
Here the “Sign-In Required” text is shown below More Details – this makes it more informational, implying less of a “warning” before install.
Alternatively, we could move the text to the bottom section. This area shows information helpful for deciding between a number of different options.
Rather than denote “Ads” or “Sign-In”, we could show a badge which references the plugin’s monetisation model, if it has one. Freemium, Premium, or Paid Service.

The language here is a bit tricky. I’m not 100% happy with the words I chose, but I’m confident we can figure that out.

We can apply the same thinking to the Block Directory:

These Block Directory designs are still being iterated on, but I love how simple and clear they are. This adds just one more element into the mix.

Taking this approach would give users a better experience with Blocks and Plugins, and contribute to a more vibrant and sustainable Block Directory.

It might even pave the way to a future where WordPress.org handles payments for premium extensions natively!

> Audience cheers
> Ensemble bows

The End

Categories
WordPress

An Ecosystem Play

The most common question I hear from agencies and freelancers is “where do I start”? They’re ready to dive-in and build Gutenberg-first themes, but there’s no clear starter theme to get them going.

What does a Gutenberg-first theme even look like?

Getting Started

Once upon a time, we could use starter themes like Underscores to kickstart a new site build – but most of these themes haven’t seen any updates for a long time. Not counting community PRs:

Notice a trend here? Starter themes seem to have stopped development around the start of 2019 – at the exact time that Gutenberg was released (December 2018).

Because of the new block paradigm, the future of themes in WordPress is ambiguous and uncertain, and that’s causing foundational theme developers to put on the breaks.

When Powers Combine

An exception to this trend is the Genesis Framework by StudioPress.

StudioPress was acquired by WP Engine in June 2018, just a few months before they acquired Atomic Blocks. Their approach to Gutenberg-first themes is to build theme support for all the blocks in the Atomic library natively, with Genesis.

This is an ecosystem play: Hosting + Base Theme + Block Library. You can create a build modern, fully-featured WordPress site with the combined power of:

WP Engine + Genesis + Atomic

It’s not just WP Engine who has adopted this strategy. GoDaddy have done exactly the same thing. In April 2019, GoDaddy acquired ThemeBeans, including their CoBlocks plugin. Rich Tabor (a recent guest on the Crossword podcast) started work almost immediately on a new theme called Go.

This is exactly the same ecosystem play:

GoDaddy + Go + CoBlocks

AirPods work best with an iPhone, and an iPhone works best with a Mac. In the same way, if you build with Genesis, you’ll also want to host with WP Engine, and use Atomic Blocks.

We start to see something that looks a bit like this:

HostingThemeBlocks
WP EngineGenesisAtomic Blocks
GoDaddyGoCoBlocks

Local Development

For any theme build, the first step is almost always getting a local development environment up and running. There are a few options out there (Vagrant, DesktopServer, XAMPP), but the most widely-used solution (by far) is Local by Flywheel

… which was acquired by WP Engine in June 2019.

Of course, this ties back into ecosystem thinking – if I use Local, I’m much more likely to host with Flywheel. It also introduces us to a very important part of building ecosystems: Integration.

Integration

Integration maximises the likelihood of success for new products in the ecosystem, leading to more and more lock-in effect. Our table is starting to look more like:

Since GoDaddy’s target audience is more small-business focused (not really the developer type), I don’t think we’re likely to see GoDaddy exploring local development environments.

Since WP Engine have more of a focus on agencies and freelancers, you can see that they’ve established some very strong beachheads.

As an agency, buying-in to the WP Engine ecosystem is an easy decision, since there are multiple points of integration. On the other hand, if you just want to build a site without any development experience, GoDaddy makes it easy with Go + CoBlocks.

If you’re SiteGround, Kinsta, Pagely, or Dreamhost, you’ve got to start thinking in terms of ecosystems and integrations, or you’ll be left behind.

The Weakest Link

Interestingly, the poorest user experience for both WP Engine and GoDaddy is their core offering – their managed hosting. In both cases, managing your WordPress sites is clunky and difficult.

Flywheel’s management interface is the total opposite – a genuine delight to use. If WP Engine can learn a UX lesson or two from their friends at Flywheel, they’ll have a killer combo.

Or better yet, bring Genesis and Atomic Block to Flywheel customers!

A Consolidated Web?

The thing about ecosystems is that they create sudo-monopolies. Does Apple have a monopoly on computers? No, but they have a monopoly on MacOS – and if you’ve invested into that, it’s very hard to escape.

It’s simply not possible to compete with integrated ecosystems in the long-term. I feel safe in predicting that WordPress hosting providers will consolidate over the next 5 years, to the point where there are really only 3 or 4 options, each with its unique set of products and services.²

What does this mean for the open web?

Is WordPress still distributed if it’s primarily hosted by just four different providers?

Yes – it is. When we talk about an open web being distributed, there are two aspects that matter:

  • The URL layer – what visitors see in the address bar
  • The CMS layer – portable and non-proprietary software

WordPress sites can still be built in weird and wonderful ways, and exist outside of a centralised domain, even if they’re all hosted in the same place.


1. An interesting obstacle to keep an eye on is block-based themes. The entire concept of a theme in WordPress will experience some major disruption in 2020, which could potentially upset Genesis and Go (though Go seems better positioned for agility here).

2. Not discussed in this article is Automattic, who could easily make a Managed WordPress play. In the case of WordPress.com, there’s a tight integration between the “Management Dashboard”, and the WordPress installation itself. Add to that Products like Calypso or WooCommerce, and you’ve got an easy entry into the WordPress ecosystem market.

Categories
Trivia

2019 End-of-Year Trivia

Every year, Talia and I have a tradition of creating a quiz for family and friends, testing their recollection of world news, entertainment, sports, technology, and current-affairs over the past 12 months.

Here’s the Trivia questions for 2019. There’s a link to the answers (and the 2018 quiz) below.

January

Who won the 2019 Australian Open Men’s Singles?

February

Name the actor, film, and character who won the Best Actor Oscar at the 91st Academy Awards.

March

In the wake of New Zealand’s deadliest ever mass shootings, Jacinda Arden wore what as a sign of solidarity?

April

A massive fire tore through which famous 850-year-old landmark, nearly destroying it beyond repair?

May

Named by Time magazine as a “next generation leader”, who was featured on the Time May cover?

June

Samsung cancelled the release of their new Galaxy phone, after multiple review units were found to be defective and easily damaged. Which feature, unique to this phone, caused these problems?

July

Which national team won the 2019 FIFA Women’s World Cup?

August

Felix Kjellberg became the first ever YouTuber to pass 100 million subscribers. Kjellberg is more commonly known online under what moniker?

September

Hurricane Dorian was one of the most powerful tropical cyclones to ever strike which region of the Americas?

October

Police used a water cannon to spray a mosque with blue dye, in retaliation against protestors. Where did this happen?

November

A TV character named “The Child” took the world by storm after being introduced on a new television show. What name is “The Child” more commonly known as?

December

President Trump became the third president in history to achieve which political status?

How well do you remember 2018?

Categories
Religion

SantaGate

There’s an important conversation about Xmas happening in the open-source community right now.

VS Code (a very popular code editor made by Microsoft) received a festive beta update, in which the Settings icon was adorned with a Santa hat. Shortly after, a GitHub issue was opened describing the symbol as “very offensive”, and the Santa hat was promptly removed.

There’s a great write up on the community backlash to this decision, and Microsoft’s response, on Visual Studio Magazine. I wanted to step into the conversation with my Jewish perspective.

Important note: My particular take on this, especially toward the end, differs from mainstream Judaism. Which should be unsurprising. If there’s one thing Jews can agree on its that we don’t agree.

The Ghost of Xmas Past

You might have noticed that Jews tend to prefer the styling “Xmas” to “Christmas”. That’s because for us, the “Christ” part of Christmas is closely associated with violent anti-Semitism.

For many Jews, Santa is a modern day representation of Saint Nicholas – an icon, and reminder, of Christianity.

I won’t go into detail here (Sefaria has a great writeup on Christian anti-Semitism), except to say that we’ve suffered Crusades, pogroms, the Inquisition, blood libels, forced conversions, and the Holocaust – all in the name of Christ.

So, of course, when we see a hat synonymous with Christmas, we make a connection with that traumatic history.

To me, Santa’s uniform isn’t anywhere near as offensive as a swastika, but it’s on the same spectrum.

I don’t want to dwell on this, though. It’s what we call p’shat – the plain sense of things. There’s another layer that I think could be helpful to unpack.

Downward Pressure

Another aspect of the Jewish relationship with Xmas is the idea of living as a minority within a dominant culture.

As Jews in the West, we see Xmas everywhere at this time of year. It’s impossible to avoid. Our kids are taught Xmas songs in school and we are bombarded with Xmas trees and Santas while grocery shopping.

Nobody complains about this, it’s just part of living in the West. In fact, Jews are better off in the West than anywhere else in the world we’ve tried to call home (outside of Israel). We love it here!

But when thinking about embracing our own culture, and passing it on to our children, there is a very real challenge to “rise above” the dominant culture that surrounds us.

We try to make Chanukah even more fun and exciting. For example, Chanukah never included presents until it started competing with Xmas (now we have 8 nights of presents!).

If we don’t make an effort, Chanukah would be drowned out in the noise of Xmas. It’s this constant downward pressure from the dominant culture that can cause frustration and angst, and maybe even result in an anti-Santa GitHub issue.

Quick aside: The Chanukah story – the story of the Maccabees – is all about a Jewish minority fighting against the dominant culture.

Against Insularity

One way that Jewish communities protect their Chanukiot (Chanukah menorahs) from being out-shined by Xmas lights is by retreating into private communities. We send our kids to Jewish schools, eat in Jewish restaurants, arrange Jewish marriages, and try to have as little to do with non-Jews as possible.

This strategy has worked great so far. There aren’t very many cultures around today as ancient as ours (though there are a few).

I have to wonder, though, whether our insularity might have nudged our neighbours a little in the direction of jingoism.

My kids don’t go to a Jewish school. This means that my wife and I have to make a huge effort at home to teach them about Jewish culture, history, language, art, and tradition.

But it also means that every other kid at their school knows a Jew.

Personal story time: I cried during school assembly this year.

Instead of an Xmas carol, my son’s entire class sang I have a little dreidel. They all learned a few Hebrew letters and the Chanukah story. How can anyone harbour anti-Semitic hatred after embracing their Jewish friend like that?

It’s become glaringly obvious to me that the pathway to peace is integration, not insularity.¹

Techno-Optimism

The progressivism² at play – both at our school and in the VS Code Github repo – has become the norm in tech communities. Microsoft recognised their mistake, and rather than ignore it (or worse cry war on christmas), they fixed it and apologised.

I don’t think that would have happened when I was a kid. Maybe not even 10 years ago. We’re living in a moment where the world is expected to not only “cater for”, but embrace the needs and nuances of minorities³.

And credit where credit’s due – we wouldn’t be here without LGBTQ activists, Me Too, and Black Twitter.

We have, at times, overbalanced. There have been extreme cases of call-out and cancel culture that caused more harm than good. But there’s something profoundly good at the heart of this simple idea which (I hope) has finally begun to sink in:

Do to others as you would have them do to you.


1. Integration is not the same thing as assimilation. As Jews, we have a G-d given mandate to be uniquely “separate”. I’m talking about rainbow, not beige.

2. I like to thing of it as “Anti-Otherising” – making a concerted effort to make outsiders feel welcome. I don’t know of a better word, though.

3. Again – my lack of adequate language is at play here. My intention is to include the momentum of feminism in this, though women are not a minority. The term “under-privileged” doesn’t work here either, because Jews are very privileged. Jews (especially Ashkenazim) sit in a very difficult to describe place – to the far right we’re wolves in white skin, but to the far left we’re the at the zenith of white privilege.

Categories
WordPress

🧂

Reflecting on the topics I’ve covered on this blog recently, I can’t help but notice that my tone has been pretty salty lately. Despite receiving a ton of positive feedback on my writing (thank you!), I’m personally disappointed that I’ve not been more constructive.

In a recent Twitter thread with Birgit Pauli-Haack (whom I really admire) I came to realise that I was just having a whinge, and not providing any productive feedback. Birgit and Mark – I apologise.

This grouchy attitude really runs contrary to how I usually think. I try to be a “if you don’t like it, fix it” kinda guy.

As an aside, I’ve evolved my thinking on the problem with Gutenberg development. The issue is not just that key decisions about the future of WordPress are facilitated through a developer tool¹ – the issue is that nobody is proactively seeking input from the WordPress users who aren’t involved in core development.

One of the things I love about the WordPress community is that there’s a culture of “we’ll hear you out”. When an irritated crazy with an axe to grind joins the Core Dev Meeting on Slack, it’s always handled with grace and care. Criticism rarely results in controversial political encounters.

I think this comes from the top. Listening, recognising, responding in a politically sensitive way – that’s one of Matt Mullenweg’s superpowers. You should see this guy deftly manoeuvre through questions from the floor during a State of the Word address. It’s impressive!

Maybe we’ve gotten too good at handling criticism? In an open source project the size of WordPress, critics are numerous and persistent. Out of necessity, we’ve become experts at hiding negative sentiment in plain sight.

For example, nobody seems to be talking about this:

The Classic Editor, used to disable Gutenberg, is the fourth most popular plugin. And consider me suspicious about Contact Form 7 taking that top spot.

It seems like simply noticing and writing about problems with the WordPress project² doesn’t really achieve much. So in the future, I’ll attempt to include a practical aspect to my writing.

For example, I might write about how it’s nearly impossible for plugin authors to have a clear picture of how (or even how many) people use their plugin, due to restrictions in the plugin guidelines. With this post, I could include a functional workaround – a loophole in the guidelines, based on examples from Jetpack and Woo.

In this manner, I hope to keep writing here, and hopefully have more of a positive impact on the ecosystem³.


1. Don’t try to convince me that GitHub isn’t a developer tool. I know discussions also happen on the Make blog and Slack, but it’s all funnelled back to GitHub for the real decision making.

2. Insularity from users; power dynamics with Automattic; plugin guideline hypocrisies (looking at you Jetpack); Envato’s enduring WordCamp ban; developer-centric decision making; the list goes on.

3. Can anyone recommend a good footnotes plugin?