In my mind, ActivityPub deals with the transport/data layer by providing a standard way to represent objects, activities and broacdcast those over the federation.
But how can a client implement a generic and meaningful UX for every server?
But Plume supports Markdown, while Mastodon doesn't. I don't know for Pleroma but you get the idea.
How would the client know what the server support in terms of features?
Funkwhale and PeerTube instances deal with Audio and Video media, respectively, PixelFed with images, Mastodon and Pleroma with small-to-medium text, Plume and Write.as with long-form content, etc.
Do you think it's possible to provide a unique and comfortable experience for all those projects ?
The big secret here is that I'd asked "everyone other than Chris" to answer the question at FOSDEM, it's because I'd already asked them this exact question on IRC a month before and they suggested using streams exactly in this way. The reason I didn't want Chris to answer was I was curious to knew what the implementers were thinking (and I already knew what Chris would be likely to say).
Thinking about the issue of the poor state of C2S ActivityPub, implementations, maybe the thing to do is make a new AP client (without a server) that does what we want and is designed to be flexible, and then see which servers support it.
The only big downside I see is that AP doesn't have a standard authentication mechanism, but maybe that can also be modularized and abstracted.
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!