Federation
Compatibility
What works when Omicron meets Mastodon and other ActivityPub software, and where the edges are.
Omicron speaks standard ActivityPub through Fedify, so the common interactions work with any conformant server. The differences that matter are about content shape, not protocol.
The shape mismatch
Omicron publishes articles: a title, a cover image, and long formatted body text. Microblogging software is built around short notes.
| Software | What your readers there see |
|---|---|
| Mastodon | The post as a status with its title and a link back to your instance; long bodies are truncated in the timeline |
| Other Omicron instances | The full article, rendered natively |
| Read-it-later and RSS clients | Whatever your feed and OpenGraph metadata provide |
This is inherent to the network, not a defect: a 2,000-word essay cannot render natively in a client designed for 500-character posts.
What works across the network
- Follow / Undo Follow — in both directions.
- Like and Announce (boost) — counted in your dashboard.
- Replies — federated replies land alongside local comments.
- Delete — honoured by well-behaved servers.
- Profile discovery — WebFinger resolves your handle from anywhere.
- Link previews — the actor document carries Mastodon’s
attributionDomains, so shared articles render an author byline on the card.
Where the edges are
- No retroactive backfill. A new follower gets what you publish afterwards. Some software fetches your outbox to fill history; some does not.
- Formatting is renegotiated by the receiver. Each server sanitises HTML to its own allowlist. Complex layouts, tables, and embeds may be stripped in transit.
- Edits propagate unevenly. Not every implementation handles updates the same way, so an edited post may still show its original text somewhere.
- Polls, custom emoji, and other extensions are not part of Omicron’s publishing model.
Testing interoperability
The honest test is an account on another server:
- Search for
@you@your-domainfrom a Mastodon account and follow it. - Confirm the follow is accepted (it should be, immediately, unless you require approval).
- Publish a post and confirm it arrives.
- Like and reply from there, and confirm both appear on your side.
- Delete the post and confirm it disappears there.
By hand:
curl "https://your-domain/.well-known/webfinger?resource=acct:you@your-domain"
curl -H "Accept: application/activity+json" https://your-domain/users/you
When something does not federate
Work through, in order:
- Is federation actually on?
curl localhost:8000/version→"federation": true. - Does
https://your-domain/.well-known/nodeinforeturn JSON from outside your network? - Do the URIs in the actor document use
https://and your real domain? - Has the remote instance defederated your domain?
- Are there delivery errors in
docker compose logs backend?
More in Troubleshooting.
Found a mistake?Edit this page on GitHub.