Home Blog

Gutenberg Times: Gutenberg 24.0, the road to 7.2, a new default theme named Ipsum, and more—Weekend Edition 377

0

Howdy,

Before anything else: if you maintain WordPress sites, go update them. WordPress 7.1.2 shipped on September 22 to patch a single critical vulnerability in page template resolution, one that lets an unauthenticated attacker load a chosen PHP file from outside your active theme’s directories.

Now let’s move on to better things. Anne McCarthy is auctioning off her framed WordPress release albums, the ones given to release squad members. All the proceeds go to Stimpunks, a nonprofit started by Ryan Boren, who joined the project in 2003 and wrote the plugin system that nearly every site runs on. She calls the albums “a form of a gold medal to me,” and she built the auction site herself in a week. The starting bid is $500.

We also learned this fortnight that the next default theme will be called Ipsum, which means 16 years of naming themes after the calendar is over. Admittedly, I’ll miss the old Twenty* names a little. But it’s time for something new for a new era.

Two more quick things: WordPress has taken its turn leading the Open Website Alliance, alongside Drupal, Joomla!, and TYPO3, with Mary Hubbard holding the rotating presidency for the WordPress Foundation. And starting with 7.2 in December, release parties move from in-person events to livestreamed webinars, so the whole squad can actually be there.

Enjoy your weekend!

Your friendly neighborhood dev advocate, 🍂
Justin Tadlock


Developing Gutenberg and WordPress

Two security releases in six days. WordPress 7.1.2 is the urgent one, and it’s security-only: an unauthenticated attacker can, under the right conditions, make page template resolution include a readable local PHP file from outside the active theme directories. John Blackbourn led the release, Robert Ressl disclosed it, and the fix was backported to every eligible branch going back to 4.7.

Five days earlier, WordPress 7.1.1 arrived as the regular maintenance release with 11 security fixes, 17 bug fixes on Core, and 19 for the Block Editor. Aaron Jorbin led it, and Anthropic is credited twice in the security list.


Aki Hamano announced what’s new in Gutenberg 24.0. The big feature: post title changes now show up in revisions with a proper diff, so you can stop guessing when a rename happened. The Gallery block gains a Grid variation with column count and “crop images to fit” configurable per breakpoint, and Site Title picks up fit-text, scaling to the width available instead of a fixed point size. And nearly 100 icons were redrawn on a stroke-based grid.


Stalled out somewhere between “clone the repo” and “why won’t this build”? Contributor Toolkit 1.2 from JuanMa Garrido now covers Gutenberg as well as Core, and it runs a stock WordPress in Playground with your checkout mounted as the plugin, already activated. No local server, no Docker.

The road to 7.2

Anne McCarthy published the roadmap to 7.2, and it looks to be a security-heavy cycle by WordPress standards. Sudo mode gates sensitive admin actions behind re-authentication, a new Secrets API gives credentials “a first-class way to store credentials safely,” and Application Passwords get hardened. Notes should gain a suggestion mode and emoji reactions. Designers get form element customization in Global Styles and custom block states. The final release lands in early December.


Real-time collaboration came out of WordPress 7.0, and Chris Zarate has now explained why in a post on moving to a server-aware approach for collaboration, written with Alec Geatches, Dennis Snell, ingeniumed, and Paul Kevan. The old design had browsers hold the post in a CRDT document and sync peer-to-peer, which broke three ways: the server couldn’t tell who made which edit, opening the door to content laundering; REST API and WP-CLI updates couldn’t participate, so saves became all-or-nothing overwrites; and a dropped connection could take your work with it. Three candidate sync engines are on the table, with a gutenberg-sync-engines repo to test against. If you build editorial tooling, have an opinion about this now.


The next default theme has a name, and for the first time in well over a decade, it isn’t a year. Henrique Iamarino introduced Ipsum, built with Carolina Nymark, Maggie Cabrera, and Juanfra Aldasoro. The reasoning behind the naming change: “default themes will have their own names and change when the design calls for it, not when the calendar does.” The theme is intentionally spare. It’s blog-first, has minimal typesets, and structural elements that stay invisible until you need them. The request is simple: “try it and tell us what breaks and what’s missing.”

Screenshot of the Ipsum WordPress theme single post demo, including a Gallery block demo.

Nik Tsekouras opened a call for testing the DataForm editor inspector, which rebuilds the Post and Page tab of the Settings sidebar so it stops drifting from Quick Edit in the Site Editor. Install Gutenberg 24.0 or later and enable Editor Inspector: Use DataForm under Settings → Gutenberg. Test it as an editor, author, and contributor, not just as an admin.

Behind the release

A minor release can touch more than twenty branches, and much of that work was done by hand. Lance Willett opened a public repo of Core release tools, which includes tagging, release docs, SVN merge verification, and contributor lists.


Huzaifa Al Mesbah counted 84 people who tested WordPress 7.1 across 337 Trac tickets. Fifty were first-timers, which is 60% of everyone who showed up. The most important line: “you don’t need to be a developer.” 7.2 testing is open now.

Plugins, Themes, and Tools for #nocode site builders and owners

WooCommerce 11.2 lands the week of October 6, so read Shani Banerjee’s pre-release notes before it arrives rather than after. Order withdrawal emails become configurable, the CSV importer can match products by Global Unique ID when neither ID nor SKU is available, and checkout fields gain date support with min/max validation. Two of the seventeen developer advisories will bite if you ignore them: date filters in wc_get_orders() and wc_get_products() now read a bare date as a day in your store’s timezone rather than UTC, and the Cart and Checkout order summary becomes a fixed 360px column with the two-column breakpoint moving from 700px to 920px.


Two dot releases arrived in between, both flagged as security updates. WooCommerce 11.1.2 fixes the infinite recursion that was breaking product variation galleries, and 11.1.1 hardened API permissions and session handling.


The latest WordPress.com changelog moves the AI website builder from picking a theme to generating one: on Premium and Business plans, it “now generates a fully custom theme built around your goals and brand.” A new Annotate feature lets you queue several targeted edits and send them at once.


GatherPress started on a fourteen-hour drive to WordCamp US in 2018, when two Montclair meetup organizers came up with a name and then didn’t write any code for nine months. Rae Morey tells the story of how it grew into WordPress’ Meetup.com replacement, through July of this year, when Automattic’s Karen Arnold confirmed WordPress is going ahead with it. The gatherpress.org domain is transferring to the Foundation, and the plugin has been testable at events.wordpress.org since August 28. No launch date yet, and co-maintainer Mervin Hernandez Sitnikovski would rather you help than wait.

Theme Development for Full Site Editing and Blocks

WooCommerce has a new block theme. Brian Coords announced that Purple is back and ready for beta testing. The project was paused during a strategy update last year, and it’s Woo’s first official block theme.

Ten color palettes, ten font pairings, custom styles for both WooCommerce and core blocks, and templates covering everything from Shop to Checkout to My Account. The inserter category is being renamed from “WooCommerce” to “Shop.” If you’re wondering where Storefront’s featured extensions went, block editing absorbed most of them. Peter Schimke also notes that Purple is now the default for new WordPress.com Commerce stores.


