Improving the WordPress experience

This is a copy of a post I initially wrote for a8c design.

The experience of creating a WordPress site can vary wildly. Occasionally, I hear how someone set it up without any major roadblocks. I more often witness nightmare-level setup experiences. Together, with help from the community and hosts, we’re working to improve the process of building a WordPress site.

The fractured flow of the past and present

Putting together a WordPress site is never the same twice. Ultimately, the goal is to create a website with a nifty domain that is available for someone to see. Unfortunately, it is often easier said than done. There are two general paths one could go in to create their WordPress site: the self-hosted route (more control, but more manual setup) and the hosted route (something like where control is limited).

The self-hosted path

The phrase “self-hosted” is admittedly confusing. It doesn’t necessarily mean the user is hosting the site on their own server. It refers to any setup where the user has full control over their site because they either have purchased server space on a host like Dreamhost or, occasionally, they have built and are operating their own server space (super cool to hear when someone does this). Another way to put it is the site’s admin will have FTP access which allows adding, removing, or modifying files on the server and they are also able to install plugins or themes to their heart’s content.

The self-hosted site is like owning a house. You can do what you like with it. You can add a fence or take down a wall. You can paint it whatever color you like. However, when something breaks, you have to figure out how to fix it yourself or pay someone to fix it for you.

The self-hosted path can be somewhat treacherous. I have attended and hosted many WordPress meetups aimed at helping folks out with their WordPress sites. I often meet folks who have encountered unexpected roadblocks when attempting to put together a site as a result of inexperience and complicated flows.

For example, many folks think of websites as a domain. (Those familiar with this process can skip to the next section of this post.) A domain is just an address that points to a server where their site would live, but they don’t know that just yet. So they buy a domain. Then they struggle exploring the settings panels of the site they purchased a domain from trying to figure out just how to get to their site.

Eventually they figure out there’s this other thing they need to pay for called a host. When they find a host, they might notice that hosting usually comes with a domain. All of a sudden the price of their site just went up and they may be feeling a bit irritated at this point because they now just paid extra for a domain without realizing it. Their options are either to get hosting, try to get their money back on their domain, or try to transfer their domain. The latter is probably the most tricky for inexperienced users since anything involving domains is a slow process laden with jargon.

So now they have a host and a domain. With luck, they are connected possibly due to some help from the host’s support team. They are usually pretty friendly and helpful. They see these kinds of requests often.

Now they just need to get their WordPress set up. Again, this can be done multiple ways. With luck, the host will have a one-click install application within the host’s control panel. With even more luck, the user will find it and run it. If they don’t, they may end up attempting the “famous” five minute install. It will not take five minutes. Especially not the first few times they attempt it.

Screen Shot 2017-07-24 at 11.10.21 AM

In fact, the “famous” five minute install is mostly famous because it never takes five minutes. It should probably be named, “the famous thirty minutes to an hour install.” This is because it involves steps most folks have never done or even heard of before. How many of you even heard of an FTP client before trying something like this? And setting up a database is… well… it feels like just clicking something might break it since most of the wording is unfamiliar.

There can be any number of complications when doing the five minute install. Some may not even be the user’s fault. I have met folks who tried some fringe host I’ve never heard of or a free host, both of which are incapable of running WordPress, but don’t make it clear to newer users.

Let’s fast-forward a bit assuming they get WordPress installed and running. They have their password. Their domain is hopefully connected. Now they just need to do the thing they were hoping to get to right after they purchased the domain: building a nifty website.

Most folks jump right in to picking a theme. For many reasons, the look of their site is higher priority than creating the content. For those of you who have created many sites, you know that isn’t super necessary. In fact, it likely should be the other way around. So they scroll through infinite themes in the theme directory. They feel that theirs should be unique so they start looking at premium themes. They finally find one they like, pay for it, download it, figure out how to install it… and viola! It ends up looking nothing like the demo site. In fact, it’s nearly impossible from the user’s perspective to make it look like the demo site. How did they get that carousel on the home page? How do I put my articles in those spots? Many struggles, forum posts, and web searches later they have something vaguely resembling the beautiful demo site they thought they could achieve with the theme.

Then they find out they need SEO and a contact form and maybe even a web store. How hard could it be to add those? WordPress has plugins! The first two aren’t too hard. They grab the first SEO plugin they see and a contact form. Both are popular and somewhat straightforward to use. Then they find out creating a storefront is more difficult. Maybe another day…

Now it’s time to create the rest of the content and have a successful site!

