Connecting records, web pages and apps

Really glad to see this conversation! This is exactly the kind of thing we’ve needed in Bridgy Fed for a while now: a way to say “this record is also this other object, on this other network.”

For identities, this is doable right now, with alsoKnownAs in DID docs. For web sites and fediverse accounts bridged into the Atmosphere, we put their home page URL and ActivityPub actor id, respectively, into their bridged DiD doc’s alsoKnownAs.

We don’t yet have the equivalent for individual posts, though. Right now, we put the original post’s URI in the bridgyOriginalUrl custom field, but that’s obviously not ideal.

The web and the fediverse already have good, structured ways to do this. You all have already discussed the web side, rel=alternate and rel=canonical links, and the fediverse reuses those with its FEP-fffd proxy links, both of which we use in Bridgy Fed. As an example, here’s the proxy link in the bridged ActivityPub AS2 object for this Bluesky post:

"url": [
  ...,
  {
    "href": "at://did:plc:xgvzy7ni6ig6ievcbls5jaxe/app.bsky.feed.post/3mxhjydoiwk2i",
    "rel": "canonical",
    "type": "Link"
  }
]

(There’s also an optional mediaType property, which we don’t use, for the MIME type.)

I could see us doing the exact same thing in ATProto, in a sidecar record. I’ve had sketching this out on my todo list for a long time, ideally as part of lexicon.community. Maybe this is the kick in the butt I need to start that.

1 Like