Mark your calendar for Wednesday, September 30 at 10 a.m. PDT / 1 p.m. EDT / 7 p.m. CEST: Woo is hosting a live session on building with WooCommerce block themes. Mike McAlister of Ollie joins Woo engineers Karol Manijak and Lucio Giannotta. There’s a Q&A at the end and a recording afterward, but questions only work if you show up.


“We need more workflow in Core,” said K. Adam White, principal engineer at Human Made, talking with Nathan Wrigley on WP Tavern about migrating to blocks with artisanal care and enterprise efficiency. At the center of it is Human Made’s open-source Rehydrator, which uses pattern HTML as a template and injects migrated content into it, so structure and styling survive a move off something like Sitecore. He describes building SQLite databases from client exports just to find the edge cases. He’s candid about the gaps, too: granular permissions, editorial approval workflows, and internationalization.

“Keeping up with Gutenberg – Index 2026”
A chronological list of the WordPress Make Blog posts from various teams involved in Gutenberg development: Design, Theme Review Team, Core Editor, Core JS, Core CSS, Test, and Meta team from Jan. 2024 on. Updated by yours truly. 

The previous years are also available:
2020 | 2021 | 2022 | 2023 | 2024 | 2025

Building Blocks and Tools for the Block editor

Your Query Loop returns nothing, and the heading and pagination you wrapped around it render anyway. Ryan Welcher spent a live stream adding a “hide if empty” control to Advanced Query Loop, his free plugin that extends the core Query Loop with taxonomy relationships, meta queries, and relative date filters.


Gutenberg’s JavaScript tests have moved off Jest. Marco Ciampini explains that unit and integration tests now use Vitest, driven by ESM: as more dependencies shipped ECMAScript modules, the CommonJS-based Jest setup needed more and more compatibility glue. The part that affects you: @wordpress/scripts 36.0.0 makes Vitest the default for test-unit-js, with @wordpress/eslint-plugin 27.0.0 following. Not ready to migrate? Switch to wp-scripts test-unit-jest and install the Jest dependencies yourself.

AI in WordPress

Your agent builds you a landing page, and then what? It sits in a chat log, or a folder, or a local dev server nobody else can reach. That’s the gap Spacefast is built for, and Automattic soft-launched it this week: Matt Mullenweg announced it on X. The pitch is the last mile for agent output: publish from a conversation with Claude or ChatGPT, from npx spacefast publish, or from a GitHub push, and get a permanent URL with immutable versions, one-click rollback, and access controls. It hosts full-stack projects, not just static files.

The WordPress hook is a Spacefast plugin with two modes. Static mode hooks into Simply Static, exports your site, and publishes the snapshot. Headless mode treats WordPress as the content source for a repository project, triggering a production rebuild when you publish or update public content.

MCP turns up everywhere

WordPress Trac now speaks MCP. Lance Willett announced a Trac MCP server that’s “public and free to use: no account or API key needed.” Ask what’s left on a ticket and which pull requests are still open, or what someone committed in January 2005—yes, it goes back that far. It covers every WordPress.org Trac, from Core and Meta to bbPress and GlotPress. James LePage wrote the first version, with props to Jon Surrell, David Newman, and Konstantin Obenland.


Jamie Marsland makes the case for why WebMCP is going to be big for WordPress and, more usefully, shows you how to try it this afternoon: open the ChatGPT desktop app in Work mode, load WordPress Playground in its built-in browser, and ask it to build you a homepage. His framing is the clearest I’ve read. WebMCP gives an assistant “an instruction manual with working buttons” instead of making it squint at screenshots.


For the enterprise view of the same shift, Shane Schick compares WebMCP and traditional MCP and lands on a line I’d pull out of the whole piece: “MCP is not going away, and WebMCP shouldn’t be seen as a rival protocol.” His table sets them side by side on deployment, access scope, scalability, and auditability. That auditability row is the one that matters if you answer to a compliance team.


Schick also introduces Parse.ly MCP, which connects Parse.ly data to whichever assistant your team already uses. You authorize once with your existing login, and the assistant sees exactly the sites your account already sees. “Analysis that used to take a request and a day now takes a conversation.”


One more, for the security-conscious: WPShout walks through connecting Cursor to WordPress with MCP using ThemeIsle’s Easy MCP AI plugin. Every tool call still passes a WordPress capability check, with a 60-requests-per-minute default. Their advice is the part to take seriously: “read-only first, watch the audit log for a week, then grant write scopes deliberately.”

Putting agents to work

Anthropic open-sourced its commerce agents on September 2, and WooCommerce has already adapted them. Shani Banerjee walks through running the Claude Commerce Agent on WooCommerce, which spins up a demo store with eight products and nine orders in about fifteen minutes. The neat piece is a bridge plugin: the assistant’s cart lives under a Store API token your browser session can’t see, so at checkout the plugin re-adds each item to your real cart with normal stock checks. Merchant-side changes stage behind an approval gate, and “ask it to approve itself and it declines.”


There’s a second kind of visitor to design for now. Carlo Daniele argues for building WordPress for AI agents instead of just human visitors, and the distinction he draws is the useful one: “Crawlers primarily retrieve or index information. Agents can go a step further and take action on a user’s behalf.” That turns architecture questions into permission questions: who is asking, on whose behalf, what can they change, which actions need approval. The Abilities API and MCP Adapter are where WordPress answers them.


A week later, Daniele turned to operations. What happens when AI agents become your new website operators? works through a five-stage autonomy ladder and argues most teams should sit partway up it for a while. I feel like he’s right about that. As he puts it: “An agent that makes a bad production change creates another.”

Learning and practice

Want a structured introduction rather than a pile of blog posts? Destiny Kanno announced that the AI-Powered WordPress course is now live on Learn WordPress: four modules, 23 lessons, roughly nine hours. The first three are for anyone who publishes; the fourth introduces the developer APIs and assumes no prior PHP experience.


The AI team’s contributor summary for September 16 is a good snapshot of what’s actually moving. neillmcshea reports work on markdown feeds for the AI plugin, so AI clients can request a markdown version of a post. PHP AI Client 1.5.0 is close. There are still open gaps in web search support. For example, message parts can’t represent source annotations, and citation URLs are hard to retrieve.


Finally, a piece for the conversations you have with clients rather than with a terminal. Will Davis writes about how WordPress agencies use AI, and what clients should ask about it, arguing that the honest uses are the boring ones—code generation, QA, content migration, documentation—while architecture and governance stay human. His five questions for clients would work just as well on a sales call, starting with “What does a person review before it reaches me?” As he puts it, AI “genuinely reduces repetitive work, but it doesn’t replace judgment.”

Need a plugin .zip from Gutenberg’s master branch?
Gutenberg Times provides daily build for testing and review.

Now also available via WordPress Playground. There is no need for a test site locally or on a server. Have you been using it? Email me with your experience.


