Draft talk:Comparison of Fediverse software

From Join the Fediverse

I have a number of suggestion for columns to make this much less Mastodon-centric.

First of all, "Fork of" should be empty if it isn't a fork at all. Mastodon isn't a Mastodon fork. Forks of forks... should be traced back to the original step by step as I've done with (streams).

Next, "Federated since" is too broad. This should be split into three columns: "Federated internally since" (Diaspora*: 2010), "Federated externally since" (Diaspora*: 2011 AFAIR, and that was all Friendica's doing), "Federated with ActivityPub since" (Diaspora*: never).

It could also be interesting to have "First beta release" and "First stable release" columns next to the "Inception" column.

A field for former names (e.g. Firefish: CalcKey; Friendica: Mistpark, Friendika) could be useful.

To the left of the maintainer field, there should be a creator field. For example, Hubzilla is currently being maintained by Mario Vavti, but it was created by Mike Macgirvin.

There should be terminology columns, especially for the term for an instance (Diaspora*: pod, Friendica: node, Hubzilla: hub, Mastodon: server, Funkwhale: pod) and for the term for posts

As for Features, I don't even know where to begin. There are so many features that I think belong into this table. I've once started my own draft for such a page, so I'll take my suggestions from there including categories and expand them another bit.

User interface:

  • Different Web frontends available to admins
  • Different Web frontends available to users
  • Different themes per Web frontend (no, only colours, yes)
  • Custom colour themes
  • Dark mode (no, yes, optionally automatic, automatic)
  • Public timeline/stream (no, optional, always)
  • Mastodon API support
  • Official dedicated desktop app available
  • Dedicated Windows apps available (dedicated means apps for this specific project as opposed to Mastodon apps that happen to work)
  • Dedicated macOS apps available
  • Dedicated Linux command-line apps available
  • Dedicated Graphical Linux apps available
  • Dedicated apps for other desktop operating systems available
  • Official dedicated mobile app available
  • Dedicated iOS apps available
  • Dedicated Android apps available in the Google Play Store
  • Dedicated Android apps available on F-Droid
  • Dedicated apps for other mobile operating systems available

Accounts and profiles:

  • Multiple identities/channels per account with separate content and separate connections
  • Multiple profiles per account/channel
  • Assign profiles to specific connections
  • Assign profiles to groups of connections
  • Number of profile fields
  • Dedicated hashtag profile field
  • Variable account/channel role
  • Pre-defined account/channel role presets
  • Account/channel verification
  • OpenWebAuth single sign-on support
  • Limit OpenWebAuth to only instances with connections on them
  • OAuth client
  • OAuth server
  • OAuth2 client
  • OAuth2 server

Moving:

  • Move to other instances of the same project
  • Move to other projects with the same underlying protocol
  • Move to other projects with a different underlying protocol
  • Move from other instances of the same project
  • Move from other projects with the same underlying protocol
  • Move from other projects with a different underlying protocol
  • Move profile/s
  • Move followed
  • Move followers
  • Move images, media and other content
  • Nomadic identity
  • Export account/channel
  • Import account/channel

Forums, discussion groups, communities:

  • Official term
  • Accounts/channels as forums/discussion groups
  • Separate forum/discussion group/community feature
  • Private forums/discussion groups
  • Forum/discussion group/community moderation
  • Crossposting to multiple forums/discussion groups/communities possible

Connections and interaction:

  • Directory
  • Confirm new connections (no, optional, always)
  • Only followers possible
  • Only following possible
  • Variable permissions for connections
  • Presets for per-connection permissions
  • Hide connections
  • Ignore connections
  • Block connections
  • Ignore non-connections
  • Block non-connections
  • Connection groups
  • Point-and-click group editor
  • Post to specific groups
  • Show/hide group membership

Built-in search:

  • Hashtags
  • User accounts/channels by name
  • Forums/discussion groups/communities by name
  • Posts by URL
  • Full-text
  • Offers opt-in/opt-out for search (no, non-standard, standard)
  • Respects standard opt-in/opt-out for search
  • Documentation (I'm not even kidding, you can search the documentation on at least Hubzilla and (streams))
  • Save searches
  • Automated search as an actor (think MissKey/Firefish antennas)
  • Admin can deactivate local public search

Posts and threads:

  • Thread structure (single posts vs. one-post-plus-comments)
  • Mention necessary to deliver a reply/comment
  • Term for posts (see further above)
  • Post language can be specified
  • Default maximum post length
  • Abstract counts into the post length
  • Alt-text counts into the post length
  • Hard-capped post length (longer posts are truncated; Mastodon: no)
  • Titles
  • Use of Abstract field (Mastodon: content warning, Friendica/Hubzilla/(streams): summary)
  • Abstract field available for replies/comments
  • Boost (direct reshare)
  • Reshare by quote
  • Reshare automatically
  • Quotes (no, show only, only full quotes, partial and full quotes)
  • Access rights for replies/comments always the same as for the start post
  • Edit own posts/comments/direct messages
  • Delete own posts/comments/direct messages
  • Delete comments under own posts
  • Manually accept comments under own posts
  • Post categories (in addition to hashtags)
  • Locations for posts

Text formatting and decoration:

  • Markup language/s in the editor
  • WYSIWYG editor (no, optional, always)
  • Bold type and italics (no, show only, yes for this point and the ones below)
  • Underline
  • Strikethrough
  • In-line code
  • Code blocks
  • Language-specific code highlighting
  • Embedded links (as opposed to always having to show the URL)
  • Emoji (no, show only, yes)
  • Project-specific emoji
  • Instance-specific emoji
  • Headlines (if not no, then how many, max: 6)
  • Variable text size
  • RGB text colours
  • Named text colours
  • RGB text highlighting
  • Named text highlighting
  • Variable typeface
  • Text orientation (e.g. centred)
  • Bullet-point lists (no, yes, variable bullet points)
  • Lists with numbers/letters (if yes, which)
  • Tables
  • Horizontal rules
  • Observer-specific features

Images:

  • Maximum number of images per post
  • Images attached to post or linked to file space
  • Embed images within text (= post text above and below the images)
  • In-post image resizing
  • Maximum alt-text length
  • Hard-capped alt-text length (longer alt-texts are truncated; Mastodon: yes)
  • Dedicated alt-text editor on default Web interface

Sensitive content and content warnings:

  • Content warning through Abstract field is standard
  • Abstract field also hides images/media
  • Abstract field automatically blurs images/media (no, limited, yes)
  • Automated content warning by filter possible
  • Automated content blocking by filter possible
  • Number of filters
  • Filter import/export
  • Automatic filter expiry
  • Images/media can be flagged sensitive (yes, does not work across protocols, no)

File uploads and file space:

  • File space with file manager
  • Subfolders
  • Adjustable access permissions
  • Access permissions control for images/media when embedded
  • Guest tokens
  • WebDAV access

Media:

  • Supported image formats
  • Maximum image file size
  • Image gallery
  • Audio file streaming
  • Maximum audio file size
  • Supported audio file formats
  • Video file streaming
  • Maximum video file size
  • Maximum video length
  • Supported video file formats

Calendar: (this should be able to show that Hubzilla has both a public non-CalDAV calendar and an optional built-in CalDAV calendar server which are separate)

  • Non-CalDAV calendar (no, events app only, private, public)
  • Collaboration on non-CalDAV calendar (no, only specific connections, yes)
  • CalDAV calendars (no, without frontend, private, public)
  • Collaboration on CalDAV calendars (no, only specific connections, yes)
  • CalDAV calendar supports tasks

Other features:

  • Built-in chat
  • Chatrooms
  • Long-form articles (no, local only, announced as Notes, transmitted as Articles)
  • Markup languages for long-form articles
  • Abstracts/summaries for long-form articles (only yes when it isn't an automatically chosen or defined part of the beginning of the article itself)
  • Wikis (no, one, multiple)
  • Markup languages for wiki pages
  • Webpages
  • Markup languages for webpages
  • CardDAV address book (no, without frontend, yes)
  • Notes
  • Flash cards
  • QR code generator
  • OpenStreetMap support for locations

Under Technical, I'm wondering if it's better to keep one protocol column and squeeze everything into one field which will grow huge for Friendica and Hubzilla or add these separate columns:

  • Main protocol
  • OStatus support
  • Federation with Diaspora*
  • ActivityPub support
  • Zot/Nomad support
  • Native federation with WordPress/XMLRPC
  • Federation with Libertree
  • Federation with Twitter
  • Federation with Facebook
  • Native federation with Tumblr
  • RSS/Atom aggregator
  • RSS/Atom feed
  • Federation with e-mail

By the way, if a feature was introduced after the project was launched, it might be interesting when it was introduced. In this case, the yes checkmark could be overridden with the year. Vice-versa, if a feature was removed, the no checkmark could be overridden with the year.

Oh wow, you really put some thought into this.
You can do the changes, but make sure that no table gets too big.
On the bottom there is a template you can use to create more tables.
This is just a draft for now. Once a table is finished it could also be moved to it's separate article.
I wouldn't leave the "Fork of" empty for non-forks, but rename the column to something that makes more sense, like "Original software" or sth. like that.
Terminology should probably be it's own table, at least if there are many terms you want to explain.
Maybe one table for basic features and then separate tables for each feature category you mentioned?
I'm not sure what you mean with "less Mastodon-centric"?. How is it Mastodon-centric now and how would it be less then?
Oh and by the way, just FYI: The order of the projects as it is here (derived from the current version of the features column; so microblogging first, then other txt-based projects and so on) should be the order anywhere in the wiki (e.g. you added some projects on the bottom of the weblinks page. These should be moved upwards accordingly.)
--Paula (talk) 09:57, 28 August 2023 (CEST)
It's Mastodon-centric in my opinion because it takes Mastodon's features and only Mastodon's features and checks if the other projects have them, too.
First of all, it doesn't list a single feature that Mastodon doesn't have.
Also, it implies that everything is more or less like Mastodon. The "media uploads" column implies that you can add images by either uploading them to your post and thus attaching them to your post as files or not at all. This absolutely does not compute in the cases of Plume, Friendica, Hubzilla and (streams) which have built-in, managed file spaces and a workflow more like writing a blog article. In this case, you first upload your images or other media to the file space. Then you link them into the post.
And maybe it's just me, but I understand the column "moving follows" as "moving those that you follow" which implies that it isn't even possible to also move followers at all because that isn't possible on Mastodon AFAIK.
One more question: Would it make more sense to group limitations (post length, alt-text length, maximum file size) in one table or under their respective topics (post length under post features etc.)?
--Jupiter Rowland (talk) 11:06, 11 September 2023 (CEST)