As the on again off again acquisition of Twitter went on again, focus turned back to mastodon, a federated alternative. As another wave of users dip their toes in the waters, I wanted to share some thoughts.
The fediverse is predicated on replacing a single site having one set of policies with a network of sites.This is both technically resilient and resistant to the whims of a single owner. There are, however, different ways to realize this concept.
The web interface of mastodon includes a local timeline, A separate local timeline makes sense when each instance is a distinct community. Initially, standing up and administering a server was not for everyone. Mastodon was designed with an administrator role and those administrators are empowered to set policies on their instances. The model here is a collection of “small towns” each with its own culture.
But then something happened — mastodon became popular and more accessible server models became available, including pre- configured VPS’s and hosted options. This opened a new use case, that of the single user instance. Here, the local timeline becomes unimportant. This is more like Twitter, which doesn’t have such a thing. The official iOS Mastodon client has gone as far as not even showing the local timeline. We have an interesting scenario in which not only policies and standards but also what it means to moderate vary from instance to instance.
Mastodon and protocols
Mastodon runs on ActivityPub, the under the hood protocol that allows instances to communicate with each other. It also supports publishing RSS and Atom feeds. There are other applications that support ActivityPub. For example, A WordPress site can, with the right plugin, publish an Activitypub stream. This allows a mastodon user to follow that site as if it were a mastodon user.
However, that WordPress plugin generates ActivityPub but doesn’t parse it, meaning if you reply in Mastodon, nobody will see it. You end up with different apps using the same protocol to different ends. Combine this with RSS support and you need to think about your data flows.
Update: Because of incompatibilities with other plugins, I did not test this on my own site. The WordPress site I followed to test was using a custom configuration that I mistook for a default setting.