GeopJr / Tuba

Browse the Fediverse
https://tuba.geopjr.dev/
GNU General Public License v3.0
574 stars 62 forks source link

[Request]: Support for Lemmy #663

Closed Uhrbaan closed 1 year ago

Uhrbaan commented 1 year ago

Describe the request

Lemmy, an alternative to Reddit and part of the fediverse, is currently not supported (to my knoledge, only mastodon and pixelfed are supported). Entering a lemmy server (like feddit.ch or lemmy.world) will result in Not Found error. Pixelfed and Mastodon servers work as intended.

I think it would be nice to be able to access the whole fediverse from this single app and it would

On the other hand, Lemmy is quite different from Pixelfed and/or Mastodon so it may not fit into the current design and/or philosophy of the app.

Lovely app btw, I would probably not be on the fediverse if it didn't exist 🙃

Links:

Implementation Details

GeopJr commented 1 year ago

Thanks for the suggestion!

TLDR: Tuba focuses only on the microblogging side of the fediverse and mainly Mastodon's API though there is a WIP Misskey API support PR.


You are probably aware of some of the following, but I'll go into detail for future reference:

  1. Microblogging vs link aggregator: Mastodon, Akkoma, GoToSocial etc, Twitter and at a more limited scope, Pixelfed, can be categorized as "microblogging" platforms. Common patterns are usually small text or image posts with replies, emphasis on profiles, connections and interactions. On the other hand, Lemmy, kbin and Reddit can be categorized as "link aggregator" platforms. Common patterns are usually a topic for discussion that can be a link, text or media, rich discussions with multiple threads, topic and comment ranking and communities. These two types of platforms are different even if they kind-of resemble each other and require different client patterns.
  2. Clients vs Servers & Client APIs vs ActivityPub (S2S): When a Lemmy and a Mastodon server communicate, they use ActivityPub. They choose what to send, what to handle and how to display them. This allows them to create unique features, federate them and let other servers handle them however they please. For example, an Akkoma user can react with a custom emoji to a Mastodon post and it will show up as a favorite on Mastodon while it will display as a custom reaction on Misskey. But that's how the servers communicate. When it comes to clients however there's no one-size-fits-all* API, due to the unique features of every server and in general different ideas. Since Mastodon is the most popular one and had apps made for it, some servers end up following its API and extending it so users can benefit from its ecosystem, I've written more about it on the wiki. That includes Akkoma, GoToSocial, Pleroma, Takahē, friendica, Pixelfed and partially Firefish, Iceshrimp, Sharkey. One thing they all have in common is that they are microblogging platforms so following Mastodon's API makes sense, on the other hand most of the endpoints wouldn't make sense on Lemmy or would severely lack support for its features (e.g. boosting a Lemmy comment wouldn't make much sense or getting the comments of a post and returning the Mastodon format which is not that easy to follow thread-wise). Apps are usually made to follow one API and one platform pattern style.

* There's actually a one-size-fits-all C2S API but it's not supported by Mastodon and is overall lacking.

In general, Tuba focuses only on the microblogging side of the fediverse and mainly Mastodon's API though there is a WIP Misskey API support PR.

There are at least two GTK Lemmy clients in the meantime: