Testing in real environments matters a ton. It’s part of why this site is running the latest and greatest as are some of the other sites I run. You simply run into different bugs and points of confusion when you’re in the flow of using a product over doing artificial testing. At the same time, since I already have a number of real sites using the latest from 7.1, I wanted to also test scenarios I might not otherwise run into, like 100 revisions in a post or 3+ posts published in the same day appearing in the now punted “On this day” widget. Here’s a list of everything I ended up creating with studio with some bonus additional items I forgot to include:
(no title).The possibilities are endless and this saved me loads of time! Time that I would have spent just setting up scenarios instead was spent truly testing. If you’re a nerd like me and want to help test, here’s a playground made from the above created WordPress studio site where AI did all the heavy lifting:
Happy testing!
]]>Ultimately, this morning, the decision was made to punt the feature (link to the conversation in the release leads channel and a link to the GitHub thread). Here’s a re-share of part of what I said there: Iâll speak plainly and say that I am so frustrated we couldnât get this in a better spot (not at anyone in particular, just at the reality of the situation). I really, really want our users to benefit from this landing. At the root of the reason why it didn’t land are a few things: lack of a solid design approach, lack of robust exposure and feedback from users due to it not landing soon enough, and lack of agreement on a way forward. What we did not lack is a willingness to try and experiment. Even if we have a strong idea that this would help users and are centering that, I would rather have more assurance it genuinely is helping in a way that makes sense. Similar to some extra Notes features, I hope to see this land in Gutenberg soon, perhaps first as an experiment to be extra safe. We can do a call for testing and get more direct feedback too.
With the above in mind, I wanted to preserve part of the journey of this feature partially to get any early feedback and partially to have a snapshot of the problems and solutions explored across a range of PRs.
Since I ran the FSE Outreach Program back in the early days of the Site Editor, I heard feedback that folks couldn’t understand the hierarchy of styles. In some cases, I’d watch user testing where folks would style a template thinking it would automatically apply everywhere. In other cases, I’d watch people pick a style variation and then open block settings for an individual block in a template only to be confused not to find those styling options reflected in the sidebar. This longstanding problem has been something I’ve passionately wanted to see fixed for a long time.
At a high level, for this release, the full spectrum of the desired feature is to allow folks to see inherited styles reflected in the block settings, identify where they come from via breadcrumbs, override any inherited options, reset them back to inherited options when needed, and push any local overrides globally. This last aspect was actually split out into it’s own PR and approach here using a different approach separate from the overall feature for a simpler design, allowing it to land. The other aspects are what the rest of this post will focus on.
Below is a look at an early version of what was developed with me talking through the default state and two options to show inherited styles: a blue dot and a diamond approach.
There are numerous issues with the above designs:
After beta 1, the problem then arose that a number of folks were on vacation this time of year or out for various reasons, hampering our ability to come together with enough perspectives. I noted this here as a risk. To keep working moving, I proposed two different possible ways forward:
Diamond with the ability to reset to inherited style
This option shows no indication of something inherited globally but it just reflects the styles you see in the canvas. If you override an inherited setting then a diamond appears to indicate an override (this should be a filled in diamond, sorry!). When you hover over it, you see an option to reset to the inherited styles. This reduces visual noise by not showing an inherited style while still allowing folks to see when they have an override and to reset to global.
Diamond with only a tooltip
This option also shows no indication of something inherited globally but it just reflects the styles you see in the canvas. If you override an inherited setting then a diamond appears to indicate an override. When you hover over it though, you ONLY see an indication that this local change is overriding global styles (copy is rough on this tooltip). To reset, you rely on the tools panel which we know is accessible and is a current known pathway. This is a more scoped down version of the former item in that it only shows a tooltip but without any ability to reset since that already exists in the tools panel.
This last option is what was then pursued in this AI generated PR from yours truly after being taken over by devs. This was possible to generate with AI thanks to the hard work to have a sound and robust technical approach by Aaron Robertshaw.
Exploring infotips rather than tooltips
During this PR, we went back and forth around tooltips vs infotips. Tooltips eventually won out but here’s a view of what the infotip component approach looked like:
Confusion around the reset method
Separately, within the comments of this PR, I noted a big drawback to losing the reset option baked into the same inheritance indication and shared the following video. Put simply, there are two different options to reset the values and it’s not clear why they are different:
This then led to, in some cases, a reset option being added separately to the controls as shown in this comment to help ease some of the confusion there for some of the options.
Adding back in breadcrumbs
Finally, after it felt like we were making headway with the above approach, I explored adding back in breadcrumbs to show where style options were inherited. This was built using AI and was made easy to do thanks to prior work by Aaron Robertshaw once more.
Here’s what I learned in the process:
Ultimately, I think this was the right call but it was extremely painful to make. On a personal level, I couldn’t shake not liking the diamonds in the interface nor how cluttered it looked so I’m excited to have more time to iterate, make it undeniably awesome, and land it hopefully for 7.2.
]]>“In this world of numbness and information overload, the ability to feel, my boy, is a rare gift indeed.”
Patrick Ness
Ironically, I’ve been so deep in the release that I haven’t been able to share a recent short documentary I was interviewed for about open source. It was terrifying to be interviewedâI cried during parts and found myself deeply appreciative of the questions asked. I stumbled into open source. When I joined Automattic in 2014, I didn’t have a full appreciation or understanding, beyond knowing it was in our creed. Once I started to wrap my head around it, I couldn’t go back. I couldn’t unsee or stop knowing. Suddenly, I started to see all around me just how powerful of a concept it really is and how much is missed by not embracing a more open world. My hope in sharing the documentary below is that folks will watch it in order to get a better sense of why open source matters. Like everything, it’s not perfectly good nor perfectly bad but it does feel like a better way. I also still feel like I’m only scratching the surface of open source. It’s a similar feeling I get when talking to a queer elder who fought to have rights that I sometimes take for granted today.
I feel like I have endless things to say but that’s why tomorrow exists.
]]>In many ways, this feels like a return to what I was doing 9-10 months ago with AI and it feels… right. I’m sure I’ll still contribute PRs here and there but it feels important to think about how best I can sustainably contribute in a way that’s best for the project. For this release cycle and my role in it, this has felt like the best use of time for all involved.
With that in mind, I wanted to share a few examples of what that collaboration has looked like, mainly to serve as inspiration after meeting with the recent AI Leaders graduates this week in Chicago. Bear with me as this is going to be deeply nerdy and detailedâhappy to explain anything in the comments below. I am also going to skip over all of the wonderful contributions from everyone on the threads. Please go look into them! I mainly want to focus on how I’m approaching this to show how others might think to contribute.
My process is very simple. I’m using Claude both in terminal and in CraftAgents to work with the PR locally. I make it clear that I am just wanting to work locally and I have no intentions of pushing any updates to it or creating a PR. I previously set up a dev environment so, if you haven’t done that, ask Claude to do it for you and point it at documentation, like wp-env.
One of the features for 7.1 shows inherited styles so it’s easy to see when a global setting is impacting the part of your site you’re working on. As part of being able to override those styles, an option was added to push an individual change to a block to the entire site. For example, you could change the font size of a paragraph and push just that font size change to all paragraphs on your site. The approach in progress showed two options every single time you made a local change to a block:

