After all, Mastodon is far from a by-the-book implementation. Mastodon's ActivityPub implementation is influenced by two things. One, the legacy compatibility decisions from a time when Mastodon had two base protocols, OStatus and ActivityPub, and it had to make ActivityPub work like OStatus. Two, Mastodon's willingness to combat the Fediverse and eventually EEE it rather than embracing it.
Let me put it this way: At least for the longest time, Mastodon has tried hard to be incompatible with large parts of the Fediverse, at least with those parts that don't appear like add-ons to Mastodon (like PeerTube or Pixelfed).
And it has reached its goal: Almost all of those on Mastodon who do know that the Fediverse is more than Mastodon think that Mastodon still is the reference implementation of ActivityPub, and everything that doesn't work exactly like Mastodon, or that causes friction when interacting with Mastodon, is broken. That's one way to get rid of competition: Make it look bad to your own users.
Entire features, some of which are backed by FEPs, are bad from a Mastodon point of view. For example, enclosed threaded conversations with one post and otherwise comments, as can be found all over the Fediverse from Friendica and its descendants to the whole Threadiverse, are bad because they're so different from Mastodon's threads loosely tied together from toots and more toots. And there's an FEP for them: FEP-171b "Conversation Containers".
This has gotten so bad especially since the big Twitter exodus from 2022 that developers no longer implement ActivityPub; to quote a diaspora* developer, they "implement Mastodon". They build their stuff hard against Mastodon with little to no regards for actual ActivityPub and with little to no regards for the rest of the Fediverse.
Even Mike Macgirvin, formerly the staunchest Mastodon critic under the sun, has given in. He has added a per-post switch to (streams) and Forte which lets you choose between starting an enclosed conversation as per FEP-171b that Mastodon doesn't properly understand and starting a Mastodon-style loose thread that Mastodon understands.
I mean, what kind of "decentralised" Fediverse is it if the W3C is powerless, if the SWICG is effectively powerless, if the other devs are powerless, too, because it's Gargron and his Mastodon developers who are the one and only authority that defines how the Fediverse has to be built? And when Mastodon decides to re-invent the wheel once more, the whole rest of the Fediverse has to throw away its existing wheels and implement Mastodon's not even necessarily better wheels?
@silverpill@🫧 Social coding commons@Rimu@elle I guess I can accurately estimate on which side Mastodon is standing. Even though Mastodon can be considered "real ActivityPub" and "implemented".
It was created by the same guy as Friendica, and it's a descendent of Friendica. (Forked to Free-Friendika, then forked to Red, both in 2011, then largely rewritten against a brand-new protocol in 2012, then renamed Red Matrix, then greatly expanded in features and renamed Hubzilla in 2015.)
One could say it's Friendica
entirely running on its own protocol, Zot6
with nomadic identity that makes it possible to clone your channel across multiple servers and making it resilient against server outage
with multiple channel (identities, like complete Friendica accounts, but without separate logins) on one account/login, and you can switch between them without logging out and back in again (all with multiple profiles like on Friendica)
without Bluesky integration
with less pandering to Mastodon
with an even better permissions system
with full (client-side and server-side) OpenWebAuth support
with polls
with WebDAV access to your file space
with a built-in CalDAV calendar server
with an optional built-in CardDAV addressbook server
with optional articles, planning cards, wikis and webpages
with a very extensive, detailed and well-written built-in help system
with the ability to integrate git repositories with 3rd-party add-ons and themes that can even be upgraded with shell scripts as easily as the whole hub
with 3rd-party themes available that change the entire UI and UX instead of reskinning the existing UI, especially the Utsukta themes by @Saiwal
It does not provide any previews for links, though I'm sure something like this can be developed as a third-party addon.
If you want to try it, it's quite tricky to find a good hub with 3rd-party themes installed to start on. There aren't any in North America; don't go looking for them.
You may want to get in touch with @pepe about joining his Whoville hub. It's well-equipped, it's well-maintained, but keep in mind it's in Europe.
If you find Hubzilla to your liking, and you want to have your own hub hosted, there appear to be quite a few Hubzilla hosting services. Pick one you like, set up your own hub, activate the add-ons you need, install the third-party themes and add-ons you need, get it to run properly, and then clone your daily-driver production channel over from Whoville. Make the instance on your own hub the main one, and keep the one at Whoville as a clone in case your hoster is offline, or something else is wrong with your hub.
@silverpill@Rimu@elle I could come up with a bunch of conspiracy theories for this behaviour.
Enforcement of Mastodon dominance.
A front against Mike Macgirvin, inventor of the most "disruptive" Fediverse software from a Mastodon point of view, as well as all his creations and inventions.
Forcing a grass-roots development under corporate control and eradicating the grass-roots part. Essentially "embrace-extend-extinguish", but trying desperately to speed-run the "embrace" and "extend" parts to cut to the "extinguish" part as quickly as possible.
The only way this could possibly fail is if Mastodon decided not to play along because more people consider Mastodon the ActivityPub reference implementation and Fediverse gold standard than not.
@Mitch Conner @silverpill Exactly this exists on Hubzilla, (streams) and Forte. With even more options, actually. Hubzilla calls them "privacy groups", (streams) and Forte call them "access lists".
Now it comes: You can not only post to one specific such group/list. You can also post to several ones. Or to any combination of privacy groups/access lists and single contacts.
Better yet: You can even exclude single contacts or the members of certain privacy groups/access lists. You can post to the members of privacy groups Foo and Bar, except if they're also in privacy group Baz, and except for Alice, and in addition, you can post to Bob and Carol.
In addition, Hubzilla, (streams) and Forte don't just define who receives the post. They don't simply flag it a DM either. They flag it "restricted" and only grant the recipients permission to read the post, read any comments and interact with anything in the conversation. In practice, this also means that those who have these permissions can not only interact with the original poster, but just as well with each other, because it isn't a DM.
Anything that doesn't understand these permissions, e.g. Mastodon, do understand it as a DM. This limits their possibilities to interact, but it's the safe way.
And yet, Hubzilla, (streams) and Forte still have private and/or secret groups with moderation (like Facebook groups) on top of all this. (streams) and Forte even optionally have two levels of non-moderator users.
@william ⁂ maggos @silverpill Hubzilla, (streams) and Forte are much closer to Facebook-style social networking than to Twitter-style social media. In fact, they're descendants of Friendica, the first decentralised dedicated Facebook alternative. (Let's set aside that Hubzilla is usually referred to as something like a "social CMS" for a moment.)
They have multiple ways of rendering groups private, all of which go beyond Mastodon's way of making something private by limiting the receiving actors.
For starters, private groups only grant their own members permission to receive any content from the group. Also, private groups only grant their own members permission to see the group stream. Furthermore, private groups only grant their own members permission to see the group channel profile and its contacts. On Hubzilla, these are all separate options.
On top of all this, they can hide groups from directories. That way, these groups can be made known only by hearsay and/or personal contact to interested users. This doesn't necessarily make them private; it makes them secret.
All these options are available for normal, non-group-actor channels as well, by the way.
@Patrick Leavy You don't even have to build it. It already exists in the Fediverse. No need to reinvent the wheel.
Hubzilla, (streams) and forte offer you not only full nomadic identity, but also groups. Optionally private groups. That can optionally hide from Fediverse account/channel directories. Optionally with any number of moderators from anywhere on Friendica, Hubzilla, (streams) and Forte.
They have the most advanced permissions systems in the whole Fediverse.
They support enclosed threaded one-post-many-comments conversations with thread titles like on Facebook, like on Tumblr, like on any blog out there, like in any forum out there.
The character limit on Hubzilla is over 16 million; on (streams) and Forte, it's over 24 million. The number of options in polls is practically unlimited, as is the number of images that can be embedded in messages. And with "embedded," I mean like in a blog post or on a website with text above and below the images.
At the same time, they're part of the Fediverse. Hubzilla is based on Zot6/an older version of Nomad; ActivityPub can be activated. (streams) is based on Nomad; ActivityPub is optional, but activated by default. Forte is based on ActivityPub. Any Fediverse software that recognises groups recognises their groups as such.
Here is an article with a number of tables in which I've compared the features of Mastodon, Friendica, Hubzilla, (streams) and Forte:
@silverpill @Mario Vavti infosec.exchange doesn't appear to list any Hubzilla hubs as blocked.
That is, I hope that the visible blocklist on Mastodon servers is always in sync with the actual blocklist and not maintained separately, i.e. that shadow-blocking servers isn't possible.
@Phantasm One that happened quite early on was Mastodon's hijack of the summary field for content warnings which wasn't used for that previously. And everyone on Mastodon believes that Eugen Rochko has invented this field from scratch as a CW field. It's deeply engrained into Mastodon's culture now. It got to the point at which non-Mastodon users use the summary field as such, and they're attacked by Mastodon users for allegedly misusing the CW field.
Worse yet: Friendica has had a much more elegant way of handling content warnings since its inception, about seven years before Mastodon introduced the CW field: Have them created by a keyword filter on the reader's side. The advantage is that you have your own individual CWs, and other users who don't need these specific CWs don't have them. All its descendants have inherited it. But if you add the appropriate keywords as hashtags, Mastodon users might scold and/or mute/block you for hashtag spam.
Even worse: Mastodon itself has introduced essentially the same functionality with version 4.0 in October, 2022, just shortly before Elon Musk took over Twitter. But this has never entered Mastodon's culture which is mostly built around Mastodon 3.x. Or maybe it's because filters are the one thing where Friendica and its family are much easier to handle than Mastodon. Or it's simply because Mastodon users were promised to be babied and pampered and coddled all over, so they don't want to take care of their own CWs.
Now their "hijacks" are more on the side of centralizing moderation and overall working on features that aim to reduce the social aspect of the network and increase witch hunting. Like the new "follow packs" or whatever they called them which will definitely never turn into "block packs" that will inevitably end up maintained by heavily opinionated people like on BlueSky. Mastodon already relies heavily on importing or subscribing to automatically generated filter lists. For some admins, the filter lists can't be too extensive. Of course, hardly any admins really curate these lists.
At least the times of absolutely monstrous lists consisting of multiple other monster lists compiled by overzealous snowflakes are over. There used to be a time where it took two or three server admins with lists of their own to have one server blocked on hundreds of servers.
Lemmy only recently figured out how to properly federate posts instead of just sending a post link along with a title to instances not running Lemmy. I guess the two Lemmy devs have finally understood that they can't develop Lemmy as its own enclosed network anymore, now that a lot of traffic on Lemmy comes from and goes to Mbin and PieFed. They've lost a lot of users to these two, and I guess they know they can't afford to lose the traffic from these users as well.
They still don't really care for compatibility with Mastodon, probably also because of how much Mastodon's culture clashes with Lemmy's. And Friendica and its family just happen to be sufficiently compatible by mere chance, I guess.
Coincidentally looking at Fedilist I can see that there are approximately 450 running Friendica instances, approx 100 Hubzilla instances, and apparently 2 Forte instances which doesn't seem right. Streams isn't on the list. That list is acquired by crawling through the various peers endpoints on Fedi servers. For Friendica and Hubzilla, I think it isn't too far off.
(streams) is intentionally kept away from stats sites. Also, its nodeinfo code was intentionally removed almost entirely. This was done to keep (streams) out of that rat race for server popularity and to make it uninteresting for commercial actors that might want to sell it as allegedly their own original creation. Then again, it isn't like (streams) has many servers, much less public servers with open registration. (I'm still waiting for another server to clone my two (streams) channels to.)
Forte has quite a bunch of private, single-user servers, but to my best knowledge, there's only one with open registrations. But while Forte does have nodeinfo implemented again, it's set up to not send any actual numbers. Besides, these tiny Forte servers are quite difficult to crawl, also due to Mastodon users' tendency to block everything that's too disturbingly far off Mastodon in behaviour.
Social media is all about unidirectional followers and churning out content to as many people as possible. Mastodon is social media. It's modelled after Twitter which is social media. So are basically all other microblogging server applications in the Fediverse.
In stark contrast, Hubzilla, as well as its ancestors and descendants, is not social media. It is not modelled after Twitter. It is not nomadic Mastodon with unlimited characters. It doesn't even have unidirectional following. Intentionally in all cases. Also, something that has been around for longer than Mastodon can't be modelled after Mastodon.
Rather, at its core, it's modelled after the Facebook of the 2010s. The Facebook of the 2010s was not social media. It was a social network, dedicated to bidirectional interactions between people. To this day, Facebook doesn't have unidirectional following. Instead, it has "friends" which are always bidirectional.
Likewise, Hubzilla has bidirectional "contacts" as a default. Mind you, these are nothing like your usual Fediverse microblogging mutuals. They aren't one following connection plus one being-followed connection. They're one and exactly one connection which goes both ways.
Also, unlike most other Fediverse software, Hubzilla is extremely flexible in its use-cases. Unlike on most other Fediverse server applications, Hubzilla isn't hard-coded to always be public unless it's a DM which still is quasi-public. It can very much be used for enclosed communities as well, protected by a staggeringly advanced permissions system.
Let me put it this way: BlackMastodon was a disaster. Why? Because Mastodon has nothing much between fully public and mention-driven DMs, and its only ways of self-moderation are muting, blocking and calling the mods.
BlackZilla would have been a success (unless phone apps with native mobile UIs would have been a hard requirement). It would have allowed for discussions with restricted permissions, made absolutely impenetrable even for Mastodon users. It would even have allowed for discussion groups which would have been both fully private and hidden from all directories. Most importantly, it would have empowered its users to moderate their own streams themselves with a whole arsenal of countermeasures, all the way up to the thermonuclear option of turning ActivityPub off entirely.
Just because you use software that can federate with Mastodon, doesn't mean it has to work like Mastodon, and it means even less that it has to always work like Mastodon. Mastodon is not the gold standard and reference implementation of ActivityPub. It's a highly Mastodon-centric notion that everything in the Fediverse that doesn't strictly "implement Mastodon" is broken.
By the way: The way that permissions are worded on (streams) and Forte make much clearer what they're actually for than the way they're worded on Hubzilla. They aren't always there to prevent everyone from doing things. Rather, they're there to keep your stream clean from unwanted content.
Yes, if I disallow comments on a post, anyone on Mastodon can still reply to it, not even knowing that they aren't allowed to do that. But if they do reply, who'll see that reply?
Anyone else in the conversation who's on Friendica or Hubzilla or (streams) or Forte or Lemmy or /kbin or Mbin or PieFed or anything else that knows a thing or two about enclosed threaded conversations won't. That's because they all receive the reply not from the Mastodon poster, but from me. But I don't let that reply from Mastodon in. And if I don't let it in, it won't spread to the users on the aforementioned applications.
That is the intention. And it has been since Mike Macgirvin designed Friendica 16 years ago.
Really: If Hubzilla has enclosed conversations backed by a FEP created on (streams) and an advanced permissions system, and Mastodon doesn't have either, and this causes malfunctions, it's Hubzilla that's broken.
If Mastodon has quote-post controls backed by a FEP created on GoToSocial, and Hubzilla neither has nor supports them, and this causes malfunctions, it's Hubzilla that's broken.
Simply because both Hubzilla devs oh-so-staunchly refuse to "implement Mastodon" and rip all that stuff out that Mastodon doesn't support.
First of all, implementing nomadic identity would drastically alter the way how Mastodon works. It would make Mastodon, something that's supposed to be dead-simple, a great deal more complex.
I mean, in order to really pull this through all the way (as in Hubzilla/(streams)/Forte-level nomadic identity), your identity, your posts, your followers, your followed, your settings, your filters, your everything, all this must no longer directly reside in your account. It must be containerised in something that Hubzilla calls "channel", and that container would then reside in your account and be able to reside in multiple accounts on multiple independent servers.
Next, when Mastodon introduces a new feature, they tend to try to market it as their own original pioneering invention. They can't do that with nomadic identity. There are already enough people who know that nomadic identity was actually pioneered by Hubzilla before Mastodon even existed.
Furthermore, before Gargron implements something invented by Mike Macgirvin, hell will freeze over. Even if he tried to sell it as a unique feature of Mastodon, he'd still secretly have to admit that there's something that Mike did right. And quite a few eyes would be on him in hope of Mastodon getting more features from stuff created by Mike.
Ever heard of OpenWebAuth magic sign-on? Invented by Mike for Osada and Zap in the late 2010s, then backported to Hubzilla.
It was proposed for Mastodon, even if it was only client-side (as in, Mastodon logins would be detected by Hubzilla, (streams) and Forte, but Mastodon wouldn't be able to detect OpenWebAuth logins itself). This went as far as a merge request on GitHub. It could have been built into Mastodon. The code was literally there.
The merge request was silently rejected. And that would have been a fairly small change in comparison to the complete rebuild that'd be necessary for a full-blown, Forte-level, server-side implementation of nomadic identity.
I mean, @silverpill had to implement nomadic identity on Mitra client-side. That wouldn't be possible on Mastodon, what with every other Fediverse app being a Mastodon client. Mastodon would require a server-side implementation.
Seriously, it'd be easier to strap Mastodon's Web UI to Forte or Hubzilla with the necessary changes to adapt it to a vastly different backend.
@silverpill Would be interesting to add Hubzilla's Zot6 and (streams)' Nomad (which would be Zot12 if it wasn't incompatible with Zot6) to the list.
By the way: Forte doesn't require a gateway to communicate with non-nomadic ActivityPub. A fully cloned Forte channel can communicate with a Mastodon account without jumping through hoops. Remember that Forte has almost fully-featured Hubzilla-level nomadic identity (i.e. everything except real-time syncing between channel instances; unlike Hubzilla and (streams) which do sync in real time, it needs a cronjob for that) directly built into its core.
(streams) does support nomadic identity via ActivityPub. But internally, it uses and relies upon Nomad for its nomadic identity. It only supports nomadic identity via ActivityPub a) because it was used as a development platform for just this and b) in order to be able to understand cloned nomadic ActivityPub actors elsewhere. This is also why it isn't possible to move from (streams) to Forte, to move from Forte to (streams) or to clone between (streams) and Forte.
(streams) itself doesn't require gateways to communicate with Mastodon & Co. either. It speaks three protocols natively: its own Nomad, Hubzilla's Zot6 and (optionally, but on by default) standard ActivityPub.
@Oblomov I'm on both Hubzilla and (streams), and actually browsing through a whole server of anything is not possible here.
The best we have is a directory, somewhat similar to that on Mastodon, but also somewhat more powerful in certain aspects. Even there, Hubzilla only lists channels that can speak its native Zot6 protocol, i.e. Hubzilla and (streams) channels. It doesn't list any ActivityPub actors because ActivityPub is provided by an add-on, optional and off by default.
(streams) has ActivityPub support integrated into its core, and its native Nomad protocol is better at working together with non-nomadic ActivityPub things than Zot6, so ActivityPub is on by default. Thus, its directory also lists ActivityPub-based actors.
You can filter the directory only in three ways. One shows only local channels. One shows only safe channels, i.e. such that aren't flagged NSFW. And one only shows group actors. This one is interesting because it shows you all kinds of these as far as they're known to your server: Friendica groups, Hubzilla forums, (streams) groups, Forte groups if there were any, Lemmy communities, Mbin magazines, PieFed communities, nodeBB forum categories, Flipboard magazines...
That said, filtering by string is not possible so you can't single out actors on a certain server. However, in suggestion mode, the results are weighted by how well their profiles match yours and by how many of your contacts are connected to them, somewhat reminiscent of Facebook.
@👩🦯The Blind Fraggle If only I could complete a new image post with image descriptions in the under five and a half hours that this day still lasts here.
But I've still got unposted images with an unfinished set of image descriptions lying around since late 2024.
For now, the only feature that's actually implemented is sending OpenSim group messages out via ActivityPub. However, it has been tested against the opposite end of the Fediverse from Mastodon: Hubzilla, (streams) and Forte.
An avatar roaming the decentralised and federated 3-D virtual worlds based on OpenSimulator, a free and open-source server-side re-implementation of Second Life. Mostly talking about OpenSim, sometimes about other virtual worlds, occasionally about the Fediverse beyond Mastodon. No, the Fediverse is not only Mastodon.Even if you see me on Mastodon, I'm not on Mastodon myself. I'm on Hubzilla which is neither a Mastodon instance nor a Mastodon fork. In fact, it's older and much more powerful than Mastodon. And it has always been connected to Mastodon.I regularly write posts with way more than 500 characters. If that disturbs you, block me now, but don't complain. I'm not on Mastodon, I don't have a character limit here.I rather give too many content warnings than too few. But I have absolutely no means of blanking out pictures for Mastodon users.I always describe my images, no matter how long it takes. My posts with image descriptions tend to be my longest. Don't go looking for my image