The Fediverse
Email is not one company's product. Anybody can run a mail server, and a message from one reaches an address on another. The Fediverse is that idea applied to social media.
How it works
Servers talk to each other over ActivityPub, a W3C
standard. Your account lives on one server and is addressed the way an email
address is — @you@example.com — and somebody on a different
server can follow it, reply to it and share it without ever having an account
where you are.
Mechanically it is simpler than it sounds. When you post, your server builds a small JSON document and delivers it, signed, to the inbox of every server that has a follower of yours. There is no central index and no algorithm deciding who sees it: a post reaches the servers that asked for it, because somebody there pressed follow.
That has one consequence worth understanding early: nothing arrives before somebody asks for it. A brand-new server sees an empty timeline, not because it is broken, but because no one on it follows anyone yet. Search shows you what your server has been sent, not everything that exists.
Who is on it
The network is one network, but the software is not one program. Different projects serve different shapes of thing and interoperate:
Mastodon
Short posts and conversation. The largest implementation, and the one most other software is tested against.
Pixelfed
Photographs. A grid-first, image-first interface. GrainFed speaks its APIs and federates as it does.
PeerTube
Video, with peer-to-peer distribution so that a popular video does not bankrupt the person hosting it.
Lemmy, Bookwyrm, and more
Link aggregation, reading and reviewing books, blogging. Anything that speaks ActivityPub joins the same network.
A Mastodon user can follow a GrainFed photographer, comment on a PeerTube video and boost a Lemmy thread, all from one account. The interface differs; the network does not.
Why run your own server
- The rules are yours. Who may join, what is allowed, who you federate with, and what happens when somebody is a problem.
- Nobody can take it. An account on someone else's service exists at their discretion. A server you run does not.
- No feed algorithm. Timelines are chronological and contain what was actually sent to you.
- Leaving is possible. Accounts can move between servers and take their followers with them. That is a protocol feature, not a favour, and it is what keeps a server honest.
The cost is that you are now an administrator: someone has to apply updates, hold backups, and answer when a person cannot log in. A small server is not much work. It is not zero.
Where GrainFed fits
GrainFed is a server for the photography corner of that network. It speaks ActivityPub to everyone else, and the Pixelfed and Mastodon client APIs to apps, so existing mobile clients work against it.
Its own contribution is mostly operational rather than social: one binary instead of five processes, and the ability to see what the server is actually doing — every federation delivery keeps the peer's response, every email is logged with what the mail server said, and the status page checks each dependency by using it rather than by reading configuration. Those are the things that turn "it stopped appearing on Mastodon" from a mystery into a line you can read.