This means that every single time you make a local change and you go to reset it to the global option, you’d be presented with an option to also push the styles globally, separate from the overall “apply globally” option available under Advanced in block settings. In testing the PR, I couldn’t shake that this felt off and initially flagged it for design in this follow up comment. More time passed though and I kept thinking about it before deciding to try something different out that you’ll see below.
Design later reviewed it, said it looked good, and the dev working on the feature is in the process of adjusting the approach. Mind you there are loads of details to work out but this just saved likely hours of back and forth as well as waiting for design to review when I had an idea in mind that just might work.
Despite the concept of attached images existing for a long time, there hasn’t been an easy way to find them from the Inserter. To zoom out, adding seeing attached images is meant to help with two main flows: allow folks see what images are attached to a post and prioritize those for ease & allow folks to attach images to a post for use in the post itself (more newsroom style flow where someone uploads from a media library for someone else to then use that image in content). 7.1 has a dedicated area of work to improve this and a discussion broke out around how best to approach it. Here’s what the initial PR was looking like:

When I first saw this, the attached images section immediately overwhelmed everything else, including seeing the button for the broader media library. At the same time, there are real concerns that most folks may not quite understand the terminology. To try to address this, I offered an alternative UX approach using AI that simplifies things (and makes the images themselves bigger and easier to review): it takes the same approach the other options uses and just adds at the top an “attached images” option. See below:
You’ll notice there’s some jankiness but that’s by design. I’m not trying to have a code ready PR. I’m trying to communicate a way forward and this was a very fast way to do so. Amazingly, the same developer working on this feature already had a PR in that direction and this discussion helped us move towards it.
A call for testing went out for Media Editor Modal: call for testing that adds a free-form image cropper in the Block Editor along with other goodies. I regularly use our image tools to manage my photos so I am keen to see this land and to have it land in a way that feels delightful to use. In testing this out, I found myself again wanting to communicate not just in words what I want to see but in code. I left a comment and shared some still images (after I struggled to get this video to upload to Cloudup) of what I thought might work:
This has evolved so much since this comment over a month ago and I highly recommend folks go check it out/try it out.
]]>What a good reminder to be careful for the full length of something. What a good reminder to be grateful for undo buttons, auto-saves, revision history. I spend so much time in a headspace where things can be fixed and iterated upon that I can feel the ways it bleeds into my carving. When you know something can be fixed later, it inherently changes you, even if there are very real consequences to needing to fix something. I wrote about a part of this four years ago: how great it feels to have to be at attention with something and how much I seek those habits out.
How would I be different if I were in a less forgiving area of work, like if I were the surgeon that operated on me? How would that shape how I live my life, what hobbies I seek out, how I treat others? In many ways, I can already be so rigid and more on the anxious side that it’s probably been a positive for me to work in a world with more room for gray, for trying and failing, and for seeing one’s work through the lens of relentless iteration. Growing up playing soccer, I had a coach yell at me about how after I missed a shot, I put my head down directly distracting me from the game unfolding before me. He taught me a valuable lesson in taking failure head on without blinking and being ready for the next moment after when things could change. I still struggle not to take myself out of the game when things go wrong and I still think about his words. This is also likely why I don’t enjoy golf which suffers from higher consequences when you miss than soccer. I feel the ways I need hobbies like wood carving to stretch me to pay attention differently.
I am also just frustrated with myself for creating yet another hole in yet another spoon. This is at least the second if not the third spoon I’ve done this to in the last year. While I end up giving the spoons away, my minimalist self laments the wasted wood and wasted effort. Why didn’t I pay more attention? What do I need to do differently? I thought I was slowing down, taking my gloves off often enough to really feel the wood and understand where more work was needed. If I’m doing this repeatedly with a physical object, what other holes am I creating elsewhere in my life without realizing? Not everything will be so apparent, especially if others are unwilling or unable to voice it to me and hold the mirror up.
Time to get back to it and not remove myself from the game for too long. Wish me luck. Perhaps the part of me that keeps trying after so many holes is the real part to nurture.
]]>



