AT has a lot of nice parts, and a lot of “wtf why” parts.
It makes sense: AT was designed to be “Twitter, but also federateable” rather than ActivityPub’s “Federateable, so you can build things like Twitter”. ActivityPub is modular and much more customisable than AT, which was built closer to existing social media concepts.
I’ve read somewhere that Friendica is working on an AT implementation, so I guess we’ll see how well federation actually works once that’s done.
The inclusion of some kind of web3 identifier that never seemed to get used for web3 things comes to mind. The methodology of most federation work also seems to indicate that hosting an alternative server may require significantly more resources compared to an ActivityPub server, though this may be outdated information.
I also don’t particularly like their moderation strategy. It seems very Nostr-like, and it’s more about hiding things than actually blocking things.
They also felt like they needed to invent their own notation language to describe their protocol, which makes reading the protocol spec kind of weird.
They also decided to use Javascript’s 53 bits of integer precision as an upper bound for their protocol. I certainly wouldn’t have designed my cross-platform protocol around the programming language I happened to choose.
Lastly, Bluesky offers a flag to suggest clients hide your profile and posts, but doesn’t have the ability to hide that data. With ActivityPub, you can simply refuse to list posts and maintain some amount of privacy (especially combined with enabling follow requests), but AT doesn’t seem to care much about that.