This just in:
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ā inorg.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.
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.
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:
Thanks for the links!
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.
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.