While I never got a proper shot of the sunset, I captured the moment and the feeling better this wayâthe feeling of bumping into bodies, the jostling to get the best view, and the futility of trying to bottle up nature. I stood back and watched the sky melt.
]]>The name Underway is meant to invoke feelings of work in progress and momentum as drafts and ideas are always just right there to form into something. It won’t be submitted to the plugin directory just yet as I don’t want to submit something I can’t reasonably commit to maintaining.
Below is a demo of the plugin in use on a local test site and on an actual site I run (surrogacy-stories.com) to show it in action and to show empty state for new users.
For those who want to play around with the plugin themselves, check out the following playground setup:
Throughout this process, we slowly landed on the following principles with AI based on our own experience of using AI and not wanting to use it for writing. This was intentionally an opinionated stance on AI grounded in a writer’s perspective.
The above informed the various design decisions reflected.
After going wild with widgets to create a dream dashboard that makes you want to wake up and check WordPress, we explored a range of widgets. We dropped bundling two into Underway for the final push due to the setup being a pita for most people: Strava Stories and Jot. Strava Stories surfaces your latest activity with a quick option to create a draft with what you shared on Strava. Jot offers ideas for what to write about based on what youâve been sharing and doing on connected apps (ToDoist, GitHub, Strava, etc). Both of these required an annoying amount of setup due to needing oauth. While they work, they donât feel as ready to bundle and share.
If anyone wants to try it out and give feedback (be critical!), you are welcome to open issues here and just respond to this post.
]]>I am not going to launch this as I don’t believe in launching dead ends and I don’t think I can reasonably maintain this nor do I think it’s likely the best code. I wouldn’t take much from this beyond me scratching an itch and feeling my way through our curation tooling!
As much as possible, I relied on built in defaults and followed the curating the editor experience guide. Switching levels is non-destructive so you can move up and down at any time from the bottom right switcher, and if you have unsaved changes you’ll get a “Save before switching?” prompt before the editor reloads into the new level. If someone isn’t wanting to have changes immediately go live, this creates a bit of a tricky scenario if they need to switch a level to do something more advanced. This pain point touches on a known one in Core I opened five years ago.
I imagine using this plugin in conjunction with creating specific locked patterns, including some partially synced patterns, would go a long way if I were working with clients. It takes cultural connotation around video games and “levels of difficulty” to add what I see as good friction to switching into what you need, knowing you’ll get a different experience to match your level. It also presents editor defaults less around “write” or “design” and more around difficulty level as I find I very rarely enter the editor thinking about one task. I usually edit my site and am thinking about many tasks but at different levels of difficulty.

