diff --git a/static/style.css b/static/style.css index d2331f3..f91d5d5 100644 --- a/static/style.css +++ b/static/style.css @@ -445,6 +445,42 @@ a img.shadow:hover list-style: none; } +.docs table { + border-collapse: collapse; + width: 100%; + font-size: .8em; + border: 1px solid steelblue; + margin-left: 0.25em; + margin-right: 0.25em; + margin-top: 2em; + margin-bottom: 2em; +} + +.docs th, .docs td { + padding: .5em; +} + +.docs tbody th { + text-align: right; +} + +.docs thead th { + text-align: center; +} + +.docs table code { + white-space: nowrap; + background-color: transparent !important; +} + +.docs th { + background-color: #ebecf6; +} + +.docs tr:nth-child(even) { + background-color: #f6f6f6; +} + .question { margin-top: 2em; margin-bottom: .5em; diff --git a/templates/docs.html b/templates/docs.html index 90cc771..2dfcb9f 100644 --- a/templates/docs.html +++ b/templates/docs.html @@ -69,6 +69,10 @@ Bridgy Fed takes some technical know-how to set up, and there are simpler (but l
Development
+Here are internal details on how Bridgy Fed translates user identity and events between protocols, including some like Nostr and Bluesky/AT Protocol that aren't launched yet. This includes in progress ideas that may not be implemented yet or fully thought through. Caveat hacker! +
+ +Here's how we (plan to) translate user identity between protocols. Specifically, each square shows how a user in a given row is identified to the protocol in a given column. BF is Bridgy Fed. Enhanced is users who have done extra setup for BF, basic is users who haven't. +
+ ++ | IndieWeb | +ActivityPub | +AT Protocol | +Nostr | +
---|---|---|---|---|
IndieWeb | +- | +basic: @[domain]@fed.brid.gy + enhanced: @[domain]@[domain]
+ |
+ users: domain as handle + code: did:plc generated by BF
+ |
+ basic and code: npub... public key generated by BF+ enhanced: domain, if NIP-05 enabled + |
+
ActivityPub | +Fediverse profile URL | +- | +users: [username].[instance] (fabricated domain)+ code: did:plc generated by BF
+ |
+ npub... public key generated by BF |
+
AT Protocol | +PDS web frontend profile URL (how will we get this?) | +@[handle]@fed.brid.gy |
+ - | +basic and code: npub... public key generated by BF+ enhanced: handle domain, if NIP-05 enabled + |
+
Nostr | +NIP-05 domain or BF user page | +@[NIP-05]@fed.brid.gy or @[npub...]@fed.brid.gy |
+ users: NIP-05 domain, if available + code: did:plc generated by BF
+ |
+ - | +
Here's how we (plan to) translate events and operations between protocols, both inbound to and outbound from Bridgy Fed. +
+ ++ | IndieWeb | +ActivityPub | +AT Protocol | +Nostr | +
---|---|---|---|---|
User discovery inbound | +serve h-card on BF user page |
+ basic: serve WebFinger and AP actor on fed.brid.gy + enhanced: user's site serves and redirects WebFinger to fed.brid.gy + |
+ resolve DID, serve DID document with fed.brid.gy PDS | +NIP-39 (kind 0) query to BF (or other?) relay | +
User discovery outbound | +Fetch home page, parse h-card |
+ look up WebFinger, fetch AP actor | +resolve DID, subscribe to PDS repo, extract profile object? | +discover user's relays with NIP-65, query NIP-39 to get profile | +
Publish inbound | +webmention to fed.brid.gy | +deliver to fed.brid.gy inbox, user or shared | +subscribe to user's PDS repo on fed.brid.gy | +publish event to BF relay | +
Publish outbound | +serve on BF user page followings h-feed |
+ deliver to recipient's inbox | +serve repo diff via sync XRPCs to subscribing BGSes |
+ serve to subscribers | +
Follow inbound | +users: UI on BF user page + code: webmention with u-follow-of |
+ Follow activity delivered to BF user inbox |
+ receive sync.subscribeRepos ? |
+ user's client sends REQ to BF relay |
+
Follow outbound | +webmention with BF proxy HTML page as source | +deliver Follow to followee's inbox |
+ call sync.subscribeRepos on followee's PDS? |
+ discover followee's relay(s) with NIP-65, send them a REQ |
+
Response inbound | +webmention to a BF proxy page | +Create , Like , Announce delivered to BF user inbox |
+ response object received from a subscribed repo? + (what if it's from a user we don't subscribe to?) |
+ NIP-10 response event received at BF relay or other relay | +
Response outbound | +same as follow outbound, with the corresponding response data type | +