That’s the potential route of someone who has a self-hosted site. It doesn’t include things like how the host handles traffic sites (the site might go down), how a plugin update might break things, how certain plugins can slow down the loading of their site, or how to recover a hacked site.

The hosted path

The hosted way is what sites like are where the customization is somewhat limited and the user has no (or limited) access to modify, add, or delete files on the server through an FTP client. Usually they can’t add plugins or themes since those can both include malicious code.

While the self-hosted way is like owning a house, choosing the hosted path is more like getting an apartment. You can customize it a bit, but you can’t just knock down walls where you like. However, it’s unlikely you will do much to break it and, when you do, the landlord has to fix it instead of you.

The experience is a bit nicer in some ways in that it is harder to get lost and folks don’t need to mess with FTP clients or much jargon. On the user can start by picking a theme. Then they can choose the domain they want or add it later followed by a plan. It’s pretty quick from start to site creation.

However, the hosted path can be treacherous as well. In the past, a user might start self-hosted only to realize they need functionality not available within the hosted site’s feature set. They put all this work in to their site and now need to go the self-hosted route, which used to be a bit of a bummer because it involved exporting content and trying to recreate functionality along with the joys of setting up a self-hosted site.

But, hey. We’re working to make it much better and we’ve already got flows in place that dramatically improve the experience through

A unified WordPress experience

At Automattic, we have been working for the past few years from different angles to help unify and improve the WordPress experience as whole benefitting the community, the hosts, the developers, and, most of all, WordPress users.

Working with hosts

We are continually working with and reaching out to hosts to do what we can to make the WordPress experience better. This includes encouraging simpler setup flows bringing one click installs into the process rather than at the tail end. It also includes getting Jetpack and Akismet preinstalled and set up without the user having to do too much or pay extra. Dreamhost does a pretty good job of this. We also work with the community to encourage hosts to upgrade to newer versions of PHP so users aren’t stuck with older versions we no longer support.

The future of moving a site

Right now, if a user starts on and the needs of their site grow beyond what is available on our platform, we offer multiple ways for them to move to or from a self-hosted setup.

The first path to move to a self-hosted setup is similar to what I previously mentioned in that we let the user export data as usual. They can then import everything on their self-hosted site.We also allow the download of many themes so there’s a good chance they can use the same theme. As a bonus, we also encourage installing Jetpack which gives them back all of the features they had on This means if they had custom post types set up, they will just work correctly after activating Jetpack.

The second path is a pretty hands-off version of the first. It’s called Guided Transfer and includes the migration of a site to one of our recommend hosts. It includes migration of all the content, stats, themes (sadly not premium themes), and setting up Jetpack on the host so the user still has all of the features they are used to. They can even continue to use’s interface to create or add content if they like. It’s fairly seamless, but can be slightly rough if their theme can’t be transferred.

Now, it is also possible to move a site from a self-hosted site to It’s fairly manual and involves exporting data from your self-hosted site and importing it into the website. If the user had Jetpack installed, all of the features they used there will be available on as well. We can also move over followers and stats upon request.

Basically, we have created a product that allows a user to move the content to a place that gives them the tools they need to grow their site. It’s a two-way stream and helps our hosting partners, our users, and hopefully lightens the workload on developers tasked with migrating sites.

The future path is something even simpler and friendlier. It would involve an interface allowing seamless transfer from one place to another with the option to select a host or something like Let’s see if we can come up with something.

The Jetpack

Screen Shot 2017-07-24 at 12.43.04 PM

Another major move to unify the WordPress experience has been through Jetpack. We have built a product that provides a bridge between the platform and self-hosted sites. The latest iterations involve an interface that matches up with’s and even encourages using to manage or create content. It also includes the ability to sign in to your self-hosted site with your login.  These features are pretty handy for those of you with multiple sites and even if you don’t, there are several pretty useful ones for any site.

Several of the features provided benefit developers, hosts, and the users. For example, there is a feature that serves your images from our servers (Photon). This lightens the load on hosts. It also serves the images at the proper size for the device it is loading on. This means it loads them extra crispy and detailed on devices with high resolutions. This makes the users happy since their photos will always look super sharp.

Screen Shot 2017-07-24 at 12.44.03 PM

Behind the scenes, there are all sorts of developer-y things baked into Jetpack that a developer can hook into to make the site hum exactly the way they want. For example, Photon has an API that lets them apply Instagram-like filters if they want. They could make all the images on the front page black and white or with a color tweak.

The ideal

Ideally, we want to build a system that doesn’t particularly care where the user starts or ends up as long as it gets the job done well. We want them to be able to create a site that has everything they need without going through too much trouble. If they need to move it, that’s fine.