This is meant to be for someone who just wants to make simple changes and doesn’t want to risk breaking the layout the theme already set up.
focusMode is on so clicking a block dims everything else on the canvas.lock.remove: true. Backspace can’t accidentally wipe an entire section. There are some bugs with this when switching to different modes that I finally gave up on.theme.json is constrained server-side to match â appearance-tools off, advanced typography keys off â belt-and-braces on top of the JS-side stripping.
This is meant for someone who is building or rearranging aspects of a site while keeping the overall site design mostly intact. It most closely matches what you get out of the box with some light curation.
focusMode is off â the canvas behaves normally.
This is for designing or rebuilding a theme from scratch. Every control and option is surfaced by default.
__experimentalDefaultControls is populated for every control the block declares, so Border, Dimensions, Shadow, Position, Background, advanced typography, etc. all render up-front in the sidebar instead of hiding behind the “more” menu.focusMode off, full breadcrumbs and helpers visible.Ctrl/Cmd+Shift+Alt+M) and block-directory installs are enabled so you can pull in new blocks from wordpress.org.This experience helped me think through some current problems we need to solve in Core, including improving discoverability of entering/exiting contentOnly with patterns, making different settings configurable, what default options should be available, what else we should allow curation for, and more. It was really neat to see the way the many options we have could be curated and also laid bare how our current approach only fits a certain audience. At times, I found myself loving the efficiency the full openness of Advanced provided and, in other moments, the ease of Simple made editing feel more straightforward.
]]>âYour task is not to seek for love, but merely to seek and find all the barriers within yourself that you have built against it, and embrace them.â
Rumi
I’ve heard another variation that’s something like “and love them.” This is one of many quotes that have remained lodged into my soul over many years. In any case, in all of this downtime from surgery, I’ve been feeling many of my barriers. There will always be reasons not to try, not to love, not to care whether that’s with people, work, or my own life. They will never go away. In a moment of awareness today, my perspective eased and I tried to imagine myself pulling in all of my barriers for a big hug. I tried to imagine holding them close and observing them rather than banging my head against them, ruminating on them, or simply stopping at the point of my barriers. These are my barriers! This is what I have been tasked with sitting with in my life. I hope I learn every part of them, how they impact me, how I fall for them, why they are there, how they try to protect me, on and on.
]]>James is the doctor at urgent care who, after examining me, told me that if I were a loved one of his, he would send me to the emergency room for an evaluation. He was spot on and even phoned ahead to the hospital he recommended I go to for further evaluation.
Tom let me use his stethoscope to listen to my belly after I asked him some questions about what he was listening for. My body sounded like the ocean. He answered all sorts of weird questions from yours truly as I tried to get a sense of what was going on.
Pam welcomed me to my own private room on the fifth floor and helped me get dressed into a new hospital gown. Despite being the middle of the night, she never rushed me and treated me with such kindness.
Soledad always remembered to turn the lights off when she came in overnight to check on me, give me antibiotics, give me pain meds, and take my vitals. She exuded kindness and gentleness when I needed it most.
Jason kept me up to date on when my surgery would be while Gabriel helped me unravel my bra when I got it stuck around my IV after not taking it off ahead of time. It was comical to have multiple male nurses try to help me retrieve my bra from all the cables.
Sean introduced himself as the anesthesiologist before surgery and asked me various questions to ensure I would be comfortable. He gave me a heads up at each step in the operating room as he put me to sleep. Right before I went lights out, I thanked everyone there for taking care of me with some tears in my eyes. I hope they heard me over the oxygen mask.
Rebecca performed my surgery and shook my hand when she first met me, even though she had to immediately wash it afterwards (whoops). The first time she came in she was flanked by two other women and I immediately felt at ease feeling her calm confidence. It was also absolutely rad to see a crew of women taking care of me. I used AI to analyze the description of the surgery and the big takeaway was “this is generally the best case appendicitis surgery scenario”. I have to agree. Rebecca did an incredible job from what I can tell.
Chelsea tolerated me asking her name at least three times after surgery (I wanted to remember who was helping me and say their names when I repeatedly said thank you) and helped patiently explain everything needed for discharge. When I admitted to googling likely too much, she reassured me with a “don’t listen to Dr. Google” and then offered practical guidance. As I headed downstairs with Katy so Kelly could pick us up, Chelsea ran after us to give me two barf bags I requested. Kelly very slowly and carefully drove us back, making it much easier to return home.


