Since the release of Calypso, I’ve been thinking about writing a blog post dealing with the future of WordPress and the Rest API.Is Calypso the herald of a coming WordPress apocalypse, or the long awaited saviour that will bring WordPress into the shining age of apps? I know that everyone seems to be writing about it, but hopefully I’ll have something helpful to add to the conversation. 🙂
The headless WordPress horseman
The introduction of Calypso shows how powerful the Rest API really is; WordPress.com is no longer using WordPress’ admin interface. Let that sink in. WordPress.com, which is used as an example of how awesome WordPress is, no longer uses the WordPress admin. How long will it be before big players in the WordPress space create their own bespoke admin interfaces? GoDaddy’s managed WordPress hosting, for example, might create a custom admin UI that positioned them better to compete against the Squarespaces and Weeblys. It is indeed a brave new world.
Of course, if everyone and their brother has a custom admin, would that dilute the WordPress brand? At that point does WordPress become a “server thing” that end-users don’t care about? I’ve heard of users asking developers if they could use WordPress for their project. How many clients come to you and ask if you could use MySQL to store data? If every admin looks different, would anyone care about it being powered by WordPress? Heck, if we’re simply using WordPress as a headless CMS, why wouldn’t we consider using something a little leaner? There are lots of options for creating a database interaction layer, and installing all of WordPress to get that seems like it could be overkill.
Scott Bolinger wrote a great post about where WordPress might be headed; he envisions a future version of WordPress being 100% JS, making the point that plugins would be the largest hurdle in moving WordPress over to something like Node. While I don’t disagree that plugins would be extremely difficult to deal with, I think that a larger problem would be the development community around WordPress. Does the core contributor team have enough expertise to create a completely move WordPress to JS? I don’t mean to question anyone’s ability, and I readily admit that I don’t have any numbers to back this up, but I’d assume that most of the core team is made up of PHP developers.
I think that extends beyond core contributors to plugin and theme authors as well. It seems like a wholesale move would be the equivalent of saying, “we’re jumping the PHP ship; either learn JS or find another project.” A WordPress built on Node has a significantly different developer community than the community that currently exists around WordPress. That’s not to say that there aren’t contributors that have a deep understanding of Node, JS, etc., but the shift would mean that the community would have to shift as well. PHP developers who had contributed in the past might find that they aren’t able. I’m not saying that this is a reason not to explore a JS code-base, but it would have the knock-on effect of changing the community.
As I said above, because custom admin interfaces will be easier to create, I think we’ll see more of them. I don’t think, though, that WordPress will ever escape the gravity of PHP. It’s too entrenched. To mix my metaphors, the tendrils of PHP reach deep into the core of WordPress, and I don’t believe that it would be worth the effort to hack them all away. Any plugin or theme that modifies or does anything within the admin would need to change. The Rest API will allow you to use WordPress as a headless CMS, but moving all of WordPress over to Node (or something similar) would be a monumental undertaking. And, I’d argue, the benefits would be outweighed by the sheer amount of energy necessary.
Just as a thought exercise, let’s assume that we, the WordPress community, were able to achieve this Herculean task. WordPress is now completely powered by NodeJS on the server-side and has a fully JS UI/front-end. Would we still be using WordPress? This is a bit philosophical, but if we’ve stripped away all the code that has accumulated over the past decade or so, is it still the same project? If GoDaddy is using a custom UI to communicate with a Node version of a headless CMS, what part of that is WordPress?
At the end of the day, I don’t think that Calypso or the Rest API spells either the end of WordPress or the emergence of a WordPress golden age of app development. As with most things, the truth probably lies somewhere in-between. The Rest API will surely propel WordPress further into the world of apps and remotely accessible data, and Calypso is a great example of how both can be done successfully. I’d be very surprised if the WordPress.org default admin ever moved over to a completely JS-driven UI. Areas are certainly becoming more JS-intensive, but I don’t think that the entire admin will become a JS app. We’ll also probably see more headless CMS implementations and custom admin interfaces, and while there are a ton of slippery-slope arguments out there, I don’t think that WordPress will ever shift over to server-sided JS.