[Activitypub](https://www.w3.org/TR/activitypub/) is decentralized social networking protocol recommended by the W3C. It provides a client to server API for creating, updating and deleting content, as well as a federated server to server API for delivering notifications and content. As part of the work on [Lemmy](https://join-lemmy.org/), we have implemented some high-level abstractions for handling the server-to-server protocol in Rust. These abstractions are now available as a standalone library.
The main features are:
- Data structures for federation are defined by the user, not the library. This gives you maximal flexibility, and lets you accept only messages which your code can handle. Others are rejected automatically during deserialization.
- ObjectId type, wraps the id url and allows for type safe fetching of objects, both from database and HTTP
- Queue for activity sending, handles HTTP signatures, retry with exponential backoff, all in background workers
- Inbox for receiving activities, verifies HTTP signatures, performs other basic checks and helps with routing
- Generic error type (unfortunately this was necessary)
- various helpers for verification, (de)serialization, context etc
Documentation is currently lacking. If you want to get started with the library, best look at the example.
The code has already been used in production as part of Lemmy for a long time, without any notable problems. However, ergonomics are lacking and need to be improved. There are also many additional features which would be worth implementing. See the project readme for details. Contributions and suggestions are very much welcome!
You can find the project here:
cross-posted from: https://nerdica.net/objects/a85d7459-7662-b1ab-3fdf-c79525915363
> Hello ,
> I noticed that both Friendica and Lemmy allow to tag spoilers, but neither is able to understand each other's spoilers. It would be nice to make those compatible.
As more Lemmy instances come online, I see more and more content under All from languages I do not speak. Is there a way to implement a language filter, or to manually remove those instances from my feed?
yeah, i know, safari is kind of a hit or miss in terms of implemented standards, and it also only works on macos, so it's doubly difficult to test, but still, i wonder whether it's just smth with my config or do other ppl also have some issues?
I'm working on adding highlighting to `code-blocks` on lemmy using [highlight.js](https://highlightjs.org/static/demo/), and am wondering exactly how to implement it. There are many code-themes that could be used Regarding which theme to use there are basically two different directions I could go:
1. Each lemmy-theme would have to explicitly declare an hljs theme to use.
- easy to use, users automatically get an appropriate code-theme for every ui-theme.
- simple to implement (already done)
- theme-makers need to pick an appropriate theme
- no user customizability, limited number of themes
2. Users can pick their preferred theme just like they pick a UI theme.
- Extreme customization, there are a buttload of themes, and users can pick any one!
- Users would **need** to pick an appropriate theme. It would use the "browser-default" (light/dark) until they pick one, and could look weird and be confusing until then
- PITA to implement & requires back-end changes (wont see it for a while)
Let me know what you think, or if you have another solution.
I have solution #1 deployed on HeapOverflow.ml right now =]
Here is the PR for those interested: https://github.com/LemmyNet/lemmy-ui/pull/663
##### What is this post?
A quick and dirty look into Lemmy instances, their size and interactions, and some insights.
* I AM NOT AN EXPERT OR WITNESS: I only started using Lemmy in March 2022. Lemmy was around for around 3 years before that. I am not a developer or instance owner.
* I DID NOT GO AND TALK TO PEOPLE WHO UNDERSTAND THIS STUFF: This is just me exploring for fun and starting a conversation. This is not a proper study. Consider telling any one who links you to this page as if it's an expert historical account that I called them an idiot.
* This is limited by my experience and my searching, it's not comprehensive. If someone made a dark instance, I probably won't find it. If there's some deep lore, I probably don't know it.
Thanks to https://lemmy.fediverse.observer/list for many of these stats.
Now for the casual rambling.
Organic posting started on lemmy.ml from April 2019 so I will consider that the start of Lemmy as a service (my understanding is that lemmy.ml is the oldest non-dev instance)
As of now (May 2022) AFAIK, the Lemmy-based sites with the most **total user comments** are:
- hexbear.net (2.5M)
- lemmy.ml (114K)
- lemmygrad.ml (105K)
- bakchodi.org (42K)
- wolfballs.com (15K)
- szmer.info (15K)
- feddit.de (3K)
- *[dev instances ignored]*
- sopuli.xyz (1504)
- lemmy.eus (1262)
- lemmy.ca (974)
The count of **users active in the last month** is similar:
- hexbear.net (unlisted, [approx. 1.3K in the last 14 days](https://www.hexbear.net/post/195720))
- lemmygrad.ml (508)
- lemmy.ml (474)
- bakchodi.org (286)
- szmer.info (65)
- feddit.it (51)
- sopuli.xyz (31)
- wolfballs.com (29)
- feddit.de (29)
- lemmy.ca (17)
My guess is that the difference at the bottom of the list is due to highly federated instances spreading their user comments over many instances with more activity, and also due to some instances peaking a few months ago and then declining. For those new to user statistics, you'll notice that popularity usually tends to be exponential: more popular things get more popular.
### What was that first one? Hexbear?
Two of the sites listed there, Hexbear (aka. chapo.chat) and Bakchodi, do not federate. They are not part of the Fediverse, but they are using Lemmy. Hexbear is actually running their own *fork* of Lemmy. In that sense it reminds me of Gab, another huge island fork, but only due to size and isolation. While I can't find an admin statement, various Hexbear Gitea issues from 2020 and this comment from December 2021 ["We’re working on bringing Lemmy up to speed with some of the features our “fork” (it’s more of a rewrite) has. When that’s ready we’ll switch to that which will already have federation ready for us."](https://www.hexbear.net/post/163415/comment/2003658) and this from Feb 2022 ["The only issue is that [Hexbear] doesn’t support federation for semi-technical reasons (happy to explain), but that’s going to be fixed (later this year maybe)?"](https://www.hexbear.net/post/174049/comment/2150060) indicate Hexbear is open to the idea but unready ([this 2020 comment](https://www.hexbear.net/post/23488/comment/175031) even states they chose Lemmy precisely because of its federation goal), and Bakchodi appear to have just not set any up (the admin states "Federation is not functional as of now." in a post and nothing more). Contrast both against Gab who cited abuse/security issues and lack of local federation users for their voluntary removal of existing federation.
Another point regarding Hexbear and Bakchodi is that they are continuations of existing popular communities: I believe that Hexbear is a continuation of reddit's banned subreddit /r/ChapoTrapHouse, and Bakchodi is a continuation of the banned /r/chodi (which I believe was banned around the same time as /r/GenZedong's quarantining caused a mass exodus to https://lemmygrad.ml/c/genzedong ). To the best of my knowledge, lemmy.ml, most of lemmygrad, wolfballs and szmer are new original sites rather than an existing active community migrating as a mass.
Most instances are connected into the Fediverse. Hexbear and Bakchodi appears to be the only active non-trivial instances that don't federate.
Due to the political environment of the internet today and the content currently on Lemmy, I personally think it makes sense to classify the current federation networks of Lemmy instances into four loose groups:
- socialist 'left': Primarily value socialism and/or anarchism, and related topics. Generally explicit about their instance's political alignment. The largest group. Examples are lemmy.ml, lemmygrad.ml, midwest.social, and would include hexbear.net if it were connected.
- liberalist 'right': Primarily value freedom of speech and other liberty. While none yet are e~~xplicitly politically-biased through administration~~[[correction]](https://lemmy.ml/post/287918/comment/193438), they do overwhelmingly have users with views typical of the American 'right-wing' as an inevitable result of where they are promoted, the ideas only they tolerate and the existing posts. Examples are wolfballs.com and exploding-heads.com.
- general open: Overall mainstream OR diverse political views, will generally tolerate political instances on both sides of the above divide. Often national instances or 'general-purpose'. mander.xyz is an overt example, gtio.io is also an example. lotide.fbxl.net would be an example, but it's a lotide instance rather than Lemmy.
- anti-intolerant: Primarily value friendliness and inclusivity, and so will readily block instances that tolerate intolerance, such as those in the liberalist 'right' category and potentially those further in the socialist 'left' category. An example might be sopuli.xyz.
These are all politically determined, as unlike Mastodon and Pleroma there don't tend to be any instances based around controversial single topics or around graphic content that causes instances to defederate. I thought there were more instances that blocked both sides of the 'left'/'right' divide, but they don't seem to exist yet (which is a good sign) beyond lemmy.rollenspiel.monster. It is also worth mentioning that lemmy.ml has blocked some instances due to abuse rather than any cultural disagreement.
The first two of the four categories are by far the most popular, even if not the most numerous in instances, probably due to them picking up users being kicked out of reddit and reddit alternatives as they block more and more political subreddits or become unsavory. The earlier kicking of many 'harassment' subreddits from reddit around 2015 lead to many 'right-wing' users to populate Voat and then later bannings lead to communities.win becoming popular, which I believe explains why Lemmy doesn't yet have a strong influx of users who align politically with those banned subreddits and more-so with recently-banned communist subreddits (the core developers' political views and lemmy.ml's reputation may have impacted people moving to instances named after Lemmy or considering hosting new instances, but I suspect it wouldn't affect people who were invited to a place called Wolfballs).
Interestingly, there is already a mirror instance that reposts from reddit: goldandblack.us.to
[fediverse.observer](https://lemmy.fediverse.observer/stats) has some stats. Ignoring the huge outliers in the middle, there has been a jump in growth in the past two months which I would mostly attribute to the influx to [lemmygrad.ml wow look at that second graph](https://lemmy.fediverse.observer/lemmygrad.ml) and the launch of unfederated-but-included bakchodi. Apart from that, there has been a remarkably consistent growth in all the active instances. That's a good sign that this group of communities could last a while.
##### Some concluding thoughts, with regards to reddit
As someone who hasn't really used reddit in many years, I like to promote the view of us being independent, growing our own culture, our own norms and not merely aiming to mirror the same shallow emptiness. The bottom line is, we grow a lot when reddit shuts a place down, and as you can see in some of those stats, growth creates more potential for growth. I think it's important to think about what habits we see now both here and there that we want to encourage, and which habits we don't. Think about what should each community tolerate and reject and enforce (and make no mistake, that answer differs depending on purpose and audience!) and how do we redirect people in the wrong places or teach those who are mistaken? (protip: typing these things out each time is very dumb! That's why we invented FAQ pages!) What struggles did Mastodon face as they started to grow more and more?
Parts of reddit and similar groups will continue to arrive. Look at [this list of communities that used to be allowed](https://en.wikipedia.org/wiki/Controversial_Reddit_communities): it started off with the very blatant controversies like sexualizing minors, moved on to open blatant racism-focused places that conducted raids, and now they're at banning subreddits about a US (former) president and pro-China memes. Now that Lemmy has established itself as the home of some of the most recently banned communities, I personally think it's only a matter of time before reddit pops off a few more communities as they face pressure from media flak, investors or other major influences, and we should prepare for how to handle this: make potentially targeted communities aware that we exist before an incident, and make sure communities have a clear set of rules and guidelines written for the people that come in expecting this to be reddit again. I think this is an opportunity to fix the things we don't want repeated.
Crossgeposted from: https://feddit.de/post/199006
Today, for the first time, more than 30,000 Lemmies were recorded by the crawler in the Lemmy network!\
To celebrate, there is a small Lemmymap update with additional filter options :)
Does anyone know if it is possible to create a new community on another lemmy instance using my lemmy.ml account or do I have to necessarily create a new user on the new instance?
And if the community is already created, is it possible to add moderators from other instances or do community moderators have to be registered to that instance?
Before I met my boyfriend (seahorse) I hadn't heard of Lemmy or the word Fediverse. I didn't know there was this world of federated servers people could host independently that communicate with each other. I am by far not a techy.
He told me he ran an instance. My response was exactly, "What is Lemmy instance? Idk about such things." I gave this silly response because I felt a bit stupid due to my ignorance. Hosting. Servers. What?
During my short time here I have seen a stark contrast between Lemmy, and FB and IG. I feel sort of a sense of leveling up (thanks to him). I still have my accounts on the latter two social media platforms, but dislike them for several reasons.
I like that Lemmy isn't a popularity contest. People don't post pictures depicting a fake perfect life, there is no competition for followers/friends, and no one is trying to sell me something. I hope this sticks.
I hope to expand my use of Lemmy and my knowledge.
Sometimes with new users (especially on instances with not so many users), it happens that 1 user creates many posts in a short time.
2 example Screenshot, from the local timeline. in both cases, the local timeline contains basically only posts from 1 user.
**this is different from spam**, but in a similar way, slightly bad.
So, as a user, i would like to scroll the local timeline, but only seeing posts from 1 user in 1 community makes it uninteresting for me.
But when the posts are themself fine and good, it is not spam. So what i suggest is a change in the lemmy algorithm:
* when a user posts 1 post, nothing changes
* when a user posts 5 posts, which normally would be ordered directly after each other, other posts should be placed in between. So for the first post, still nothing changes, but the later ones are shown slightly below.
* the same for a community: i think it is desirable and makes lemmy more interesting if 1 community does not dominante the timeline even if it has many votes. i think it is desirable and increases the diversity, if other communities are moved in between.
yes i know the answer would be to open a ticket in github. this is not what my intention is here. I want consensus when we all agree on what is good, then a github ticket can be created or something.
(so my intention is also to talk about priorities, since just creating a github issue has a high likelihood to be forgotten)
cc [@firstname.lastname@example.org](https://lemmy.ml/u/nutomic) [@email@example.com](https://lemmy.ml/u/dessalines)
On a community's page there is no post button if you're not subscribed, only a subscribe button which appears a post button. At first I thought it was a rule you had to be subscribed to post in a community, but after I learned that you can post on any community by going to Create Post instead and selecting the community from the dropdown, it's just a pointless annoyance.