I first mentioned in Better Social Media? that I heard a talk by Ed Platt that got me started on the new kind of social media. Well, Ed was one of the panelists at Penguicon 2019 on a panel about The Fediverse which helped me to bring this into a better focus. Also on the panel were Michael W. Lucas, the writer on BSD and security topics (among other things), Matt Arnold, Craig Maloney, and Mark Felder. Fediverse is a portmanteau word from “Federation” and “Universe”, and many of the applications I have discussed are part of this Fediverse. But there are more things linking them together, such as a reliance on shared protocols. This should not be too surprising since these applications are generally Open Source, and that community tends to resist reinventing the wheel. (This is a tendency, not an absolute rule, as the proliferation of licenses would indicate.) And an exciting development is the adoption of an intercommunication protocol, ActivityPub, which will not only facilitate communication within any application, but should allow different applications to communicate with other. This means that the network is made up of all the applications using this common protocol. And that means you should be able to participate through any application. Unlike proprietary platforms that try to keep you in their walled garden (e.g. Facebook, Twitter), the various components of The Fediverse want to support your freedom.
This is not yet the Promised Land. The big issue continues to be that only a small fraction of social media users have discovered The Fediverse, and seeing your niece’s baby pictures will not happen here in most cases, at least not yet. But ActivityPub is a W3C recommended protocol that aims, in the words of Mozilla Fellow Darius Kazemi:
“You might remember the heyday of RSS, when a user could subscribe to almost any content feed in the world from any number of independently developed feed readers. ActivityPub aims to do for social network interactions what RSS did for content.”
I think that is a great way to think about what the Fediverse developers are trying to do. I subscribe to a lot of blogs through RSS, and I also subscribe to a lot podcasts that way. (In fact, when I find a podcast that does not offer an RSS feed, I will first politely inquire, and if I don’t get a positive response I move on.) And it works great! I can use any software I like to read the blogs, and a different app to download my podcasts, and because of the protocol none of that matters other than how well I like using the application. The people creating the content make it available on a standard protocol, I grab it using that same protocol, and it is pretty smooth. As a contrast, if I am using Twitter I have to do it the Twitter way, and if I use Facebook I have to do it the Facebook way, and they don’t talk to each other. And having just recently gone through the shutdown of Google+, I can appreciate the openness of the platform. As the Mastodon Blog says:
“And that’s the strength of using open web protocols. When you decide to switch to Mastodon, you’re not just gambling on the success of one project. You can be certain that regardless what happens with Mastodon, the network will live on and flourish. Newer and better software will be born within this ecosystem, but you will never have to drag all your friends and followers someplace else again–they’ll already be where they need to be.
If Twitter shuts down, you’ll lose your followers. If Facebook shuts down, you’ll lose your friends. For some platforms, it’s not a question of “if”, but “when”. Such events are usually followed by a scrambling into a variety of different platforms, where you inevitably lose some people as you have to make a choice which one to stay on. This happened before. But it doesn’t have to happen again. Use the federated web. Join Mastodon.”
This is exciting stuff for someone who has been a promoter of software freedom, so as I continue my explorations I think I will be keeping an eye on The Fediverse. On the other hand, some pretty big players like Diaspora and GNU Media Goblin are not yet supporting this protocol. Diaspora may not for the foreseeable future. Why? Well it is the usual story about Open Source projects. They would need someone to take charge of it, and they are happy with what they have now and don’t see it as a big issue that needs addressing. In other words, they haven’t found someone who regards this as an itch that needs scratching. GNU MediaGoblin, on the other hand, may do so more quickly. The documentation site for GNU MediaGoblin, which says it was created in March 2018 (so it is not necessarily fully current) says that it does not yet have full federation, but is implementing the Pump.io API, which is federated. Christopher Lemmer Webber, whom I follow on Mastodon, was both one of the co-founders of the GNU MediaGoblin project and co-editor of the ActivityPub federated social networking standard, so I am hopeful here. Also, another of the co-founders is my friend Deb Nicholson, whom I snagged as a Tech Guest of Honor for Penguicon a few years back. I am generally hopeful when good people are involved.
It is not all unicorns and rainbows, however. Federation puts every server in the hands of an administrator with no central authority regulating anything, and this can have undesired (depending on your point of view) results. For example, in 2014 Islamic State set up accounts on Diaspora* to distribute their posts when Twitter shut them down. Twitter being a single source company could do that, but Diaspora* has no single owner by design. As the Diaspora* team posted on their blog:
“The decentralized nature of the network and the FOSS philosophy of the project are two of the key strengths of diaspora*. However, they can make it more difficult to act swiftly when there is inappropriate activity on the network. Each pod administrator has final say over the content hosted on their pod, and we, and our entire community of members, work to help our podmins to keep the network healthy and growing.”
In this case most of the larger Diaspora* pods removed the IS-related accounts and posts, and as we discussed previously that is something that federated servers can do which I think is a strength. If you think certain posts or accounts should not appear, you are free to find (or set up) a server that follows the rules you want. And if you think all accounts and posts should be allowed you just need to find or set up a server that operates in a maximum freedom of speech manner. In this way, federation gives maximum control to users rather than to a corporate owner.
The other major benefit is the way applications can interact. Jeremy Dormitzer explained it this way:
“It’s a language that any application can implement. For example, there’s a YouTube clone called PeerTube that also implements ActivityPub. Because it speaks the same language as Mastodon, a Mastodon user can follow a PeerTube user. If the PeerTube user posts a new video, it will show up in the Mastodon user’s feed. The Mastodon user can comment on the PeerTube video directly from Mastodon. Think about that for a second. Any app that implements ActivityPub becomes part of a massive social network, one that conserves user choice and tears down walled gardens. Imagine if you could log into Facebook and see posts from your friends on Instagram and Twitter, without needing an Instagram or Twitter account.”
No, that is not a typo. Emojos are a kind of open, federated emoji. You are probably used to using emoji in various applications that support them, but each app has its own set of emojis, which you may or may not find as useful as you would like. And it should come as no surprise that a bunch freedom-loving open source federated media people decided to fix that. Emojos can be used across all federated applications but they need to reside on the server you are using. As an example, on Mastodon there is a directory at https://emojos.in/, where you can put in a domain name and see what emojos are available on that server. If there are other emojo you would like to use, you just ask the administrator of your server to add them, and most likely that will happen. But remember what Michael Lucas says about taking good care of your admin! Ask nicely, and buy him or her a beer when you get a chance. I checked mine, and the emojos are covered by an AGPL V.3 license, and there is a link to download any source code. To use one, just click on the emojo, and it is automatically copied to the clipboard. You can then paste it into any message. Because it lives on the server, you can only use it on messages created on that server, but you can ask to add any you need for other applications.
Some Fediverse Protocols
- ActivityPub – “ActivityPub is an open, decentralized social networking protocol based on Pump.io‘s ActivityPump protocol. It provides a client/server API for creating, updating and deleting content, as well as a federated server-to-server API for delivering notifications and content.” – https://en.wikipedia.org/wiki/ActivityPub
- Diaspora Network – “Diaspora (stylized as diaspora*) is a nonprofit, user-owned, distributed social network. It consists of a group of independently owned nodes (called pods) which interoperate to form the network. The social network is not owned by any one person or entity, keeping it from being subject to corporate take-overs or advertising. According to its developer, “our distributed design means no big corporation will ever control Diaspora.” – https://en.wikipedia.org/wiki/Diaspora_(social_network)
- OStatus – “OStatus is an open standard for federated microblogging, allowing users on one website to send and receive status updates with users on another website. The standard describes how a suite of open protocols, including Atom, Activity Streams, WebSub, Salmon, and WebFinger, can be used together, which enables different microblogging server implementations to route status updates between their users back-and-forth, in near real-time.” – https://en.wikipedia.org/wiki/OStatus
- XMPP – “Extensible Messaging and Presence Protocol (XMPP) is a communication protocol for message-oriented middleware based on XML (Extensible Markup Language). It enables the near-real-time exchange of structured yet extensible data between any two or more network entities. Originally named Jabber, the protocol was developed by the eponymous open-source community in 1999 for near real-time instant messaging (IM), presence information, and contact list maintenance. Designed to be extensible, the protocol has been used also for publish-subscribe systems, signalling for VoIP, video, file transfer, gaming, the Internet of Things (IoT) applications such as the smart grid, and social networking services.” – https://en.wikipedia.org/wiki/XMPP
There are some others, but they don’t seem to be as widespread right now
Some Major Fediverse Applications
If you are interested in looking at some additional Fediverse platforms, there is a good list at the Wikipedia site, which I will not copy here but will link to. But here are some of the major ones:
- Diaspora* – This is federated, it just is not using the ActivityPub standard, and may not do it at all, certainly not soon.
- Friendica – Supports ActivityPub, Diaspora Network, and OStatus
- GNU MediaGoblin – ActivityPub has been proposed
- GNU Social – Formerly StatusNet, ActivityPub has been proposed
- Mastodon – Dropped OStatus to focus on ActivityPub
- NextCloud – When OpenCloud became too corporate, this forked and it now uses ActivityPub
- PeerTube – YouTube replacement, uses ActivityPub
- PixelFed – Photo sharing, uses ActivityPub
I have already given some coverage to Mastodon and Diaspora*, but I expect to look at a few of these over the next year.
Listen to the audio version of this post on Hacker Public Radio!