Wouldn’t that be better? Let me see if I can explain what I mean. Here on the fediverse each server is kind of restricted to what the user can post.
@Mastodon@mastodon.social is for notes
@pixelfed@pixelfed.social for photos (wouldn’t be surprised if it used a note too)
Lemmy only for article objects.
Peertube for videos.
You get the idea.
This way of developing the #fediverse where each server only receive one kind of the objects accepted by #ActivityPub makes it more fragmented it, right? A server should send and receive all kinds of objects and should be up to the client to how to processes those objects.
If an user wants an Instagram-like app just create an account on any service and use and app with that UI, of lager they wanted to see more kinds of objects they should just use another client that supports Note, Article, etc. with the same account on the same server.
Ideally all server should have a shared API.
This fixes #fragmentation, the need to have multiple accounts if you are into multiple kinds of objects/content.
Imho, ActivityPub is a bad protocol that tries to accomplish everything, and ends up being bad at all of it. The spec is also ambiguous in a lot of areas. And major implementations don’t always follow the spec. All in all, it’s a miracle the fediverse even works as well as it does.
Instead of being “bad,” I consider ActivityPub as not being mature yet.
Other internet protocol like HTTP or email are also really basic on its early inception, but it later adding so many features and capabilities to be more modern and flexible.
Give it enough time, and ActivityPub will be mature enough for varied use cases.
I didn’t say basic. I said bad. HTTP 1 is a good protocol. ActivityPub is not. Read both the specs if you don’t believe me. I have.
There’s not a single point in HTTP 1 that I thought, “what the fuck does that mean?” There are several in ActivityPub. ActivityPub also has several areas that are ambiguous. Ambiguity is bad in a specification.
ActivityPub tries to support everything, and has no defined behavior for when a client doesn’t support whatever thing it just received.
It also uses JSON-LD, which isn’t necessarily bad, but defeats the purpose of JSON by making it too complicated to easily write by hand.
This is not easy to write, read, or parse, or build:
{ "@context": { "name": "http://xmlns.com/foaf/0.1/name", "homepage": { "@id": "http://xmlns.com/foaf/0.1/workplaceHomepage", "@type": "@id" }, "Person": "http://xmlns.com/foaf/0.1/Person" }, "@id": "https://me.example.com", "@type": "Person", "name": "John Smith", "homepage": "https://www.example.com/" }
For clarity, it’s not Lemmy that uses ‘Article’. I can’t remember what does, friendica maybe?
Lemmy uses ‘Page’ for posts, and ‘Note’ for comments.
Mastodon uses ‘Note’ for both, with ‘inReplyTo’ used to distinguish whether Lemmy would call it a ‘Page’. It uses ‘Question’ for polls.
Pixelfed also uses ‘Note’, with an ‘Image’ type attachment (I thinks Loops is similar, just with a ‘Video’ type attachment).
PeerTube uses ‘Video’.
Funkwhale uses ‘Album’ and ‘Playlist’
CastoPod uses ‘PodcastEpisode’There’s no one universal ActivityPub server because the Fediverse is based on a broken promise: i.e. that you should be able to use whatever service, to interact with whatever other one. You very often can’t, because ActivityPub hasn’t been implemented by each platform as some universal thing, it’s been co-opted by each to serve it’s own purposes. Lemmy best federates with other Lemmy instances, following Lemmy’s way of doing stuff, but a good chuck of the Fediverse follows a different model, and is receiving their activity and quietly discarding it because it doesn’t know what to do with it. If all the Lemmy instances suddenly chose to use a different protocol than ActivityPub, most people wouldn’t notice the difference.
I’ve been working with some smart people on something to hopefully become a “federated account” that can be used with any service, and is 100% compatible with OIDC, so its easy for systems to implement as the authentication vehicle: https://fedid.me
Just presented it at IIW and interest is building thus far, so my hopes are high 😉