We want to build paths to WordPress that benefit our hosts. Making the setup flows easier and the maintenance painless is super important. If we cut down the setup time dramatically, more people will successfully build sites and stay on their host.

And we want to benefit our WordPress experts and developers. You folks are the backbone of this ecosystem. We are working to provide pretty nifty tools and toys you need to do your work well. We’re going to continue to provide what we can to help you build really nifty sites. The less time you have to spend struggling through site migrations or restoring broken sites, the more time you can spend on the fun stuff.

The Next Level™ ideal

Even more ideally, we will build a system that works so well one could build their entire site right from our mobile apps without having to jump through too many hoops to get it set up.

And even more Next Level™… VR setup flows! How dang cool would that be? Rami Abraham made a pretty cool video of what that could be like somewhere on the internet. @ him for more info on it.

What do you think?

Got any ideas you’d like to try or see us try? Let’s continue to work together to make building the web pleasant and maybe even pretty fun (dream big, right?).

WordPress commit

This weekend, a whole new set of committers were announced at the first ever WordCamp US. I was among those #blessed with commit.

What the heck is commit?

For those of you who don’t hang around making Internet all day, commit is just a term for the ability to send code somewhere. In this case, it members of the WordPress community entrusted me with the ability to approve and send code to the nightly build of WordPress. Historically, there haven’t been many people with this access so it’s a pretty big honor and a sign of trust. I take it very seriously.

So here’s what happened…

Unlike Mel, I did not find out in a bar. I was on the way to the store to get some well-deserved drinks for one of the organizers when I got a ping from Nacin. It went something like this:

Screen Shot

This was great news already. When I originally created my account, my username was “Michael Arestad”… With the space. This meant that no one could mention me on any site. I was thrilled to finally have this fixed for me!

Then he followed up with something fairly ominous:

Screen Shot

Oh? There is? I was immediately pondering what that meant and trying to figure out scenarios where it would make sense to remove all spaces from names. Way off.

It turns out, the real reason for the name change was so I could become a committer.


The next few days were a bit of a blur partly because the conference was crazy, but that one completely unreal fact was bouncing around my head like Flubber™ wreaking all sorts of havoc.

Then Sunday happened. The new committers were tasked with committing something by the end of the day at the Contributor Day. This is when reality set in for us. I can tell you both Mel and I freaked out quite a bit even submitting a small change.

I have to say I am incredibly honored. I am one among very few designers who have commit. I plan to do my very best help guide the design of WordPress and maybe (if I’m lucky and have help) simplify some of those totes cray CSS selectors.

I was given commit with brilliant folks who I have the utmost respect for. Congrats to Mel Choyce (also a designer!!!), Rachel Baker, Joe Hoyle, Eric Lewis, Mike Schroder, and Pascal Birchler!

Fun fact

Mel Choyce was one of the first people I worked with in my initial attempt to contribute to core. It was on CEUX  (rest in peace) which was an effort to introduce content blocks into the editor. Content blocks bring people together.

WordPress Dark Admin concept

I spent a couple evenings a week or so working on an updated design for WordPress. I just wanted to see where I could go with it. There’s no current plan to implement it (other than maybe spinning up another MP6 and fiddling with things). It’s far from feature complete, but I think it’s at a good point to share and get some feedback.

The dashboard


The site activity head map is the headliner change here (other than, you know a bunch of other stuff). I think it’s time we did some encouragement right up front from the dashboard at a glance. If you look closely, you can see the dropdown that I was imagining would allow changing what information was presented on the heat map (comment activity, viewers, etc).

The top bar has been totally removed as a thing. You’ll see a bit more in the next screenshot. It’s still there in spirit, but no longer feels like yet another toolbar.

The Editor


I took some ideas from some of the work we’ve been doing on as well as some of the ideas I implemented in Press This V1. (still missing pieces like the kitchen sink) I’m not sold on the right column meta boxes yet and haven’t messed much with custom fields, but it’s a start.



I think it’s about time Settings got some major love.


I’d love to hear your thoughts and if you’re interested on jamming on something like this. Go!

Adios Vagrant, hello again MAMP (Pro)

I’ve been using VVV (Varying Vagrant Vagrants) for a bit over a year now with a few helper scripts for WordPress development primarily, but alas it’s time to end our relationship. The upkeep time isn’t worth it. It’s caused my computer to crash on a few occasions now. I’m not saying it’s bad by any means (it’s pretty dang awesome when it’s working), but it’s a bit more than I need with more moving pieces than I’d like.

Here’s a bit on my process moving from VVV to other stuff.
Read More