2013-10-18

Co.Labs

Why WordPress Gobbled Up This Scrappy iCloud Alternative

As blogging goes mobile, Automattic is investing in technology that ensures on-the-go content creation is lightning fast.



Matt Mullenweg thinks mobile blogging is too damn slow. It's not so much the clunky touchscreen input of devices like the iPhone and Nexus 4 that bothers the 29-year-old WordPress co-creator and founder of Automattic, the company that officially oversees the open source blogging platform. Rather, it's the dreadfully inefficient fashion in which content—all those posts, pages, and user comments—is synced up across devices. Earlier this year the company acquired a tiny startup to help solve this problem, and now the company finds itself competing squarely with Apple and Google.

You've probably never heard of Simperium. That is, unless you're a developer who's found yourself in need of a easy-to-implement content-syncing solution that isn't called iCloud. There's even a chance you've unknowingly used it. The most likely place would be Simplenote, the barebones note-taking app created by Fred Cheng and Mike Johnston in 2008. It was in the process of building Simplenote that Cheng and Johnston built a rudimentary content-syncing engine that eventually grew into something worthy of selling to other developers. They decided to call it Simperium. And it's the main reason Automattic bought out Cheng and Johnston in January.

"Part of the generalized problem that we were solving was taking your WordPress blog and synchronizing the content so you have it perhaps available offline, but I think most importantly available instantly," says Mullenweg. "On mobile phones people are especially sensitive to latency. We took a very thorough look at the marketplace and Simperium just stood out head and shoulders above everything else out there, as being a technology that we could really build on."

When you load up the backend of a WordPress-powered site from one of Automattic's tablet or smartphone apps, it's easy to take the experience for granted. As expected, you're shown a list of the most recent posts in the database. The problem is that to retrieve that content, the app is relying on technology that was designed over a decade ago when blogging was just coming into existence. The XML-RPC protocol is an excellent way to transfer data via HTTP on desktops over high-speed connections, but it wasn't built with today's smartphones and cellular data connections in mind.

"When we connect our mobile apps to your WordPress blog, what we do is make hundreds and hundreds of API calls over XML-RPC to get a very small subset of your content," explains Mullenweg. "It's very powerful. But it's not very succinct."

Simperium is different. In an app like Simplenote, the user might have thousands of notes synched across multiple devices. The synchronization engine skips the roundabout methodology behind something like XML-RPC and gets right to the point. All of those notes—however many there are—are synced instantly without an unnecessary number of API calls. Unlike XML-RPC, Simperium was built for a mobile world. That's why it caught the attention of Mullenweg, a longtime user of Simplenote. While he's hesitant to give a timeline on its implementation, it's very clear that Mullenweg plans to use this technology to power WordPress's cross-device content syncing as soon as is feasible.

Rather than acting as a database solution in and of itself, Simperium latches onto the local datastore at the heart of a given app and works its cloud-powered magic from there.

"With Simperium, all the data is based on JSON," says Cheng. "Whatever your CoreData structure is, it gets boiled down to a JSON object. Overall, how it works is: Apps have local data stores in JSON and then whenever the app changes anything, we'll send diff or a delta to a server and we kind of broadcast that back out to any other clients that are interested in that data."

So why not just use iCloud or Dropbox for this? Both of those solutions, Cheng and Johnston are quick to point out, lock developers and users into one company's way of doing things. For those who want to expand beyond iOS and launch an Android version—as Simplenote did just last month—iCloud is out of the question. Dropbox is more cross-platform-friendly, but it requires users to have a separate Dropbox account and limits what developers can do with the data.

"Our philosophy was to focus more on the tools developers are already using on each of the mobile devices and make it work well with those tools," says Johnston. "Then we can give them ownership over their users and their data so that they can run their service the way they want to."

The end result is something that functions a lot like iCloud or Dropbox, but that is completely cross-platform, white-labelled and increasingly, open source. This open ethos makes the platform that much more at home within Automattic, whose flagship product is as open source as it gets.

Simperium didn't start out as a service for developers. It was originally coded for Cheng and Johnston's internal purposes, simply because nothing like it existed at the time. "We built very naive syncing solution," explains Cheng. "Just the bare minimum. As we used it more and more and we saw different places where it could be improved. We kept adding features here and there to make it a little bit better, a little bit more reliable."

By 2010, Simperium had matured enough within Simplenote that Cheng and Johnston thought the technology could be of use to other developers. That year they joined Y Combinator and set out to build and market such a service.

One of Simperium's first customers was the developer of Happy Inspector, an iPad application for home inspection agents that needed its data synced seamlessly among multiple agents.

"In that case, they had an existing app with an existing data model—a fairly complicated relational data model that they had created on iOS using CoreData which is the database layer on iOS," says Cheng. "To get Simperium to work with that, they just had to create an account with Simperium.com, get some security credentials, add a few lines of code to their apps to initialize Simperium with those credentials and inform it and basically send the details of their relational model to Simperium. And thereafter, stuff starts to sync."

To Mullenweg and the Automattic team, keeping Simperium available to developers is just as important as using it to enhance WordPress and its mobile apps. Ultimately, the company strives to provide not just a content management system, but a growing amount of the fabric of the web itself. Just as Automattic products like Akismet and Gravatar are utilized well beyond the confines of WordPress, the company wants to power cross-platform content synchronization wherever it’s needed online.

“We try to invest in technologies that we think are intrinsically good, regardless of whether there's a short-term business model or whether it looks just like what we've done before,” says Mullenweg. “As we roll out the Simperium API and scale up that infrastructure for more and more of the Internet to use, I think that it will make the Internet a better place. Because it's just a more efficient approach to how to program these things. So if more people, including ourselves, use these approaches, the Internet will be faster and more pleasant to use.”

[Image: Flickr user Tom Thai]


Article Tags: icloudmobilewordpress





Add New Comment

1 Comments

  • LionelGeek

    Pretty interesting.... not only as a story in and of itself but also a good look into the iterative development process that happens over time.