Note: in hindsight, half of this post is answering my own questions as I explore this rarer side of federation, but there are still some remaining questions which I have highlighted.
Introduction
This post is created on lemmy.ml. The benefits of federating this post to other Lemmy instances is immediately obvious, since they can use most or all of the site features to read it as intended and interact (voting, replying, reporting, saving, cross-posting or browsing and subscribing to fediverse@lemmy.ml).
There is also intuitive benefit in being able to federate with other link aggregators such as lotide and Prismo instances. All these sites have the same basic interface of link-posting, text-posting, voting, commenting and voting on comments. The base format is very compatible, even if extra features are not. I wouldn’t be surprised if Lemmy and lotide form a dynamic similar to Mastodon and Pleroma, two microblogging services which again have an intuitive base compatibility.
But what about different types?
What are the benefits of, for example, making Lemmy federate with Mastodon, Friendica or PeerTube?
One approach to answering that is asking what cross-interaction is already possible, like some posts in !feditolemmy which were posted from Friendica. This nerdica.net post which is also replicated on !fediverse shows a conversation in replies between a few Lemmy instances and a Friendica account, and demonstrates the clear analogue of our communities and their forums, and of our votes and their likes (it’s just a test ;) )
So Friendica posts federating to Lemmy makes reasonable sense. I’m not sure about the opposite. I guess their posts are analogous to our text posts or text & link posts, so it might be possible to render their forums as browsable communities here.
Question 1: Does my Lemmy account browsing and making new posts on Friendica forums make sense? Or will the federation only make sense for enabling Lemmy to aggregate Friendica posts and allowing cross-rating and cross-commenting?
Note: I found this Friendica forum on Lemmy, which was properly interpreted as a community instead of a user by Lemmy, but posts aren’t replicating yet. I’m guessing it’s a base for future completion to allow further cross-integration. Friendica does not appear to be able to browse Lemmy users or communities yet.
I also assume microblogging sites like Mastodon and Pleroma, along with the Prismo link aggregator, can use hashtags as an analogy for communities. While a post on those sites can belong to multiple tags, Lemmy can imitate this with crossposting in multiple communities. Is this reasonable?
PeerTube is where I get more confused, and I’m not alone. As a reply there mentioned, we can view a PeerTube user account, such as https://lemmy.ml/u/thelinuxexperiment@tilvids.com and https://lemmy.ml/c/h3h3productions@h3h3.club , although it doesn’t seem to work for framatube.org.
However the interfaces of Lemmy and PeerTube are radically different, as PeerTube is foremost a video hosting site and Lemmy is a link aggregator. I think it’s fair to assert that a Lemmy post cannot be displayed on a PeerTube instance without hacks no-one wants, which leaves PeerTube->Lemmy posting, and mutual liking/commenting/reporting/etc… A PeerTube video can be adapted as a link post in Lemmy. I’m not certain how a PeerTube upload would signal which communities it should be posted to in Lemmy, but there are reasonable options like an extra field in the upload settings, or a link in the description.
Question 2: Is there a plan to have anything more than PeerTube creating link posts in Lemmy communities with federation between comment sections?
Trying to learn the current situation in order to ask good questions has taught me a lot, I was in a mindset that we had to be able to make posts on other sites in order to usefully federate, when that isn’t really our role as a link aggregator site. Media sites can usefully post to here with federated voting and comment sections.
It seems like the function of link aggregators necessitates being able to access different types of content in a format that’s not exactly ideal for all of them but is great for people who want to comment on things. Like pixelfed, peertube, plume, etc. all are specialized to specific formats of posting to highlight the content being shown. But Lemmy, as a reddit analogue, should be able to un-specialize those formats and display them in a generic UI. The problem is that every format does ActivityPub a little bit differently, so you have to make an ‘interpreter’ for each AP implementation.
Specialized AP services don’t necessarily need to worry about this because, like, how is peertube going to render a masto post without a video in it? Why would a Plume user want to read a microblog when they signed up to read/write longform blogs? On the other hand, a Lemmy user wants to view and comment on anything and everything. And if the comments are appended directly to the source material while still being viewable on Lemmy, then the utility is increased.
I agree with your point, let me just add that I would not be that firm in categorizing blogging as a specialized service, as a blog article may embed other pieces of media, so has its own challenges
I agree, generally, but I’m more speaking in terms specifically referring to Plume and Writefreely.
Fair enough !
Very interesting discussion post !
As for currently existing interaction, aside from the very recent possibility to publish from Friendica, there has been from month the possibility to follow Lemmy communities and comment in them from Friendica, Mastodon and others. So people can participate in Lemmy conversations and integrate them in their fedi timelines, be notified for replies in fedi notifications without having to seperately connect on Lemmy.
I hadn’t though too much about Friendica forums, but it is indeed a good perspective to integrate them for Lemmy users. As someone who does not regularly use then, I must say I don’t see the difference in purpose between them and Lemmy communities.
As for Peertube, think about a community like !tilvids, where interesting threads about a specific Peertube video are created every day. Wouldn’t it be nice if those where actual comment threads on the video? To put it differently, if link posts with Peertube links were actually reposts on the community.
Other comment on Peertube : wouldn’t it make sense to follow a peertube channel from Lemmy? After all, a Peertube post is just a post with a video attachment, and a channel is just a community where only the creator can create posts (but all members can comment)
The many fediverse apps out there really are fundamentally compatible. The primary difference is UX and not so much how a post could be interacted with (although more complex operations can be done with e.g. forgefed)
So really this makes them more suited to be AP Clients rather than Servers.
I think SOLID is an interesting approach to this. And AFAIK their inbox API is AP compatible.
While SOLID focuses mainly on data storage, there is another approach that I think is better which focus on Author Origination. Even if foreign software creates the object or an interaction description, it is signed and disseminated via an author controlled platform, and not by the site/software that turns UX input into an object or interaction with an object. Thus retaining all the benefits of SaaS without giving up data sovereignty nor identity sovereignty.
I like to look at the potential of the Fediverse in terms of what the open interoperability standards (notably ActivityStreams and ActivityPub) and their Linked Data extensibility could bring. Then it helps to think in terms of ‘business domains’ i.e. particular areas of expertise that software is targeted to.
The many fediverse apps out there really are fundamentally compatible. The primary difference is UX and not so much how a post could be interacted with
Right now the Fediverse is mostly offering features in a Microblogging domain. There’s so much focus on this that we come to think of ‘adding federation support’ as adding timelines, comments, boosts, likes, etc. But with Linked Data there is no restriction as to what application types - i.e. apps targeting different business domains - we could potentially integrate with.
although more complex operations can be done with e.g. forgefed
Forgefed is a good example of this. Although in terms of ‘business domains’ it is not sliced optimally, imho. What forgefed tries to do is create a common denominator for Code Forges to interoperate. But code forges aren’t a domain (or rather it is an application domain, not a business domain). You won’t find a Code Forge Manager as a domain expert. A code forge is just a tool to help with Software Development, and this is the top-level domain. A breakdown into sub-domain may give you Revision Control, Quality Assurance, Project Management, etc.
Consider Github. It has established a dominant position in the developer landscape. 1,000’s of companies and FOSS projects deliver stuff that builds upon Github API’s, trying to add some additional value. With open standard domain-specific extensions all that will be democratized. And there would be possibilities to mix, match, reuse that do not exist now. Take Project Boards for instance. Github and Trello… they mostly overlap in their feature set. You choose one or the other. But were they federated based on the same vocabulary definitions, they might use the exact same data to render their UX. Now a Trello user can seamlessly interact with a Github user from their project board.
Note that in the case of ForgeFed I am a proponent to broaden this initiative into defining, what I call, the Free Software Development Lifecycle or FSDL.
Were the Fediverse to evolve along a domain-driven approach to creating interoperable extensions then a lot of power would be unleashed, that now is still dormant. I feel that here is the “unique selling point” that will allow Fediverse to start competing against the proprietary walled gardens that are all around us. If the ecosystem evolved like this, then more and more it will create its own network effects across a wide variety of different fields.
This is just some random example of where fedi could be going towards. But there’s a long way to go before we can get there. We have to tackle some real challenges first.
The primary difference is UX and not so much how a post could be interacted with
So really this makes them more suited to be AP Clients rather than Servers.
There are different limitation in ways you can interact depending on the server you are using. For example:
- if you are on Lemmy, you cannot follow other users or being followed
- if you are on Mastodon, you cannot downvote or quote-shareSo, while the situation where these are just clients for a generic AP server can be argued to be desirable, this is not how it works at the moment
One core benefit of federation across a common protocol is content visibility. Even if you can only interact with the content in a restricted way due to the differences between platforms, it’s still great to have more content available. This aspect also helps smaller platforms grow as they can tap into the user base of larger established platforms.
For example, I can follow people on Pixelfed from my Mastodon account and comment on the posts. The fact that I don’t have to make a separate account to visit Pixelfed lowers the barrier for interacting with the site.
In my opinion, open federation over ActivityPub is one of the biggest differentiation from commercial social media. Commercial platforms intentionally make it all but impossible to interop because they see each other as competition. Every platforms wants to be a walled garden jealously guarding their user base from others. This is one of the reasons we see proliferation of screenshotting content to move it between platforms.
Fediverse is the exact opposite of this model. Each platform makes it as easy as possible to interop with others, and everyone jointly benefit from the totality of the content available on the network.
I am trying stuff right now and must say lemmy seems not jet well integrated into the fediverse. I searched for a post I wanted to comment on on mastodon.social. Yes, i found it and could comment it on mastodon, but it did not show on lemmy. I do not know if there is some kind of moderation which I have to await, but it is definetly not seamless. Likewise, how do one interact with other lemmy instances? I did not find a way to communicate over instance-borders. If somebody has more experience / insight into this, please help.
So, there’s a simple constraint built into the fediverse or decentralised social media: each separate instance or node does not have a copy of everything on the fediverse. Instead, each instance only has a copy of the things that its users directly follow or subscribe to.
Often this is described as what an instance can (or cannot) see.
In your case, you were probably searching for things that lemmy.ml just can’t see or hasn’t yet seen.
For lemmy in general, and I’m hazy on this TBH, this will apply to communities. That is, an instance won’t have the content of a community unless one of its users has subscribed to it. When you search for communities though, any community from any instance that connects to lemmy.ml will turn up (AFAIU).
For mastodon content, when viewed from lemmy.ml, not much is going to turn up here because lemmy isn’t about following or subscribing to individuals. No one on lemmy.ml is following the mastodon user you were searching, because they can’t. And so the post you were searching for just isn’t visible to lemmy.ml.
The only way in which a mastodon post is visible from lemmy is when that post is directly addressed to lemmy either as a post to a lemmy community or in reply to a lemmy post or comment.
This is actually quite easy to do from mastodon, in large part because both lemmy communities and users are presented to mastodon as though they are other users. As things are now, lemmy doesn’t treat mastodon users as something similar to a community that you can subscribe to, that’s not really what lemmy is about.
So yes, not everything is seamless here on the fediverse, and in principle I’m with you: there’s some maturation yet to occur and it’s honestly best to think of this place as a big prototype.
Personally, I don’t think this is the fault of the platform developers, as they’re doing what they can with the protocol and software available to them. The space that is, IMO, most fertile for growth and innovation is in the clients/apps, where multiple platforms can be woven together into a single interface in much the same way that a single email app can help you manage multiple email accounts. So far, to be fair, much of the activity in this space has been dedicated to trying to mimic the success of Twitter apps. Not much true innovation has taken off yet.
Additionally, there’s almost certainly some work to be done in adding and developing sort of “middleware” software and services across the fediverse.
It seems that this inter-contentedness (at least over Lemmy-instances) is already getting better!
Oh yea, using communities (ie sub-lemmys) is a great way to make stuff visible, because, as far as I understand, the whole community or whole threads become visible once someone subscribes to the community.
Over on mastodon, a whole bunch of weirdness happens because things are visible only on a user-to-user basis. Structuring things by communities and conversations or posts is a much more natural way to share content across the fediverse IMO.
On mastodon you have to click on each post to see the threat it belongs to. I too find this tedious at times. Here it is also easier to get going, because you don’t need an initial following.
Thank you for this elaborate response. I did not want to imply any wrongdoings on the developers side, I am just starting making sense of all this. So, how do i subscribe to e.g. https://beehaw.org/c/creative while using lemmy.ml?
Never mind, found out myself.