Self-hosted · federated · open source
Photo sharing for your community, on the open social web.
GrainFed is a photo-sharing platform you run yourself. Your members post photos and albums, tell stories, build collections and talk to each other — and anyone on Mastodon, Pixelfed or the rest of the Fediverse can follow them. You get the moderation and admin tools to run it well.


Everything a photo community needs
Photos and albums
Post one picture or a set, with captions, hashtags, mentions and alt text for the people who need it.
Stories
Short-lived photos that disappear on their own, with a tray of who has one at the top of the feed. Switch them on per instance.
Collections
Group posts into named collections on a profile, and add to or remove from them whenever you like.
Direct messages
Private conversations between members, and with people on other servers.
Discovery
Search people, hashtags and posts. Local and home timelines in time order, with no algorithm deciding what you see.
Profiles and portfolios
A grid profile, a portfolio page and an Atom feed of your posts for anyone who wants to follow without an account.
A feed about the pictures
Photos come first. Your home feed is the people you follow, newest first. Like, comment, boost to your followers, or bookmark for later.
- iPhone photos (HEIC) and modern formats (AVIF, WebP) upload and just work
- Works in any browser, and every screen also renders without JavaScript
- The same interface, sized for a phone, in the same page


Conversation, near and far
Comments and replies thread properly, and notifications tell you who liked, boosted, mentioned or followed you — whichever server they are on.
- Follow, and be followed by, people on Mastodon, Pixelfed and any other ActivityPub server
- Mentions and replies reach them; their replies reach you
- Quote posts only with the quoted person's consent
Safe by design, private by choice
Every member decides who can see, find and contact them, and every server decides what it will host.
- Private accounts that approve followers; opt out of search engines and of being indexed elsewhere
- Block accounts, whole servers or keywords; mute; filters; parental controls
- Two-factor sign-in, a data export, and moving your account to another server
- Captcha, a sign-up honeypot, a minimum age and curated applications to keep spam out

Run it like you mean it
The admin panel is built for the person who is on the hook when something goes wrong. What needs attention is the first thing you see, and nothing on it is guessed.




Who joins
Open sign-up, curated applications you approve or decline with a message, invites, starter packs for newcomers, captcha, and a minimum age.
Who you federate with
Instance blocks and limits, relays for hashtags and servers, shared block lists, and a record of every delivery and the answer it got.
Whether mail works
Every email the instance tries to send is logged with what the mail server said, and one button sends a test to yourself.
How it performs
Expensive public counts are cached for a time you choose, and a reversible optimiser finds the indexes your data wants.
Works with the apps people already use
GrainFed speaks Pixelfed's own API and the Mastodon API, so the official Pixelfed apps and the many Mastodon-compatible clients work against it without changes. That is 301 routes that are a hard external contract — the APIs, federation, the admin panel and the public pages — and all of them are served.

Pixelfed-compatible, and it keeps up
GrainFed targets Pixelfed 0.14.4 and follows each release: its sign-in flow, direct messages, captcha and new federation standards are all here. If you already run Pixelfed you can switch to GrainFed on the same database without your members noticing, and switch back.
And under the hood
Start a photo community of your own
Install it on a small server, or move an existing Pixelfed over without touching the database.