My Hope: A Windows Client for WordPress
In late October I purchased Microsoft's new Surface Book. When I tell you it's awesome, I'm not lying. It's absolutely fantastic.
Soon after that, I realized the one app that was missing – a simple way to author blog posts on Windows.
i want a desktop WordPress client for my Surface Book. perfect project for the JSON API.— Chris Lema (@chrislema) November 1, 2015
On Mac, I've been pretty darn happy with Desk—an app created by John Saddington. Though I'll be honest, more often than not, I write posts in the browser. I quickly received a lot of feedback from friends who were all considering creating a Windows client for WordPress.
Then I got a different tweet—a DM (private message)—from none other than the co-founder of the WordPress project, Matt Mullenweg. He had seen my tweet. His first question, “Do you want to beta test something?” His second question, “Do you run Jetpack?”
If you don't know what Jetpack is, it's a single plugin that Automattic has created to solve tons of different issues—from usability to feature distribution to revenue generation. It's powerful and helpful, and has gotten better every year since it's introduction.
So my answers were “yes” and “yes.”
This WordPress Desktop Client is called Calypso
What I didn't know, when I accepted the invitation to test the new Windows client, was that it was a project that was already 18 months old.
What I didn't know was that it was a new approach to WordPress development, focused on the latest technology stack.
What I didn't know was that Matt would announce it as Calypso less than a month later.
What I also didn't know, and the only sad part of the whole thing, was that the Windows version wouldn't be finished at the same time as the Mac version.
So I'm still beta testing.
Or, while I'm hitting the sad parts, that it would be a bit longer to wait for offline writing.
Lessons in Innovation
What I love most about the whole project are the lessons it has for everyone regarding innovation.
When it comes to innovation, guiding principles are critical.
One of the things people have been talking about, for a couple of years now, has been the REST API that would allow developers to interact with the WordPress application directly on the server. The idea to create the new WordPress.com and the desktop application (Calypso) as a client of WordPress is one of those guiding principles.
When you're in the middle of a project, when you get stuck, when you're close but nothing is finished, it's easy to want to just take the shortcut that gets the project done and out into the world. But your guiding principles focus you on all the things to say “no” to.
So the team behind this project had to make tons of decisions – from frameworks to libraries to approaches and more. And the guiding principle to make it a client using the API means it becomes, now, one of the most robust models of building an API-based application.
When it comes to innovation, making decisions is more critical than constantly evaluating them.
Let me explain what I mean.
I don't know the details of how all the decisions were evaluated, but what I can tell you is that I regularly see people postpone a decision simply because they don't want to get it wrong. And as a result, they make no decision.
Innovation requires decisions. Even if you might come back later and have to change it. In this case, they didn't. Likely, and this is a guess on my part, because instead of being frustrated with something that didn't work, they got involved in the React community and offered suggestions.
When it comes to technology innovation, more eyeballs looking at code is better than fewer.
We all know what happens if you put too many cooks in the kitchen. But in the case of writing code, more people looking over the code is better than fewer people. Because we all have blind spots. So getting someone else to look over what you've done will help you write better code because it will expose those blind spots. And it may even teach you new tricks. Or present you with previously unconsidered scenarios.
Either way, when it comes to Calypso, the team open-sourced the project. You can find it on Github right now. Tons of commits to the code this month with more than 100 contributors.
Calypso is beta, but it's open-source
The good news is that Calypso is open source. That means you can check out the code. You can review it and learn from it. And you can use it as a way to think about other applications you might build.
I've been using a beta version for a few weeks. My general take is that it's:
- Fast (really fast!)
- Well-integrated with Jetpack
- A great and clean reader
- A fantastic model for other apps
What it's not (yet):
- Offline ready
- Production ready
But maybe you want to help with that? That's the benefit of being open source.
Check it out in my pictures below.