Then there are those I can’t remember. The person who did an EKG when I first got there. Another person who first took my blood. The nurse who brought me food at 10pm after I hadn’t eaten anything for over 24 hours, just in time for my 12am food and water cut off ahead of surgery. The nurse who rolled me to my CT Scan and the three folks at the CT Scan who managed to quickly grab a barf bag when my stomach turned. The second person who took my blood this time at 4am. The person who was there when I woke up in post-op and handed me one by one two tiny cups of applesauce. I didn’t have my glasses on so I couldn’t see his face but I asked his name and then promptly told him I wouldn’t remember it but that I appreciated him. I did the same when I got into the operating room and a new guy entered with anesthesiology. “I’m sorry I can’t see you and won’t likely remember you but what’s your name?” All I know is that he grew up in Dallas, Texas and another person in the room grew up in Georgia. I asked them if they had found any good BBQ in Seattle and we all lamented the lack of good Southern cooking here. It was fascinating to feel myself be a part of someone’s work day, especially when I have worked remotely for so long.
I wanted them to know that I saw them as people and to see me the same while we were all in the midst of this medical machinery. I felt like I was on a conveyer belt or a long flight filled with delays and uncertainty. Likely from nomading so much, I have a strong ability to let go and embrace being along for the ride when things get really rough. An internal calmness settles in and I try to stay as present as I can with what’s needed of me in that moment. It’s when I still feel like I could do something to change the outcome that my anxiety spikes and the doer part of me tries to take over. There was nothing I could do to change the outcome of needing this surgery, as much as I didn’t want it. I settled in and, when I was put in my own room and left to my own thoughts, I thought back to my 6 year old self who had emergency surgery to save my left pinky finger after an accidental injury from my brother. The feelings of fragility, of smallness, of unpredictability washed over me but didn’t remain. I was steadfast and focused in getting through what was ahead.
It hasn’t always been like this. In the first year I lived in Seattle, I had a few week period where I thought I would need hand surgery on the UCL of the second metacarpal of my right hand. I collided hard with a man months prior playing soccer and was in searing pain any time my finger grazed a surface. I absolutely panicked when I heard I needed surgery and even tried (and fortunately failed) to break up with my current girlfriend by giving her a big out of our budding relationship. I remember feeling how vulnerable it was to not have a safety net of folks around me that I could easily lean on. Thankfully, I got a second opinion from a more reputable orthopedic surgeon through a family connection and learned I could just give my body time to heal (about a year) before considering any procedure. I ended up recovering from the hand injury sans surgery. Thinking about facing a surgery this time around, I felt completely different even though this was an emergency procedure I had little to no time to prepare for. I knew I had people in my life who would carry me through, especially my girlfriend who remains by my side and has had to navigate a world of her own health concerns.
Throughout the sterility and procedure of it all, I felt everyone’s humanness shine through. This included getting a range of conflicting information at different times, even down to “you won’t be able to go home after surgery” one moment from one person to “you absolutely will, please plan a ride home” the next. Some nurses seemed more concerned with taking my vitals than others. The surgical resident I spoke to carefully chose her words, trying not to influence me when we spoke whereas a nurse setting up an IV openly told me what she thought I should do. Nearly every person in the operating room introduced themselves before I went back, greatly lessening any unease. It was a sea of humanity and of humans helping humans amidst so much rigidity, process, and data.
I also felt how incredibly fortunate I was to be able to leave in the middle of the work day to go to urgent care, to get care without worrying about the cost, to know I would be able to take time off without putting my job at risk, and to trust the folks I work with to carry anything through. It’s such a shame this kind of support is as rare as it is. I’m 48 hours out from surgery and I am still catching up to what happened. I’m still sitting in gratitude for everyone who cared for me that day.
]]>