A lot of negativity in this thread. Not earned, imho.
I see Mastodon being mentioned a lot (and sometimes Pleroma) as if that is the only application to access the fediverse.
ActivityPub is still in early stages of adoption. It is great that these apps have proven themselves in production (with a couple million users) based on a v1.0 of the spec where intentially a lot of things were left out, like authz, account discovery, search, etc.
Right now, based on experience and with a good base of knowledgeable AP devs, the spec is evolving. With its flexibility and JSON-LD at its base federated applications can be created for any number of domains.
And this is happening. Almost every week there are new project announcements that adopt AP in some way. They will not all federate with Mastodon from the start, and there are many challenges to be tackled to make a seamless fediverse integration smooth sailing.
As someone who has tried to implement ActivityPub (for my personal site), I think the negativity is largely justified.
In my opinion, ActivityPub is way too complicated, and federating is just too hard to do for smaller projects. You mention that there are many new projects – this has been the case for a while. Last time I looked, nearly all of them had failed/stopped/paused before actually getting federation working. The test suite is down, and has been for at least a year:
I think that ActivityPub should have started out far simpler, and it should have been in reach of hobbyist developers. Something probably closer to RSS, with verify-from-source rather than cryptographically signed posts.
Just my experience, obviously. I would love to be able to write and run my own little Twitter-like instance that people can subscribe to, but I can't because ActivityPub was too difficult for me to get working.
Do you want something that works well for millions of real users or do you want something that's simple to implement for hobbyist developers? I personally don't even think that ActivityPub is that difficult to implement, I've written a tutorial [1] on it, but it seems like a misguided goal to me to prefer simplicity over other factors like fitness for a particular purpose.
Hi Gargron, ideally I want both, obviously! I like Mastodon, as open source software that can federate with other instances, it's very neat. I'm just disappointed that the federation specification is too hard for me to get working, and that appears to be the case for other people as well, given how many fail to implement it.
I did follow your tutorials, by the way, but I got stuck on certain things (cryptographic signing being the main one I remember), couldn't test them easily with the test suite being down, and gave up eventually.
Am I too stupid? Probably. But I can imagine a spec that gives me practically everything I want in a decentralised Twitter replacement being almost as simple as RSS or JSONfeed for example, which took me a few hours to implement.
I don't think that's necessarily a real dichotomy. Lots of the issues around being able to implement AP are not "it has to be complicated", but "there is no consistent specification that matches what practical implementations do". It's fairly frustrating to implement something that looks ok and then have to go around and figure out what implicit assumptions Mastodon et al make that you didn't know about.
Those are fair points. Yes, the road to implementing AP federation is still hard. Reason is that implementations (Mastodon, Pleroma) went way ahead of community / documentation / spec development (after v1.0) and they filled in the blanks in the specs making their own implementation choices. Incompatibilities arose between impls, etc. and a new implementer still has to delve into other codebases, old issue threads to find the proper way forwards.
This is bad, of course, but there was organic, though chaotic growth. The AP community has recognized the problem and is slowly catching up. Slow, because its an all-volunteer FOSS movement, atm.
The testsuite being down is a known issue and on the todo-list for a long while [0]. Just yesterday an alternative testsuite was announced [1]. Also the creator of PixelFed has a great test tool called FediDB [2] in private beta.
Finally note that federation with the Fediverse is often not the first goal of new projects, but something that comes later on the roadmap, if at all. Some projects like ForgeFed [3] - federated code forges - need no Mastodon connectivity per se, just interconnect github, gitlab, gitea, etc. and is developing their own spec on top of AP for that.
PS. There is also a guide for new implementers in the making, but currently exists as a wiki post [4] on SocialHub (that you can improve based on own experience).
Thanks for the links, and I appreciate where you're coming from. As is often the case with open source projects, no one is to blame, it's just gone in a direction that's no good for me.
However, I can't imagine that spec is going to be drastically simplified, so I probably won't have another go even if the tooling improves. I don't properly understand large parts of it, and therefore won't be able to troubleshoot or keep up with changes.
I wish the projects that do have the tech chops to implement this properly well, and I'll continue as a user. But I'm going use something simpler if it comes along.
There are also AP libraries in development that do the heavy lifting for you. Furthest along is GoFed, written in go, that just reached its v1.0 release.
> go-fed/activity is unlike most other software on the Fediverse. It is the first standalone ActivityPub library. It is also the pioneering solution in Go. It is designed for those who have no prior experience with ActivityPub, ActivityStreams, JSON-LD, or RDF.
I see Mastodon being mentioned a lot (and sometimes Pleroma) as if that is the only application to access the fediverse.
ActivityPub is still in early stages of adoption. It is great that these apps have proven themselves in production (with a couple million users) based on a v1.0 of the spec where intentially a lot of things were left out, like authz, account discovery, search, etc.
Right now, based on experience and with a good base of knowledgeable AP devs, the spec is evolving. With its flexibility and JSON-LD at its base federated applications can be created for any number of domains.
And this is happening. Almost every week there are new project announcements that adopt AP in some way. They will not all federate with Mastodon from the start, and there are many challenges to be tackled to make a seamless fediverse integration smooth sailing.
Here is a good AP project watchlist: https://git.feneas.org/feneas/fediverse/-/wikis/watchlist-fo...
There is an online AP conf in October for those interested: https://conf.activitypub.rocks/#home
For questions you can go to these forums:
https://socialhub.activitypub.rocks/
https://talk.feneas.org/