Ivory and Micro.blog, not yet

This is going to be the most frequent of frequently asked questions. If Micro.blog supports the fediverse, why doesn’t the new Tapbots app Ivory work with Micro.blog?

ActivityPub is a mostly server-to-server API that both Micro.blog and Mastodon support. This allows people on Mastodon to follow people on Micro.blog. When you post to your blog, the post is sent out to Mastodon folks, and they can reply and join conversations on Micro.blog all from within Mastodon. Likewise, on Micro.blog you can follow Mastodon accounts and reply to posts without needing an actual Mastodon account yourself.

For client apps like Ivory, Mastodon has its own API. It’s a completely different thing than ActivityPub, closer to the Twitter API. It’s not an open standard and Micro.blog does not support it.

Could Micro.blog implement the Mastodon API, thereby allowing Ivory to connect to Micro.blog as if it was a Mastodon server? Technically yes, but doing so would introduce a couple problems. By design, Micro.blog does not have exactly the same features as Mastodon. We left out boosts, trends, and follower counts, and added other things that are outside the scope of Mastodon.

If Micro.blog worked with Ivory, what would the UI look like when the features didn’t exactly match up? It would be confusing. Ivory would appear broken and it would disrupt the experience we’re going for with Micro.blog’s community.

As Mastodon becomes more popular, it’s important that Micro.blog stays true to its blogging roots and unique take on social media, rather than shifting to be a Twitter or Mastodon clone. We don’t need a monoculture with all apps looking exactly the same.

Micro.blog already supports multiple APIs for posting from client apps, including Micropub (which most IndieWeb apps use) and XML-RPC (which MarsEdit uses). I’m happy to add additional posting APIs like Mastodon’s, but only when we can make it fit well.

There are some obvious next steps.

I’d like to experiment with extending Mastodon’s /api/v2/instance endpoint to return Micro.blog-specific feature info. That way, clients like Ivory could in theory adapt their UI to fit the server capabilities. For example, if there are no boosts, hide the boost button. There is already precedence for this with Mastodon’s character limit and other common settings.

I’m also keeping an eye on Ice Cubes, which is open source. This app seems like a great playground to try out new features that work with Micro.blog. When those changes are prototyped, it will be easier to pitch Tapbots and other developers on supporting them.

It’s still early days in the post-Twitter world. I’m excited about what we have planned for this year. We’ll keep improving our compatibility with Mastodon and see what comes of it.

Manton Reece @manton