29 Jun 2017

trysdyn: (Default)
I've been doing experiments into Mastodon and GNU Social for about two months now, with my own GS instance running for about two weeks. In that time I've become pretty familiar with the OStatus protocol that powers both, the differences between the two, how they inter-operate, and the political issues that both led to the division, and continue to spark contention between the loyalists to the two. Sadly, I made the decision today to close my GNU Social node and instead do my microblogging on a Mastodon server a friend owns. I think it important to share why for people confused about the state of the "Fediverse" in the future.

A bunch of history )

What does this mean for a user/admin?

This is the important part. If you're thinking of either hosting or using an OStatus-powered service and federating, there's some decisions to make that aren't as obvious as technology choice. Also some things to be aware of:

First, whether you use GNU Social or Mastodon, some instances will refuse to federate with you. You won't be able to interact with people on those instances. The reasons for this are wide and varied and I don't feel this is the place to discuss their merit. Just be aware that's a thing. With the boiling political climate and coming changes in Mastodon 1.5, I expect this divide will only grow. If you absolutely have to reach someone on an instance that refuses to federate with Mastodon, you'll have to use GNU Social and vice versa.

Second, if you choose to host or use a GNU Social instance, you will already be missing several features that let you see the posts from Mastodon users as they were intended to be seen. Due to this missing context, you may chime into threads you're not supposed to, see images that you may not want to because their content warnings have been stripped, and miss parts of messages because they were part of OStatus tags GNU Social just ignores. This feature gap will, again, only grow with time.

Third, by the same token, Mastodon users should be painfully aware that the privacy features are merely suggestions. Not only will a GNU Social instance ignore them and blissfully blat your followers-only posts into the public timeline where they're world-readable but at this point it's trivial to mod a Mastodon server to also ignore privacy controls. You should carefully vet people who follow you before making a followers-only or unlisted post because once someone follows you from either a GNU Social, or bad-acting Mastodon instance, your posts may become world-readable via that instance.

Fourth, as an extension of the above but deserve of its own point. If you use a GNU Social node to follow a Mastodon user, you will be implicitly violating their expectation of privacy due to how GNU Social handles (or rather mishandles) follower-only posts. That should weigh on your conscience a bit.

Finally, no matter which software you use, enforcing Mastodon's privacy model will require sending fewer messages to GNU Social nodes. This means just by merit of using GNU Social you may start being forced out of certain threads and conversations or certain message types. This is a guess and only time will tell. 1.5 will bring the start of this and we can see where it goes from there.

As for my experience with GNU Social...

I'll be honest. I prefer GNU Social's default UI over Mastodon's Tweetdeck clone. I like that GNU Social is simple scripts while Mastodon is either a Docker container or a huge Rails and Node.js stack. I like GNU Social's admin tools and its simplicity stays out of my way. GNU Social better exposes groups as a feature while Mastodon hides them. In almost every way I prefer GNU Social, and yet I'm closing my node and moving to Mastodon. Why?

Looking at the list of people I either follow or want to follow, they all use a Mastodon instance. Every single one. This means a few things for me. First, that they have an expectation that private posts will be private, and by receiving them I'm violating that expectation because of GNU Social dishonoring privacy tags. Second, some of those people are on instances that don't federate with GNU Social or are considering ceasing federating with GNU Social; simple enough. Third, I'm incapable of posting content warnings from GNU Social while my peers expect it-- so I'm just unable to post certain content. Fourth, the GNU Project's mission is fundamentally incompatible with what I want from a social service and, while I can work around that, do I really want to support them implicitly? Finally, no matter how I feel about Mastodon's execution on implementing the OStatus extensions, they are a net positive for the health and usability of the fediverse and by merit of that I am obligated to support that endeavor.

So while I like GNU Social, to continue to socialize with the people I came here to socialize with, and to support the people I feel are actually working in benefit of my peers and friends, I should move to the Mastodon side of things before the inevitable split happens.

What would I like to see happen? I'd like to see Mastodon just fork OStatus, drop compatibility, and implement all the things the devs want to implement. At this point GNU Social users are in the minority; I feel Mastodon would survive if they did this. This would address the criticism that Mastodon showed up to an established party and tried to change the rules on its own, and would free the devs to do what they want without the shackles of backward compatibility.

We'll see what happens I guess.