Loosely Joined

I had to chuckle recently when I realized just how complex some of the systems in my life are, even if I rarely think about the details.

  1. Most nights, I weigh myself on a Withings wifi scale (an older version).
  2. That data syncs over Google Wifi, via a Comcast Xfinity connection, to the Nokia/Withings Health Mate service.
  3. Then MyFitnessPal automatically syncs the data from Health Mate, and keeps a copy,
  4. before Garmin Connect also syncs a copy to integrate back with other data (like heart rate and activities) .
  5. If I’ve been doing specific activities, then some of the data from Garmin Connect (although not that weight info) will also sync out to Strava and create activity records.

The last step remaining is that I want to hook up my copy of WordPress to sync all of the data back so that I have a copy under my direct control.

Keyring v1.9

I just released version 1.9 of the Keyring plugin for WordPress.

Keyring v1.9

This version includes a few pretty cool updates and additions, as described in the changelog:

  • Added a Google Analytics Service definition.
  • Added a Strava Service definition.
  • Added a “Settings” link to the plugin listing if you’re using the bundled Admin UI.
  • Fitbit tokens now refresh properly.
  • Tumblr now requires HTTPS, so updated all request URLs to use HTTPS.

My favorite part of this release is that I didn’t personally do most of the things in there. Two of my colleagues did some of it (Strava service and Tumblr fixes), while a generous and otherwise unknown contributor on Github added the Google Analytics service.

This is open source, working!

All New WordPress.com

Almost 2 years ago, I wrote about how the future of WordPress needed to be a REST-based API, with a JavaScript client on top of that. There were even public rumors that, gasp, we were thinking about porting WordPress to Node.js. Well, while that’s not exactly true, it’s closer to the truth than a lot of people probably realized.

We are in fact using Node.js to power part of WordPress.com now. If you go to https://wordpress.com while logged in, your request is handled by a Node.js server, and the entire UI is written in JavaScript, although the majority of it is actually React.js. Unless you end up back in wp-admin, your admin/editing/posting/dashboard experience on WordPress.com is now handled entirely (well, almost; we’re still working on some pieces still) with JavaScript.

The UI is fully responsive (optimized for multiple screensizes, and flexible in between). Data updates are live (combination of polling and websockets, moving more to sockets over time). No full-page refreshes (it’s a single-page app). All API-driven (which means we can, and are, using the same APIs to power portions of the native mobile apps). Speaking of apps, we’re able to bundle our single-page, JavaScript application as a native app, so we did (OSX for now, Linux and Windows coming very soon). Leveraging our infrastructure, and the power of Jetpack, we can provide self-hosted users with the same experience as those we host directly (with more Jetpack-specific functionality coming soon as well).

This is a lot of change. But it goes deeper than just the entire technology stack we’re working on now. This was a complete culture-shift for Automattic, a now-400-person company traditionally made up of approximately 100% PHP developers. To get here, we at Automattic took a step back and asked ourselves;

What would WordPress.com look like if we were to start building it today?

As part of answering that question, we made a lot of changes internally:

  • Cross-trained all of our PHP developers (and some of our mobile developers!) into modern, performant JavaScript developers.
  • Switched to a completely GitHub-based workflow.
  • Every commit is now peer-reviewed.
  • Shifted to a very component-minded architecture.
  • Moved our WordPress codebase to be entirely API-driven. New features are now only launched as a new/modified API endpoint + data layer + UI layer.
  • Change in thinking from being very “plugin-oriented” (similar to WP-core) to a much more integrated and cohesive way of thinking of things across the web and mobile apps.

So today, in keeping with the DNA of Automattic, which shares the DNA of WordPress, we’re releasing what we’ve been working on as open source. It’s code-named “Calypso” (long story), and we’re extremely proud of what we’ve built over the last ~18 months. I truly hope that this can help guide or influence WordPress.org‘s future.

I wrote this post in the Calypso/WordPress.com Desktop app, and published it via Jetpack. That feels pretty darned good.