GrainFed

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 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.

Find a server Run your own