Questions? Suggestions? Ideas?
Don’t hesitate to send them via email or
send me a message on WordPress Slack or Twitter @bph.


For questions to be answered on the Gutenberg Changelog,
send them to changelog@gutenbergtimes.com



Dennis Snell: Enter the mess: Shortcodes

0

Tonight I started working on some Shortcode processing in WordPress. This is an historically nasty problem because the Shortcode syntax and parsing is wildly dynamic.

  • Shortcode syntax is only technically recognized for shortcodes registered at the time of parsing. This means that there is not a general Shortcode grammar.
  • Whether a shortcode has “content,” meaning whether it expects a closing tag, depends on whether the closing tag exists in the post.

This is a problem that has plagued me for years and I have generally just ignored. There’s an open Core issue in Trac for changing some shortcode parsing (#50683), and I have thought a lot about it.

But I think there is more to explore, and more to gain. Maybe this goes nowhere, but keep your eyes open for it.

Open Channels FM: Your Website Could Use a Changelog to Fuel Creativity

0

A website changelog helps creators document progress, celebrate small wins, showcase evolution, fuel creativity, and build audience trust. It can include updates, humor, and various formats, making it accessible for all.

Open Channels FM: Is It Time to Move On? Navigating Change and Letting Go in Fast-Paced Times

0

A reflection on recognizing the right time to move on from creative projects and handling self-doubt.

OpenStation Blog: “I can’t imagine using WordPress any other way”: the love behind OpenStation

0
A digital workspace interface displaying various applications, including a note-taking feature, recent comments section, and post statistics, alongside a scenic background featuring a rider on horseback in a vast landscape.

OPENSTATION · COMMUNITY VOICES

Formerly Desktop Mode, now a new way to feel at home in wp-admin.

A plugin can accumulate installs. It is rarer for people to describe it as a new way of thinking. As of September 25, 2026, OpenStation, known in its earliest releases as Desktop Mode, has inspired 23 public WordPress.org reviews: 22 five-star and one four-star.

OpenStation turns the WordPress admin into a spatial workspace: movable windows, a dock, a taskbar, widgets and virtual desktops. That is the feature list. The feeling is better told by the people who use it.


The words that stopped us in our tracks

1. When a plugin becomes the default

“I can’t imagine using WordPress any other way. I love this plugin so much.”

— Nick Hamze, “Favorite plugin ever”

That may be the highest compliment a tool can earn: not merely useful, but difficult to imagine living without. Nick’s review reads less like a rating and more like an invitation to join a movement.

“This is a game-changer. Can never go back!”

— ainom, “Absolute pure awesomeness”

OpenStation begins as a striking visual idea, then quietly rewires expectations. Once several admin screens can live together, the old one-page-at-a-time flow feels surprisingly distant.


2. When the metaphor improves the work

“It genuinely feels like using a lightweight operating system inside WordPress.”

— spackenjaeger, “A revolutionary new WordPress admin experience”

The operating-system metaphor is not decoration. Windows hold context. The dock makes tools reachable. Virtual desktops separate kinds of work. The familiar desktop grammar turns multitasking into something visible and natural.

“Having several admin screens open at once changed how I work more than I expected.”

— Juan Lentino, production user and plugin integrator

Juan’s review is especially telling: he has run OpenStation in production since the Desktop Mode days and builds integrations against it. The novelty faded; the workflow remained.


3. When delight becomes productive

“The desktop-style layout, draggable windows, dock, and taskbar make the admin area feel completely different in the best way.”

— Marco Moreira, “A refreshing new way to use WordPress admin”

Productivity software does not have to be joyless. The best interfaces reduce friction and add a little momentum, the feeling that the workspace is helping rather than merely waiting.

“This plugin blowed my mind. It turns your wordpress admin in such a beautiful dashboard. What an experience.”

— MauroS, “One word… Wow!”

The wording is wonderfully unfiltered. Beauty, surprise and experience are not side effects here; they are part of the product.


4. When people see the road ahead

“This is definitely something I would use on a daily basis. Well done!”

— vepth, “I’m blown away”

“Desktop Mode definitely stands out with its own approach.”

— Rami Obeidat, “Modern and creative admin experience”

Both reviews point to the same achievement: OpenStation is not chasing a generic “modern admin” look. It has a point of view—spatial, extensible and unmistakably its own.


From Desktop Mode to OpenStation

The project’s name changed because its ambition outgrew a mode. “Desktop Mode” described the first transformation. OpenStation describes the platform emerging around it: a place where WordPress apps, windows, widgets and workflows can meet.

“The integration surface is unusually well behaved for a plugin this ambitious.”

— Juan Lentino, WordPress.org reviewer and integrator

That sentence matters as much as the praise for the interface. The magic users see is supported by a public API that plugin authors can build on, frequent releases and an opt-in design that keeps classic WordPress one click away.

The best roadmap is a chorus

Names change. Interfaces evolve. Code ships, breaks, improves and ships again. What stays constant in these reviews is the feeling that WordPress can be more personal, more spatial and more alive.

OpenStation is still moving fast. But if the people already living in it are any guide, the destination is worth watching, and the journey is already changing how they work.

Explore OpenStation on GitHub →
Read all WordPress.org reviews →

Quotes are excerpted from public WordPress.org reviews. Spelling is preserved; excerpts are linked to their original sources.

Matt: Bruce Schneier on Systems

0

Bruce is one of my favorite writers. He packs profoundness. Also honored that he’s an advisor at Automattic, truly one of my idols. His blogs and books rocked my world when I was young.

Open Channels FM: How Generational Perspectives Shape Our Digital Work Lives

0

Cami and Bob talk about adapting to tech changes growing older in the web industry and keeping routines that work.

Open Channels FM: Navigating Support Systems from the Man Cold to Open Source and WordPress Open Web Alliance

0

Examining support systems behind open source, the open web, and everyday life, along with why sustaining these efforts is necessary.

Open Channels FM: The Podcast Open Makers is Archived

0

The podcast network has reduced its active lineup to four shows, leading to no new episodes for Open Makers. However, past content remains accessible, with a shift towards deeper discussions on open source and web trends.

#234 – K. Adam White on Migrating to Blocks With Artisanal Care and Enterprise Efficiency

0
Transcript

[00:00:19] Nathan Wrigley: Welcome to the Jukebox Podcast from WP Tavern. My name is Nathan Wrigley.

Jukebox is a podcast which is dedicated to all things WordPress. The people, the events, the plugins, the blocks, the themes, and in this case, migrating to blocks at an enterprise level and what’s involved in moving from a different CMS into WordPress.

If you’d like to subscribe to the podcast, you can do that by searching for WP Tavern in your podcast player of choice, or by going to wptavern.com/feed/podcast, and you can copy that URL into most podcast players.

If you have a topic that you’d like us to feature on the podcast, I’m keen to hear from you and hopefully get you, or your idea, featured on the show. Head to wptavern.com/contact/jukebox and use the form there.

So on the podcast today, we have K. Adam White, or K. Adam for short.  K. Adam is the principal engineer at Human Made, an enterprise WordPress consultancy. He’s been involved with WordPress for almost 20 years, attending his first WordCamp in Boston back in 2011, and has contributed to WordPress Core and the broader open source ecosystem. Human Made is known for delivering complex projects, think high stakes, no room for mistakes? From global brands moving to WordPress.

This time around,  K. Adam delivered a presentation at WordCamp US focused on a crucial topic for anyone modernising their site, migrating to blocks. Human Made has been all in on the block editor since the Gutenberg plugin days, and the team now specialises in large scale migrations from other content management systems like Sitecore, as well as from other WordPress page builders.

Our conversation focused on the technical and editorial challenges of moving tens, or hundreds, of thousands of posts into the world of blocks and patterns. We talked about the need to combine artisanal care, attention to detail in design, layout, and brand, with industrial scale. The ability to automate, audit and validate mass migrations without losing visual fidelity.

We also discussed the use of patterns as a foundation for development, integrating custom and Core blocks, and leveraging new tools, including AI powered agents and open source plugins like Human Made’s, own rehydrator, to streamline migration workflows.

We also touched upon how clients are onboarded. The process of auditing legacy content. Strategies for training editorial teams on the block editor. And there’s a frank reflection on gaps in WordPress, like granular content permissions.

If you are contemplating a move to the block editor, wrestling with a massive content migration, or curious about what happens when enterprise complexity meets the flexibility of WordPress, this episode is for you.

If you’re interested in finding out more, you can find all of the links in the show notes by heading to wptavern.com/podcast, where you’ll find all the other episodes as well.

And so without further delay, I bring you  K. Adam White.

I am joined on the podcast by K. Adam White. Hello, K. Adam.

[00:03:41] K. Adam White: Hello. It’s good to be here.

[00:03:42] Nathan Wrigley: Yeah. Thank you for joining us. You have an interesting name. Just go on, I know it’s totally off piste, but tell us about your name.

[00:03:49] K. Adam White: Sure. It’s a first initial K, and the middle name Adam that got conjoined in college and I quite like it. So I think in a sphere, and a particular niche in WordPress with so many Adams of so many different colours, then K. Adam is a little bit more me.

[00:04:04] Nathan Wrigley: Yeah, nice. So we’re in the corridor, so forgive any noise that you hear on this podcast episode. We can’t avoid it. We’re in the corridor at  WordCamp US, and you have done, some presentation work this time around. Do you want to just tell us, I mean I presume it’s happened because we’re at the very closing stages of the conference. How did it go?

[00:04:21] K. Adam White: It went, as far as I can tell, quite well. My session was early yesterday, right after the morning keynotes in that early slot where everyone’s coffee has kicked in, and the fatigue of the conference hasn’t quite set in yet.

So I had a great audience and the talk I thing went quite well. I’ve had a number of different conversations off the back of it on various different topics that I covered. So the breadth of those discussions has been really exciting for me.

[00:04:44] Nathan Wrigley: So that is going to be the meat and the bones of what we’re going to talk about today. But first, if you don’t mind, let’s talk a little bit about you and what you do and where you work, just so that we can paint your credentials if you like.

So tell us about your job, how long you’ve been in the WordPress space? Who do you work for? Et cetera.

[00:04:59] K. Adam White: Yeah. My job is principal engineer at Human Made. We’re a WordPress enterprise consultancy, and I have been there nine years. I’ve been in the WordPress community quite a lot longer than that. My first WordCamp was WordCamp Boston 2011, which is a mind boggling 15 years ago now. And before that, I had been using WordPress personally since 2007. So we’re coming up on 20 years of involvement, at least as a user. And then, became a contributor in the early 2010s around 2013, I think my first commit landed.

[00:05:25] Nathan Wrigley: Yeah, nice and Human Made, if you haven’t heard, we’ll put the links into the show notes, anything that K. Adam mentions today, we will put us a link on the WP Tavern podcast episode website, so you can click through to it. But go and check out Human Made, definitely one of the big hitters. I think it’s fair to say in the WordPress space.

[00:05:40] K. Adam White: It’s very kind of you to say so.

[00:05:42] Nathan Wrigley: You did your presentation and it was entitled, Migrating to Blocks. I’m going to intuit from that, that Human Made is all in on the block editor. You’re not using some sort of other proprietary platform. Would that be the case?

[00:05:55] K. Adam White: That would be the case. We were very early adopters of Gutenberg back in its plugin days. We were doing work before it was merged for building out some early block sites, testing out what we could do. Learning how to build and change our theme development processes to move in a more block oriented direction, and then follow that directly into the Full Site Editor world.

And it’s been a great ride. We do work with other page builders and other blocks, platforms and frameworks. We do tend to, as a company, work on projects that have some sort of particular technical complexity that made someone come to us rather than a different agency.

That does mean that we are broadly specialised in WordPress as a platform, including many of those page builders. We’ve worked with Elementor, we’ve worked with Divi, Beaver Builder, but we as a company will always advocate for the block editor and the site editor. And we have our own processes oriented more and more towards delivery with that framework in mind.

I think that the thing that is bringing some of the companies that we help to migrate to WordPress into this ecosystem is the flexibility and the quality of the editorial experience. And personally, my opinion is that Gutenberg does that leaps and bounds better than any of our other page builders that don’t have that native integration into the platform.

[00:07:09] Nathan Wrigley: So if a client comes to you and they are agnostic as to what you are going to build with, your default posture would be we are going to use the block editor.

[00:07:16] K. Adam White: Absolutely default.

[00:07:17] Nathan Wrigley: Okay. And do you have to do any level of persuasion anymore? I’m guessing if we were to rewind the clock, let’s go to 2017, soon after Gutenberg started to become more widely available. I imagine there was quite a bit of explaining to do. Do you still have to do any of that? Or is it a case now that the enterprise people understand what’s going on, and there’s less of a back and forth about whether they should use blocks and patterns and whatever else?

[00:07:41] K. Adam White: If we are building from scratch, we haven’t found there is any reluctance. Particularly if people are coming from a different content management system, particularly a different enterprise content management system. The editor is so compelling, that there’s never any objection to using it. They might ask, should we use this or some other thing I’ve heard of? And we can say, the block editor is built in. We feel that it’s the most robust and future proof platform that you can choose. So we would recommend going that route rather than adding in another plugin, however good they are.

But we do still, nonetheless, have some projects where they are already on a page builder, and they might have invested a lot of training. We might have an entire business school worth of people that are very comfortable with whatever their existing system is, whether that’s Beaver Builder or something else, et cetera, Elementor.

And I think that it’s very important for us to remember what our remit is when we come into a project. That, doesn’t always involve helping them change everything to match what we see as the future. I think that’s a responsibility of the client to understand where they are in conjunction with where the WordPress roadmap is, and make their own decisions about what tools are right for them.

So, for existing projects, we’ll work with what’s right for the clients editorial team, but if we have to make a recommendation, it will always be the block editor.

[00:08:56] Nathan Wrigley: Okay. Yeah, good to know. At place in the market where you are, I’m presuming there’s very little room for error. When you build something, it’s got to work out of the box, on day one. You’ve presumably got stakeholders who’ve got editorial teams, and they’re fairly, we’re, dealing with large corporations that can’t afford for there to be mistakes.

So that kind of leads us to the nature of your presentation, which was called, and again, links will be in the show notes on wptavern.com. Migrating to Blocks with Artisanal Care and Industrial Scale. And I’m actually just going to read the first paragraph because it summarises what we’re going to talk about perfectly. It’s fairly long, but I’ll go through it all.

Whether we’re modernising an old personal blog or migrating hundreds of thousands of existing posts from another CMS. Using WordPress in 2026 means converting our contents to blocks. The convert to blocks button in the editor works well enough for one post. But if we have dozens or hundreds, what can we do to make the process less manual and more powerful? How can we integrate a site’s content directly into full block patterns without losing the columns and structure it had before? And then it goes on to mention, a particular build, I presume, where you were leaving one CMS coming into WordPress.

Just lay out some of the fun, interesting problems that you have to overcome when you’re moving from an entirely different CMS into WordPress, because I guess it’s more complicated than, “Look, there’s a bunch of paragraphs and images. Let’s just drag those over and hope for the best.” Tell us what the problem before you is.

[00:10:22] K. Adam White: That’s a great question. It’s actually remarkable how close you can get to satisfaction with just moving paragraphs and images over and hoping for the best. But there is a big gap in terms of visual fidelity.

The editor in a theme that we’ve built for a client will be configured with patterns and templates and all of the block variations that they need to be able to very quickly sketch out a page. If they are starting from scratch, a client with a fully site editing enabled theme can drop a hero pattern on the page, set in the media they need. Change any font sizes within the pallet of what’s available with their brand guidelines encoded in the theme.json. It’s very easy for them to build out and write content fresh.

But if you have, again, hundreds of thousands of posts, even if you’ve built all those patterns, the heading and paragraph and image only approach doesn’t cut it, because then there would be a tremendously backbreaking amount of work, adding group blocks, adding background colours, et cetera.

That’s usually data that is available in one form or the other in the current system. If we’re migrating without a design change, we will have, whether it’s the layout database in Sitecore or a metadata in a different WordPress block editor that we’re migrating from. Or whatever the equivalent is in our source. We want to preserve the layout of the page and the styling elements. So making sure that headings get the right text treatment, that anything that’s italicised comes over. All of the nuances there, particularly around background colours, images, et cetera. That’s the piece that we’ve been over the past year, looking at how we can improve our process when we’re building a new site, but bringing content over from an old.

Within that context, my talk covered two broad areas. The specific tail end of the talk was about how we can actually use the theme patterns that already exist in the theme directory, and use those to inject particular pieces of source data. So if you have a pattern for a hero element, and you know from your source data what the image URL is supposed to be, what the title is supposed to be. We can use the HTML directly from the pattern file, and do lightweight search replaces within that using either direct PHP string replacements or a tool that we’ve written, that I shared a link to called rehydrator, which is a very early stage experiment, that we’ve got out on GitHub.

And we can use that to put the content into the structure that it’s going to need to have for it to be fully, visually correct. So rather than just reducing and throwing away anything that isn’t a heading or a paragraph, we’re taking the framework from the theme pattern that’s been built. And then we’re writing a migrator that takes data and puts it into that HTML structure, and saves that into the post content. So that when an editor opens up a page, it loads correctly in the editor without block validation errors and it looks right on the front end.

[00:13:15] Nathan Wrigley: Okay. There’s a lot of depth in that, isn’t there? We’ll come back to that in a moment.

I’m curious about process of how you, persuade clients that you are going to be able to carry this work out successfully. So how does that actually work? You obviously look at their existing content, you have a discussion about what the new design is going to look like, and then do you build out some kind of templates or patterns or what have you, so that you can then pull in a proportion of the content, maybe, I don’t know, 10 or a hundred or 5,000 or whatever it may be, pieces of content. Check that that’s all right. Show it to the client. How does that workflow go to build up their confidence that what you are going to do when you finally click the button is actually going to succeed?

[00:13:50] K. Adam White: The way that we’ve been approaching that, I think particularly, over the past six months, I should caveat first that this process has changed so much. Because the tools we have available with AI agents have been evolving in leaps and bounds alongside this particular migration process, which started in January.

So in this case, we started out by building patterns that we could put content for one test post, from the existing site manually. Bringing the contents over, copying and pasting headings, et cetera. And using that to create the patterns that we could show to the client to say, does this look correct? Does this structure mirror what you’re expecting? Is this what you expect an author to have available within the post editor?

And then you know, which pieces belong in the template, which pieces are managed at the site editor level? We’ve done a lot of that ahead of starting the actual migration.

Now that the migration is in progress, any subsequent pieces we’re developing in tandem, we’re saying, okay, we have a press release. That press release, we have audited the incoming data, and we have determined that there are four different layouts for press releases. And this one is used the most and it has these elements. This one is used less, but it has images, et cetera.

And we can build the template for that post type, and at the same time write the migrator for identifying the content nodes, and the source data and bringing that information over into the new patterns.

So we have the patterns that we can show, okay, if you’re building something from scratch, this is what that looks like in the editor. But then at the same time, we can run the migrator over, in most cases, all of the relevant type of data and say, and here is a list of pages to validate.

So what we’ve been doing is bringing that to our stakeholder, and allowing them to do spot checks, so that they can look through and validate that there are all of the required elements on the test pages. Things like, “oh, alright, we don’t have a mapper yet for video embeds. So videos are missing,” and that’s usually going to be an all or nothing thing. We’ve found very few cases where we end up with one or two errors on a specific post basis that aren’t related to support for a complete type of output pattern.

[00:15:55] Nathan Wrigley: Is there a sort of fault tolerance there? So obviously in the case of this particular migration, tens of thousands of posts, I guess there’s never going to be a moment where you can be a hundred percent confident apart from reading the 10,000 posts that you’ve done everything correctly. Is there a, we’ll do 10 to begin with, then we’ll go up to a hundred, then we’ll go up to a thousand.

What, is the sort of tolerance that you present to the client? I’m just imagining that just lurking in post 9,999 is just some weird thing that was allowable in the CMS but never got used before or since, and that piece of content got missed. I don’t know what’s allowable in that scenario. So is there any level of tolerance for fault?

[00:16:32] K. Adam White: The major advance that we’ve made with migrations as a broad structure this year is a much better understanding of those edge cases. And the way that we’ve done that is by leveraging Claude and various other tools to do cross site audits to make sure that we have a full picture of the source data.

So we are able to feed in whatever export files we get from our source site. In this case we’re working from Sitecore, which is an enterprise CMS, which has two database structure. There’s actually a database with a content tree, and then another database that contains layout information. And a page is rendered by switching back and forth between those and assembling the final output.

We were able to get exports of the relevant content from both of those, from the developer of the current site. And we fed those and a whole bunch of documents from the product owner into a ongoing conversation with Claude. And we’re able to use that to build some actually node.js scripts that would take the files we’d gotten from the Sitecore devs, and build a local database in SQLite that each developer on the team was able to run locally. And we can query against that to find those edge cases.

So in a combination of writing our own manual queries, or having a chat conversation prompt for finding individual things, and then it will run a number of queries and report back to us. We’re able to identify very quickly, oh, there’s only one press release that has images, that’s interesting. But there are 17 that have a FAQ accordion.

So that type of auditing has become trivial, and it’s mind boggling how much faster that’s allowed us to move in terms of understanding the data that’s there, and building out a mapping of how we’ll migrate through the different types of content.

We don’t tend to start with only 10 pages in a post type because it’s relatively cheap to run the migrator over a thousand instead of 10. And that gives you a lot more content for both various people on the client team, but then also agentic tools to click through and do a little bit of spot check validation.

What we tend to do is to migrate content type by content type, and we’ll prioritise those based on what we see as the balance between scale and complexity.

[00:18:39] Nathan Wrigley: Do you leverage Core blocks wherever possible, or do you bring bespoke Human Made blocks where that’s necessary? Or can you basically bind everything in this particular build to a Core block?

[00:18:51] K. Adam White: Most of the time we will start with Core blocks and get as far as we can with them. This is a change from how we used to do it. Our early days, we had a lot of rapid iteration in the markup that Core blocks were using. In some cases, there was a lot of evolution in how the controls for them were set up.

[00:19:07] Nathan Wrigley: It was brutal.

[00:19:09] K. Adam White: It was brutal. But that pace of change for the main building blocks of a site has slowed down tremendously, and I think it’s a very stable foundation. So we will be pattern first in our development. We will start by working, doing a lot of in-editor prototyping actually, to build out layouts and patterns for each individual unit of content, each individual sort of component group in the source site. And, it will only be when we run into something like a carousel or a modal that we might reach for a off the shelf, third party option that’s not in Core, or bring our own solution to the table.

[00:19:45] Nathan Wrigley: So do you take, when you said pattern there, is a pattern a sub component of a, let’s say post for want of a better word? Or is it that the pattern is the entire post with bits injected into it? So paragraphs, headings, videos, whatever it may be? Like I said, at the beginning, or are you building up the entire post from various different patterns? Here’s a video pattern and here’s a, I don’t know, a paragraph pattern with a heading? Or a background image or whatever it may be.

[00:20:12] K. Adam White: Patterns tends to be at number of different levels. We might have individual patterns for a particular treatment of headline for example. But we also will have a pattern for a hero section. We’ll have a pattern for a hero section plus the bio below that, that we can use to populate a template in the site editor.

We build patterns at multiple levels of granularity, and we have a leaf to trunk system where we’ll make sure that we have renderings, whether they’re Core blocks with either default styling or one or two block variations, or individual patterns for things where we need to compose one or two blocks together. We’ll make sure that we have all of those leaf node pieces of content, all of our paragraphs, all of our inline images. And then we’ll build patterns for those higher level groups, the full width backgrounds with coloration and a particular headline treatment.

We build out those patterns at all of those different levels because it’s nice to have the granularity when we’re writing our migrators, and patterns can reference each other. So you can have an accordion pattern, which includes two references to an accordion item pattern, and you can have all of those little bits of HTML be discreet PHP files in your WordPress theme. So it makes it very simple to pull up in your editor only the code that you need to edit for a particular unit and know how that’s going to be scoped.

[00:21:26] Nathan Wrigley: This is going to sound like such a peculiar question, but it genuinely, from my point of view, this sounds like really interesting and curious work. It sounds, like there’s a lot to get your teeth into. You’re pushing the boundaries a little bit, but also you’ve got the scope of WordPress, which kind of makes it slightly easier.

I’m basically just making the comment that I think I would enjoy doing the work that you are doing. I don’t know if that, yeah, there really a question there.

[00:21:47] K. Adam White: Unfortunately, we’re doing less and less of that work, and Claude’s doing more and more of it. It’s been actually very efficient because this is such a core central construct in the WordPress block editor. There’s a lot of good documentation about it and agentic tools are quite good at helping to build pattern markup.

So, what we’ve been doing is bringing our human eyes onto that, doing all of our spot checks, making sure that things are kept as simple as possible. Because I think we’re all familiar with how verbose and overly complicated output can be from some tools. But then it is also something that I really wish more people were talking about and doing. Brian Coords earlier today in his talk, mentioned that pattern driven development really he sees as something that more and more of the WordPress community should be trying out. Because there are so many things that we used to build custom blocks for, that just strictly aren’t necessary anymore. And we can get so far by composing what we get from the lego kit of WordPress out of the box.

[00:22:40] Nathan Wrigley: Yeah, I feel like if we went back to 2015 and began Gutenberg again, I feel going patterns first would actually be a nicer approach, certainly a more straightforward approach. I know that there’s, ways to overcome that, but I always drop patterns in, never blocks, and then I’m always interacting with the blocks within the pattern. But it’s patterns first for me all the time. Just because I like the fact that I’m dropping in multiple bits of content that are pre-configured and pre-made and pre, I’ve fiddled with the CSS and made it just how I like it. And I just click the button once and there it is, and I can just rinse and repeat and it’s really straightforward.

[00:23:12] K. Adam White: I would agree, and over the past two to five releases of WordPress, we’ve also had such powerful additional tools added to the pattern toolkit. For example, Partially Synced Patterns. Was a major topic that I shared in my talk. Being able to have a reusable pattern and then make the content editable on a post by post basis makes it very seamless for a non-technical editor to go in, and not have access out of the box to stylistic controls that would make something drift from the brand’s guidelines that they’re trying to follow, but still be able to customise link targets, CTA, text, all of the descriptive and image elements.

[00:23:47] Nathan Wrigley: You are in the weeds of WordPress, and I’m in the weeds of WordPress all the time, but I still feel those tools are widely, not misunderstood, that’s the wrong, just there’s a void. Nobody even knows they’re there. There’s just tonnes of tooling inside the block editor that people simply don’t know about, because the UI and the UX is still a bit funky. You’ve got to go to various different places, and it’s easy to go down the wrong route.

Do you know what I mean? There’s a bunch of tools inside a WordPress that if you only had a few hours with somebody over your shoulder pointing out, “okay, click on that, look at that menu that does this thing.” It’s a shame in a way that’s the case. But I do feel there’s a lot of unexplored potential in every WordPress website that presumably you are leveraging. But I guess just because you’re in the weeds of it.

[00:24:30] K. Adam White: Wherever possible, we have the privilege of having a lot of history with the CMS. Human Made was founded in 2010 and has always had a strong open source posture. We’ve contributed to Core, we’ve put plugins out there in the ecosystem that are used by a number of other agencies. We’ve found the best of what our frenemy competitors use, and been able to adopt those into our own processes.

And the benefits of understanding all of the different types of block that you can use tremendously outweigh any time sink that it takes to learn them. I hope that, from my talk, people will now know that in 7.0, we added PHP only blocks, where you can have the attributes auto registered so that you get, even as a non JavaScript developer, a interface in the editor that someone can open up and go in and change values in the sidebar.

I hope that more people learn about Partially Synced Patterns. I hope more people learn about all of the different types of block that we have available, and find ways to integrate those into their own toolkits. Because playing with the grain of WordPress and using the Block Editor for all it’s worth, are how we untap the most value for our clients.

[00:25:34] Nathan Wrigley: Yeah, there is certainly an awful lot of power, and like I said, I just think some of it gets missed.

How much after you’ve done the migration, how much time do you have to spend with the clients? I have this impression that the Gutenberg editor is pretty straightforward, muscle memory for me essentially. Hours of playing in it. I know where all the bits and pieces are.

But I would also recognise that if I was to show it to somebody who’d never played with WordPress and was coming from, in this case Sitecore, how overwhelming is it? And do you take steps to make it less overwhelming by minimising what’s available in the interface, or just disabling options? What do you do in that regard?

[00:26:08] K. Adam White: No matter how much flexibility our clients want, it’s usually valuable to disable some options. I can’t remember a site we’ve shipped recently for any large website where we left the custom colour picker in, for example. You want to do a better job of limiting what people can use, so that we have confidence that the output, no matter how design savvy or not someone is, is going to be consistent with the rest of the site.

My colleague, Joeleen Kennedy, gave a talk a couple years ago at the first  WordCamp US Showcase Day back in 2024, about work we had done customising the editor for that type of simplicity. And in particular things that we can do around colour palette selection. Ways that we can hide the styling controls for certain blocks through having them embedded in a pattern.

It’s interesting to see that in WordPress recently, if you are editing content that has been marked as having come from a pattern in a post, you can edit all of the text, you can edit all of the images and link targets, but you actually have to hit edit pattern in the sidebar in some cases, depending on how the post is set up, to get into the details within the post that allow all of those other controls to be visible.

That divide took a tiny bit of adjustment for people on our client teams, but the separation has helped them stay focused on the content, and worry less about the overwhelming, combinatorial set of styling possibilities that their blocks have.

[00:27:29] Nathan Wrigley: Do you think that the necessary tools are already built into WordPress to do the kind of work that you are doing? Or is there some missing piece that would make it easier for somebody who doesn’t have the deep pockets that presumably Human Made would require, to do that kind of work. Is the default tooling usually okay to migrate things or have you had to build loads of bespoke tooling?

So in terms of if I was to approach a WordPress website and try to migrate from Sitecore over to WordPress, is this something that you absolutely need a team to do, or would you be able to get some simulation of this with Core WordPress?

[00:28:04] K. Adam White: If you had access to the exports of data from a Sitecore website, and you had a core vanilla WordPress install. And you had a LLM tool of some sort, I think that you could do a lot to get close to what you want. The LLM piece, I think enables this to be done by more people without having to be completely familiar with all of the internal nuances of WordPress. You need to direct it to the architectural pattern that you want, but we have found that it speaks Gutenberg pretty well.

[00:28:32] Nathan Wrigley: What was the name of the tool that you said you’d custom and built?

[00:28:34] K. Adam White: We had built a plugin called rehydrator.

[00:28:36] Nathan Wrigley: Okay, rehydrator, yeah.

[00:28:37] K. Adam White: rehydrator is the tool that we use to take a pattern in the theme and then use that pattern as the template when we’re bringing content over to make sure that we keep all of the styling theme side, and that our migration script doesn’t duplicate the markup specifically.

[00:28:51] Nathan Wrigley: What’s Human Made’s approach to the WordPress project in that regard? You said it was a plugin. Does that mean it’s a wordpress.org repository plugin, or is it one that you have on your own, I don’t know, GitHub repository or whatever it may be.

[00:29:01] K. Adam White: We have some things in the .org repository. In this case, that particular plugin is only on GitHub. A number of ones that we build are only on GitHub, because we’re building them for a very transient in time period of a site.

You don’t need a migration tool to be part of your site long term, it’s not something you’re going to be leaving active, and updating month over month when there is a site running. It’s something that you bring in for the purpose of populating the data. And then you can remove that.

And in that regard, for this particular one, at the moment it’s partly because it’s quite young, and it’s also because we don’t see it as being general purpose. So that plugin specifically is on GitHub and publicly available through Composer, but not on the plugin directory.

In other situations, we’ve gone the opposite direction, and anything that we see as being a ongoing value to a site as it’s running, we do try to move those over as we can.

[00:29:52] Nathan Wrigley: Given that you are on the sort of engineering side of Human Made, I don’t know if this question will land, but we seem to be in this interesting period where there’s a lot of chatter, AI kind of fits into the equation a little bit, but there’s a lot of chatter about the, market share of WordPress and whether or not WordPress as a tool will continue with the same numbers and clout and market share and all of those kind of things.

Do you notice at the enterprise level that there’s been any kind of change in a southerly direction? Maybe there’s been a direct change in a northerly direction. What I’m trying to say is, for the enterprise, does WordPress still maintain that kind of pride place, top of the tree, or are you struggling to find new clients?

[00:30:28] K. Adam White: We’re not struggling to find new clients. We’re lucky that we’re doing quite well on marketing, and we also have had a very powerful year in terms of building relationships with new enterprises, and finding ways to take the technology that we believe in and solve their problems with it.

But I would argue that WordPress has never been the top of the enterprise space. And this actually goes back to your question about what is there that might be missing inside WordPress. The biggest thing that I think someone gets from a more, I’m going to use the term loosely, traditional enterprise CMS, is control.

And WordPress has a security model where the ability to edit and publish a piece of content is usually at the post level. There’s ways to add specific permission checks for metadata. There’s ways that you can restrict what’s accessible and editable with custom interfaces and custom API endpoints. But we tend to have things fall down to the capability checks for user can edit post 1, 2, 3. Yes. No.

And that means that if you have a user profile where your organisation depends on someone being able to come in and touch only the headlines and the SEO metadata, we don’t really have a model for that right now in WordPress.

Whereas something like Sitecore, each individual, almost at the level of every string on the site, whether it’s a set of paragraphs or the label of a button, ends up as a individual node in the content tree. And those can be granted or denied to certain users on a much more granular level. So that to me is a bridge that I still am excited to see what we can do within WordPress to maybe build better interfaces, or better primitives in the editor.

Block locking helps a little bit, but it is an API that’s quite difficult for some teams to wrap their heads around. And it also doesn’t really change the fact that if you can edit the post, and you were able to get the code editor up, then if you’re able to save it, you’re able to save it and doesn’t really go block by block. You’d have to write custom validation or permissions logic in order to be able to reject and update based on the user if they’re editing a block that is next to the one that they were supposed to.

[00:32:32] Nathan Wrigley: So do you have to present to the clients? It’ll be fine. This is what WordPress has. Don’t worry too much about it. If you’ve got this permission, yep, sure. You might be able to overlap and think people could delete things or modify things that perhaps they wouldn’t have to. That’s an educational piece on your side. Go and teach everybody not to mess around with things that they shouldn’t be messing around with.

But you would wish that in WordPress you could assign, say, as you described, this H1, this person can amend it, and this person can access the colour palette for the background image over here, but they can’t access the text. That kind of really granular permission. Whereas block locking just, it seems a bit more of a blunt instrument if you know what I mean. It’s binary. It’s locked or it’s not. You’d like to unlock the capabilities within each block so that certain users can do certain things within the same block.

[00:33:15] K. Adam White: Within blocks, we tend to rely on security through obscurity. We can hide or obfuscate controls behind block locking with content only. We can hide them behind patterns. But if someone’s coming to WordPress, we do make sure that they understand upfront what the nuance of control will be. And we will work with them usually to make things more editable.

Again, I will mention that most of the projects that we get that come from one of these more control-oriented CMSs into WordPress, what they’re seeking is actually more flexibility, not less. So they’re making a decision that they are willing to exchange the stringent control that they get in their existing tool for a process-based change. Maybe they add a review step, or add some sort of workflow plugin, so that we can validate that things look good and have someone sign off on it before it gets published. They would prefer to go that route than to sacrifice the ability for the editors to have the full control, and full pallet of options available to them.

[00:34:13] Nathan Wrigley: Right, so that’s a much more loose approach. Everybody can maybe do more than they ought to do. If we have some editorial guideline where that can’t finally hit the public domain because the publish button is unavailable to you, that’s, okay. We’ll accept that kinda halfway house, if you like. That’s interesting.

[00:34:30] K. Adam White: Each client’s needs are going to be slightly different. We do layer in publication checklists. We have tools to be able to say, this has to be tagged with the primary category before it goes live. We have tools to say, this still has lorum ipsum in it. You can add those in and build workflows, but I tend to like to help clients build processes to support those, rather than trying to take a draconian approach and lock everything down. Because then your work is going to be constantly chasing fine-grained permissions controls when you could be working to use that time making sure that all of the editors know what they can do.

[00:35:04] Nathan Wrigley: I just want to drill into this a bit more. I know this isn’t where we were supposed to go, but I find it really interesting. Would you like those things to ship in Core? obviously they suit you down to the ground, all of those granular permissions, but do you think that belongs in Core?

[00:35:17] K. Adam White: I think that we need more workflow in Core.

[00:35:20] Nathan Wrigley: Okay.

[00:35:20] K. Adam White: I know that there’s a number of different agencies and hosts which each have developed our own workflows solutions. I’ve worked across a number of them on projects that I’ve helped to support.

But the notion that if you have something published and you make an edit out of the box, WordPress will automatically put live any further changes that you make to a published post when you hit save. That is probably the single thing that we most frequently have to build some type of plugin into a site to handle.

Because we need to be able to give people an editorial review step. So that is something that I think we have a number of good tools, but I would love to see a more opinionated default in Core that we can use as a foundation for more complicated post editorial workflow. I think that’s the thing that we most frequently run into. That, and also I guess internationalisation are probably the two things that hopefully will come to the surface of the WordPress roadmap over time.

[00:36:13] Nathan Wrigley: Yeah, I’d really not thought about that. Given Human Made’s sort of credentials and what have you. Do you have a lot of clout? Do you just punch above your weight in conversations about what makes it into Core? Do you get involved in those discussions? I’ve literally no idea how that would happen. Do you communicate to people when a release is coming around. Do you have a voice? Do you make yourself available? What is Human Made’s position in terms of getting things pushed into Core?

[00:36:37] K. Adam White: We participate in the project. I personally have been less involved in Core over the past several years than I would have hoped. I’ve been very much enjoying the detailed, quite close to the ground work that I’m doing on our agency projects. But unfortunately, I have taken a bit of a step back on the open source project.

Some of my colleagues are in a slightly different boat. My colleague, John Blackbourn, our Director of Security for our own hosting product is also the head of the Security Team for WordPress? And has been helping us get the core patches out for the recent set of security releases.

We obviously will advocate in calls for feedback within the Gutenberg project when we feel that there’s a particular direction that we see from our projects. We are able to provide feedback on the UI, and the capabilities of new blocks that are being proposed. But that’s all done through the normal Gutenberg GitHub issue, and WordPress

[00:37:28] Nathan Wrigley: So I think we should probably knock it on the head there. We’ve reached our allocated time. I’ll just point out that these days, it used to be the case that if I was at a WordCamp, you’d really have to wait about six months before the video for the presentation was available. I’m pretty sure it’ll be done already, in all honesty. 24 hours seems to be the time there. So if you were to go to WP Tavern, I will make sure that the link to the video, of K. Adam is there. If not, you can probably go to Google and search Migrating to Blocks, and in parenthesis, with Artisanal Care at Industrial Scale, and you’ll be able to see what it is that K. Adam was talking about.

But really, thank you so much for chatting to me today about all of that.

[00:38:06] K. Adam White: Thank you very much. And I can confirm that the video is already live on YouTube.

On the podcast today we have K. Adam White, or K. Adam for short.

K. Adam is the principal engineer at Human Made, an enterprise WordPress consultancy. He’s been involved with WordPress almost 20 years, attended his first WordCamp in Boston back in 2011, and has contributed to WordPress Core and the broader open source ecosystem. Human Made is known for delivering complex projects, think high stakes, no room for mistakes, from global brands moving to WordPress.

This time around, K. Adam delivered a presentation at WordCamp US focused on a crucial topic for anyone modernising their site, migrating to blocks. Human Made has been all-in on the block editor since the Gutenberg plugin days, and the team now specialises in large-scale migrations from other content management systems like Sitecore, as well as from other WordPress page builders.

Our conversation focused on the technical and editorial challenges of moving tens or hundreds of thousands of posts into the world of blocks and patterns. We talked about the need to combine “artisanal care”, attention to detail in design, layout, and brand, with “industrial scale”, the ability to automate, audit, and validate mass migrations without losing visual fidelity.

We also discussed the use of patterns as a foundation for development, integrating custom and Core blocks, and leveraging new tools (including AI-powered agents and open source plugins like Human Made’s own rehydrator) to streamline migration workflows. We also touched upon how clients are onboarded, the process of auditing legacy content, strategies for training editorial teams on the block editor, and there’s a frank reflection on gaps in WordPress, like granular content permissions.

If you’re contemplating a move to the block editor, wrestling with a massive content migration, or curious about what happens when enterprise complexity meets the flexibility of WordPress, this episode is for you.

Useful links

Human Made

Migrating to Blocks (With Artisanal Care, at Industrial Scale) – K. Adam’s presentation at WordCamp US 2026

Human Made’s rehydrator plugin on GitHub