Toward a common posting API

Dave Winer blogs about interoperability for Twitter-like systems:

We had that for the blogging layer of this onion, something called the MetaWeblog API. All the popular blogging software supported it. And that meant you could write once and publish to many places.

I’ve been trying to get people in the fediverse to think about this. The other day at FediForum, there was a good discussion about it.

Here’s the current state of things:

  • Micro.blog and WordPress support the MetaWeblog API that Dave mentions, but almost no one is building XML-based clients anymore. It also has never been adapted for more modern sign-in with OAuth.
  • Micro.blog also supports the Micropub API, which is a simple posting API. It is comparable to MetaWeblog, but without the XML. There’s a plugin for WordPress and good support in most apps from the IndieWeb community. It is a W3C recommendation.
  • ActivityPub has the client-to-server API, known informally as C2S. Very few apps support it, not even Mastodon. It also feels sort of abstract and is missing a couple things that could be added as Fediverse Enhancement Requests.
  • Popular fediverse clients like Ivory and Ice Cubes support the Mastodon API. It is specific to Mastodon, though, and there is disagreement about how or whether it should be adapted to other platforms.
  • Threads, Tumblr, and Ghost have their own proprietary posting APIs. These are all dead-ends for interoperability.

In the fediverse community, there is a natural inclination toward ActivityPub because why not have a single specification that can handle both server-to-server federation and client-to-server posting? But in practice, federation and posting are actually different tasks. They don’t need to be wrapped together.

With Micropub, the IndieWeb focuses on the social timeline aspects in a separate specification, Microsub. If you want to replace the Mastodon API, using both Micropub and Microsub is a good way to go. They are complementary. Micropub handles creating new posts and managing posts, and Microsub handles browsing the timeline.

So where does this leave us? I’ll admit I’m a little conflicted. Mostly because the fediverse developer community has grown quite large, and I don’t relish trying to convince anyone of anything. 🙂 But looking at all the possible ways forward with the above standards, there is really only one complete solution that is ready to go today, and that has been implemented for years across multiple blogging platforms: Micropub + Microsub.

Manton Reece @manton