ATProto gets PDS ActivityPub support

This just in:

1 Like

This is awesome.

Mike said:

Consider switching endpoints over to the org.joinmastodon namespace as TECHNICALLY I want to support Mastodon style ActivityPub, as that’s the most popular. Mastodon isn’t necessarily the most ā€œspec compliantā€, and including ā€œMastodon hacksā€ in org.w3.activitypub doesn’t feel right.

I am not sure how to contact Mike, but I did want to mention that many platforms are purposefully moving away from how Mastodon implements ActivityPub. It may be the most popular now, but platforms that support threaded conversations such as blogs, forums, and Facebook-style platforms are creating their own FEPs and purposefully deviating from what Mastodon implements.

Even if you mostly want to support Mastodon, it may be wise to look at how other platforms are using ActivityPub too, especially in the threaded conversation space. After all, if every WordPress blog turned on ActivityPub support, they would instantly pass Mastodon in number of instances installed. I fully expect fediverse-powered blogs and forums to grow at a far larger rate than people expect.

Just something to consider. Both Mastodon and Bluesky are influenced by Twitter, so it makes sense to focus on Mastodon’s way of doing things. But please don’t leave the rest of us out.

1 Like

:100: This is something to ping to @eprodrom and @codenamedmitri to bring to W3C attention.

PS. In the delightful-fediverse-experience curated list repo which I just gave a complete overhaul (so check it out), I created a new taxonomy that also de-emphasizes ā€œalternative social mediaā€ where adoption is already high, in favor of other social networking areas, esp. innovative ones. See:

Hi. Have any of the alternatives documented their changes or implementations in a meaningful way? Got links?

While I’m implementing ActivityPub and ActivityStreams as general as I can, there’s a bit too much ambiguity to just follow ActivityPub as it is written. I’m also focused on Microblogging, in essence exposing Bluesky to the Fediverse (300 character/3000 grapheme limits and all). Logically that makes Mastodon my most relevant reference as it’s the most similar.

Notably, the Mastodon spec calls out ā€œNotesā€ as a focus document type for microblogging, adds extensions like ā€œfeatures postsā€ on your user page, and allows you to setup domain aliasing using 301 redirects on webfinger requests. This is what I primarily mean by following Mastodon, as they’ve defined a specification I can reference, and reach a large population of microblogging users. I have no intention of implementing everything, but their spec seemed a good starting place.

1 Like

There is a best-practice that a bunch of fediverse projects follow, to add a FEDERATION.md to the root of their repo, to describe how ActivityPub is extended and implemented. Here is a (likely not complete) list in the developer tutorial wiki (hint to all: add missing projects, it is a wiki anyone can edit) pinned to this forum.

There’s a FEP that relates to this best-practice. See:

1 Like

Thanks for the links! :slight_smile:

FWIW I decided not to move to org.joinmastodon endpoints, and instead decided to ā€œenhanceā€ my org.w3.activitypub objects with extensions. The scope of this is still only for microblogging, but adding ā€œMastodon Client Appā€ support is on the roadmap now. Generally speaking, making a post posts to both networks, but replies (and likes) will be per network. Sharing/retweeting/reskeeting and quoting support is up in the air, but it will likely be per network only. TBD if an exception can be made for posts we know exist on both networks.

Per a different conversation, I’ve since added FEP ef61 ā€œPortable Objectā€ support. Currently I have IDs working, and actors can optionally emit ap://URIs. For the DID’s, I’m utilizing a nifty did:key encoding called ā€œmultididā€ to convert AtProto DID’s into ActivityPub DIDs, which I then base58 encode as a string. This is a fully reversible operation, so my /.well-known/apgateway endpoint decodes the did:key directly into AtProto DID (did:plc, did:web, etc), which I use to lookup that users data. Quite elegant if I do say so. :slight_smile:

More can be found at the github link (I don’t have permission to post more pictures).

At the moment my apgateway isn’t doing the ā€œtunnelingā€ part, but I like how the ap:// URI’s actually shortened my xrpc requests.

1 Like