When I sat down to write my yearly Automattic anniversary post, this is what immediately came to mind but extrapolated onto my work life: the complexity of working with some of the same people for 12 years, the weight of longstanding problems I’ve wanted to solve in our tech and our culture, the awareness of patterns (good, bad, and ugly) that swirl around creating avenues for momentum and strange dead ends, the ways I’ve changed along with the company and the people around me, on and on. I feel what it means to stay engaged for so long in a place that continues to shift and evolve. Some things that drove me wild in the first few years, no longer do and other things do even more. Like a friend who is always late, at a certain point it becomes a deal breaker, you plan around it, or you try to talk about it (again). I’m thankful for how much of a culture exists to “talk about it” at Automattic.
I’ve really tried to meet the moment of the last year: stepping up to lead WordPress 7.1, stepping into a PHP Foundation Board position, sharing my thoughts in a documentary, and authoring more PRs thanks to finding a groove with AI. It’s been enjoyable to be able to create and communicate better with the help of AI tooling yet it’s also been important for me to center and protect my humanness. A co-worker of mine made this fun GIF after the launch of 7.1 (it didn’t fully happen live but nearly did). If you look closely, you’ll see a determined relief on my face to have the release out in the world.

More than any work item this year, the biggest thing I’m proud of and still in awe of is my very first public interview about surrogacy where over a million people watched what I had to say. In the following week after that interview, my soul shook and I barely slept. What started as a website no one visited (surrogacy-stories.com) created this opportunity when a journalist reached out. Steady, vulnerable writing that few people read helped me sharpen my message, find other people born through surrogacy, and helped me speak to a perspective that’s missing. My experience doing podcasts, diving deep about controversial topics in the WordPress community, and bringing contributors together over big topics all served me so well when the interview arrived.
I’ve also prioritized sustainability and rest. I’ve said “no” to way more podcasts, panels, and speaking invites than usual. I went out of my way to spend more time with family and my partner’s family, both young and old. I’ve gone off the grid a few times, opting again for two weeks off all technology. I managed to read 8 books in that time period and I’m not sure the last time I’ve done that in a year with how much reading/writing I have to do day to day. I’ve taken full advantage of my healthcare after an emergency appendectomy and have so appreciated how much remote work has allowed me to be there for my partner who has battled so many health related things this past year. My partner and I took on a garden plot in Seattle and have worked hard to see so much come to fruition. Yesterday evening, I went over to the garden to weed and pick the fruits of our labor: numerous tiny tomatoes, chard, red onion, and a few carrots. A delicata squash, three zucchinis, lettuce, and more carrots are on their way as I write this. We’re both obsessed and nothing has been more helpful in the frenzy of AI slop to watch something slowly grow and to hold it in your hands. I took my mom and one of her best friends to Florence, balancing work and play part of the time. As I walked to coffee each morning, I marveled at how this could be my life and how amazing it felt to bring others with me. I nomaded more this year than usual and loved the chance to do so yet again.
It’s impossible for me to talk about working at Automattic without talking about what working at Automattic gives me in terms of a full life, time with loved ones, true rest, the opportunity to work with folks at scale on hard problems, and the chance to make a real difference on the open web.
Because it’s been so many years, here’s a list of all of my anniversary posts. When I look across a few of them, I see a pattern of gratitude more than anything and that is what still remains.
On my one year anniversary at Automattic on September 4th, I was on a plane headed from Toronto to Dublin. I sat next to a French Canadian who owned a winery and a dairy farm outside of Ottawa. We spoke of favorite travels, how fascinating anthropology is, and how it’s…
It’s my two year anniversary with Automattic and I’m in disbelief. How has it been two years? My life has radically transformed in many ways since starting work at Automattic. I went from feeling like an out of place psychology major thrown into the tech world unaware of what I…
What I listened to while writing. Just prior to this, I was scrolling through Automattic‘s Bridge team’s updates (think of our bridge team as you would a formal C level team). I like to end my day in randomness if I can. There’s so much to learn at Automattic and so…
This is the loudest thought in my head when I think about 4 years of working at Automattic – “How did my world become so vast? How did I get so lucky?”. My only fear is that my luck will run out as this opportunity feels so rare. Looking back,…
These are some of my favorite posts to write. I love an excuse to reflect and to gush about a part of my life that has brought me so much – like talking about a dear friend. As the years go by, it becomes harder to speak on how Automattic…
Around 6 years ago, I flew from San Francisco into Salt Lake City for my first Automattic Grand Meetup, the name for our company wide retreat. I think we were around 230 people then which felt massive coming off of working at a startup for a few months with less…
To say I feel lucky to still work at Automattic is a vast understatement. To stay I miss my co-workers feels the same. In the dim, horrifying, mind numbing, and surreal days of the last year, working at Automattic was a gift. It felt like the library on my college…
For the first time in eight years, I celebrated my work-aversary in person with a few coworkers. For a distributed company like Automattic, it’s a true reflection of how much I appreciate my coworkers that I’d want to meet up with them to celebrate, despite no need to do so.…
Two weeks ago, I went to the 2023 WordPress Community Summit to discuss important topics for the WordPress community, connect with folks from around the world, and get my fill of possible new ideas/approaches/problems to explore. I love gnarly, complex problems and WordPress has its fair share to sort through…
I’ve spent just barely under a third of my life working for Automattic. These were not mindless years that somehow added up. I have felt each of them in the best way. wordpress. this is new. kevin and the gang went to teh VIP conference and he got me some…
While I have another year at Automattic to be grateful for and dig into, I want to call out my former colleagues who are still looking for a job after a workforce reduction in April of this year. If you can do anything to support them (make connections, hire them,…
Simply put, notes are hard to discover, cumbersome to use, and tricky to track where and when they are left:
Here’s a run down of how this shows up in the experience so you can visualize it. I used a real world example as the release coordinators I worked with 7.1 on used Notes in the final announcement post for the release to communicate with me and each other.
In the wide range of Phase 3 user research I’ve been a part of over the years, it’s become clear to me that notes, particularly with the added suggestion mode, covers a fair number of use cases organizations have when collaborating in a post. If in future version notes can be properly elevated in the interface to improve discoverability and ease of use combined with new features, like suggestion mode and emoji reactions, I think there’s a strong chance to provide a lot of value for our collective users. Here’s what this could look like for 7.2 based on what’s underway and what feedback we’ve gotten thus far:
Pulling together various in-progress PRs, here’s what 7.2 might look like. As you watch, I bet you’ll see many areas where we can make refinements to the experience and the good news is that we have time to do exactly that with beta 1 on October 20th.
What gaps do you see, in features or in refinement? What would make notes as usable as possible for you or your team? Bonus points if you open issues directly in GitHub. Shout to Adam Silverstein who is absolutely jamming on so many PRs to move this work forward.
]]>More work is underway to add more supported styling controls and to convert some settings to style controls to expand what one can do with responsive styling. Tied to this, we need a UI for fluid spacing as only fluid typography exists right now in the Styles UI. These are all pieces rather than the whole though and looking at the whole of the experience is where the opportunities lie. Here’s a 3 min video of me showing what currently exists:
There are quite a few problems to solve within these different features:
I’d love to hear what other people think, especially since responsive controls is a top requested feature and has been for years across the WordPress ecosystem. We have some of the building blocks and we need to iterate for 7.2+ to create something truly delightful.
]]>I returned from Phoenix on Monday after staying longer to hang with my girlfriend’s grandparents who live there. Despite being 93, her two extroverted grandparents wear us both out in the best way. We took her grandma to see The Odyssey at her request. I snuck glances at her during the movie and cracked up when I saw her holding her sweater over her mouth, eyes darting back and forth watching the screen in equal parts shock and enjoyment. I very rarely go to the movies and I’m always struck by how intense of an experience it is. It’s always way louder than it needs to be and there’s something so all consuming about staring at such a giant screen. Every evening we did dinner with them and soaked up some new stories alongside some tried and true ones. I only was given a short list of tech related items to help with, including deleting nearly all of grandma’s photos from her phone despite my explaining she has room. We apparently share the same trait of enjoying cleaning something up (whether photos or tidying a room) and then repeatedly returning to see how good it looks. I’m in the process of doing that with my personal to do list this week too.
We returned to Seattle with our garden full of delicious veggies to eat and signs of more to come, like the delicata squash pictured below that’s slowly making its way into the world. Today, I nearly jumped out of bed at 5:30am to drive to Goat Lake trailhead to hike the five miles up to the lake, slowly eat a sandwich, and wood carve for a few hours before heading back down. I managed to finish up a leaf bowl I started a few weeks ago and carved a new spoon that has such a cool handle with a knot perfectly wedged in there. As I drove back through the woods, I blasted music and put all my windows down.
When I was back in cell service, I called loved ones and chatted with a few folks, finally feeling a return to some level of possible socializing after the marathon of last week. Still, I find myself quickly drained. Introvert recovery continues: I touch grass. I carve wood. I hike mountains. I hug trees. I lift heavy things. I water plants. I snap photos. I pick berries. I return to myself, slowly but surely.








