Bridgy Fed is a bridge across decentralized social network protocols. It tries to translate between protocols fully bidirectionally, as completely and with as high fidelity as possible. It uses granary to translate between different protocols' data formats.
Bridgy Fed currently supports the IndieWeb, the Fediverse, and Bluesky. Nostr and Farcaster are on the roadmap for the future.
This document describes, at a high level, how Bridgy Fed supports and translates between the different protocols it suports. It's based on FEP-67ff.
Bridgy Fed's documentation describes much of its details. Here are some relevant sections:
- How does this handle behavior differences between networks?
- How does this handle formatting differences between networks?
- How do the different protocols compare?
- How are the different protocols translated?
- How are activities routed?
- What are Bridgy Fed's product and engineering values?
- IndieWeb
- Atom, RSS
- Fediverse
- ActivityPub (Server-to-Server)
- WebFinger
- HTTP Signatures
- NodeInfo
- Bluesky
Bridgy Fed accepts incoming webmentions, fetches remote web pages, parses their HTML for microformats2, and handles the contained data. It also sends outbound webmentions and translates and serves data from other networks into HTML with microformats2. It supports microformats2 profiles (h-cards
), posts, replies, likes, reposts, deletes (including both serving and handling HTTP 410), hashtags, mentions.
Beyond IndieWeb sites, Bridgy Fed also supports reading posts from web sites via Atom and RSS feeds.
Bridgy Fed tries to be a relatively full featured fediverse implementation, including ActivityPub server-to-server, WebFinger, and HTTP Signatures. It translates ActivityStreams 2 objects and activities to and from other networks' data formats.
Supported AS2 object types: Application
, Article
, Audio
, Event
, Flag
, Image
, Link
, Mention
, Note
, Organization
, Person
, Place
, Service
, Video
Supported AS2 object types: Accept
, Announce
, Block
, Create
, Delete
, Follow
, Like
, Reject
, Undo
(of some activities), Update
Bridgy Fed doesn't require authorized fetch, ie signed HTTP GETs for AS2 objects and activities, but it does attach valid HTTP Signatures to its own outbound GETs to other servers.
Current:
Planned:
Bridgy Fed's support for Bluesky is based on arroba, a fully independent implementation of the AT Protocol, and lexrpc, a related independent implementation of XRPC and Lexicon.
Bridgy Fed is a federated AT protocol PDS, ie user data server. It translates data to/from the bsky.app
lexicon (data model) and serves it to the main bsky.network
relay, which sends it onward to the main AppView and from there to user-facing clients like bsky.app.