This focuses on decisions made after the roadmap was shipped through to release day, listed from oldest to newest, with reasons listed below. I used AI to help compile this list from a combination of the #7-1-release-leads Slack, AI briefings I tried to get to work (it was a bust), and GitHub/trac activity. I’ll likely update this as I remember more items but, for now, these were the bigger decisions that had to be made.
Takeaway: this is a great way for release leads to help make decisions while still ensuring the code is up to snuff.
One of the takeaways is that the Classic block should become obsolete by choice, not by force. I believe time will be better spent to make the alternative genuinely better, while also smoothly, losslessly migrating content, so that users move off Classic block because they want to, not because the door has been removed.
From “The Classic block stays in the inserter for WordPress 7.1“
wp_classic_block_supports_inserter filter and its deprecation notice were removed.React 19 upgrade won’t be a part of WordPress 7.1. After briefly enabling it in Gutenberg we discovered unexpected incompatibilities in how old and new version of React interact with each other, and in the ways how plugins use React, and we were forced to revert the change.
From “React 19: punted beyond WordPress 7.1, experiment in Gutenberg“
The original plan was for Matt to accept the proclamation, do the release with slides and the highlight video ready, then start his session. As it turned out, Robert hadn’t seen the slides beforehand, and neither had I. A commit triggered auto-updates early, around 1:30pm MT, when only limited availability was intended (release visible via Downloads > Releases and wp-cli only). By the time I came out on stage, roughly 300K sites had already updated, and a WP Rocket fatal was already being reported and flagged in the release squad channel. Backstage, word came that Matt “doesn’t want to do the button,” which was ambiguous between not wanting to press the button himself and not wanting to do the release on stage at all. The real-time discussion with the release squad starts here.
I made the decision to publish, in this order of importance:
I explicitly owned the call: “I will own this decision if it ends up being wrong later.” I was eventually called on stage about 50 minutes after the original time. Lessons for next time: a new handbook page for running releases live at in-person events, and a triple-check or full run-through backstage before going on.
]]>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.
]]>