What is an instance? what is a federation? what is a server? can someone please describe in simple terms how this all runs and how we as users navigate it?
Welcome to Lemmy/the Fediverse! It’s 95% Reddit ant 5% email.
What is a server?
A server is just a computer that runs software that is always standing ready to do something for a user. For the purposes of our discussion, a server is the computer that runs an instance of Lemmy.
Let’s start with something we’re probably all familiar with: Reddit. The way Reddit works is, it’s a big company that owns (or rents) a bunch of servers. All of the data anyone has ever posted to Reddit, plus the software that makes Reddit go, is stored on these servers. Users open an account with Reddit, and they’re given access to these servers. Reddit controls ALL of them so it doesn’t matter much exactly which server you attach to. They might all be in one location, they might be scattered all over the world, it’s fairly transparent to users. The various websites or apps we (used to) use to connect to Reddit were simply front-ends which allowed us to access the server.
Lemmy is software that does a lot of what Reddit does. It’s software you run on your server which keeps track of users, communities, posts and comments. Unlike Reddit, which keeps its “back end” software a closely guarded secret, Lemmy is open source. Anyone can read the source code or run it on their own server.
What is an instance?
When someone runs a copy of Lemmy on their own server, that is an “instance.” Each Lemmy instance is its own little Reddit. You can sign up for an account on an instance, and the experience is very much like Reddit; “subreddits” are called “communities” here. The owner of the server is the admin, individual members can make posts to communities, comment on those posts, create new communities and moderate them…it’s its own little Reddit. lemmy.world is its own little reddit, sh.itjust.works is its own little reddit. Well what good does a bunch of little Reddits do?
What is a federation?
A federation is a group of independent organizations that work together as a group. Think of the United States of America: 50 states that each have their own constitutions, codes of law, legislatures, executives, courts etc. which are united under one common Federal government. Lemmy works this way; each instance is a member of the Fediverse, a federation of servers that run software which uses the ActivityPub protocol–a standardized way for servers to transfer various kinds of social media data between them.
Every instance of Lemmy is its own website, run on its own hardware, with its own communities, members, admins and such. Each instance will have its own house rules; some allow political discussions, some don’t. Some allow pornography, some don’t. Some restrict community topics to a broad field, like music or video games. Some are general purpose instances. It’s up to the admin of each instance. But, each instance is able to communicate with all of the others, so having an account on one instance allows you to communicate with all the others–with some caveats I’ll talk about later.
In fact, the ActivityPub protocol is used by other services besides Lemmy–another similar service is called Kbin, which is functionally similar but the software is written by different people. Lemmy instances can communicate with Kbin instances and vice versa.
So where every instance is its own little Reddit, all of the instances kinda voltron together to make one big Mega Reddit.
(continued from above because of character limits)
ActivityPub is used for more than just Reddit-likes. Mastodon has a similar micro-blogging format to Twitter, and PeerTube is similar in function to Youtube. There are alternatives to Facebook and I believe Snapchat as well.
You can kind of think of it like email–there is no central email.inc that all emails go through; gmail and protonmail and icloud and compuserve and hotmail and whatnot are all different servers that are capable of using the internet to find each other and send messages back and forth.
How all this runs.
You sign up for an account on an instance, say lemmy.world. This is your local instance; your local instance will handle all of the data going to and from you. If you create a community, it will be stored on your local instance. You may notice that instance addresses look a little like email addresses, ie !nostupidquestions@lemmy.world. That notes which instance that particular community is on. If you don’t see an instance name appended, it’s on your local instance.
When viewing lists of posts or communities, you are given an option to search for Subscribed, Local, and All. Subscribed will show you only communities you have subscribed to, it’s like your Reddit home feed. Local will show you only posts or communities made to your local instance. All will show you posts or communities from across the Fediverse. You can subscribe to, post and comment on communities from other instances, like I am doing now (my local instance is sh.itjust.works, I am posting to lemmy.world). It looks and works just like posting to my home instance.
A major difference users of Lemmy/the Fediverse should keep in mind: Reddit had platform-wide rules of conduct, which individual subreddits were allowed to expand upon. Lemmy does not have central admins or owners like u/spez to enforce platform-wide policy; those general rules come from the admins of each individual instance, which community moderators may add to. So rules and norms can vary between each instance, and when posting on an instance that isn’t your own, it’s a good idea to read the sidebar of that instance’s homepage to review them.
Thank you so much for the breakdown. I’m gonna reference back to this a lot while i try to wrap my head around this new space. I’m shocked at the amount of informative replies i’ve received and your guys’ good-spirited attitude towards reddit transplants like myself.
I was a long time reddit lurker but I feel compelled to post and it’s responses like yours that made me feel comfortable doing so.
TLDR: Thank you so much to everyone who broke it down for me. I’m having lots of fun in this space because of y’all and I am so excited to continue contributing to it.
Great explanation, thanks!
Thank you for your thorough explanation, I get it now!
That does clear it up some ty
When you visit other instances through your home instance there is a delay/difference though as I assume your home instance has to get info from the remote instance before it can show it to you?
Or is that just because my account is on a tiny instance and I’m the first one visiting a lot of the communities?
When you visit other instances through your home instance there is a delay/difference though as I assume your home instance has to get info from the remote instance before it can show it to you?
Yes, but it helps if someone else on your home instance has subscribed before, since it would already have that information.
Or is that just because my account is on a tiny instance and I’m the first one visiting a lot of the communities?
Also probably this.
This is awesome!
deleted by creator
Instance == server == each individual lemmy (Beehaw is its own instance, so is lemmy.ca, etc)
Basically, reddit was a bunch of communities on one server (the reddit servers)
Each lemmy instance has its own collection of communities, and each lemmy is connected together, so users from any individual lemmy can read and interact with communities and users from other lemmys (this is federation)
All of these lemmy instances federating makes up the greater lemmy network as a whole
Thank you for this.
How does one go about finding communities from other instances and connect with them?
Use your instance’s search feature. You can search
- Name of community:
No Stupid Questions
- By using !community@instance syntax:
!nostupidquestions@lemmy.world
- URL of the community:
https://lemmy.world/c/nostupidquestions
First option won’t work if your instance hasn’t federated the community yet. The last option is best in my opinion.
Some small addition to the last option:
If you want to browse a community from a specific instance on your home instance you have to add the ‘home’ instance.
For example your home instance (where you did register your account) is Lemmy.ml and the community you want to interact with is on Lemmy.world you would use:
Https://Lemmy.ml/c/nostupidquestions@lemmy.world
In order to be able to post, reply etc
- Name of community:
https://lemmyverse.net/ is a great tool for searching for communities and instances.
https://browse.feddit.de is great and so is https://subs.rehab
great explanation
Doesn’t this then make, a bunch of communities with same names like ‘iOS’. Then it feels fractured across a bunch of groups of same enthusiasts. Or what do I misunderstand about this or it’s benefits? I’m legitimately curious.
Yes, it is fractured, and that is by intention. The point is that no one single person can control the entirety of the Lemmyverse. Suppose a spez comes along and tries to ruin things. Then, at worst, he can only destroy 1 instance. Even if he destroys the biggest instance, then it’s a big loss, but it’s not the end of the entire platform. Lemmyverse lives on.
As for how the fracturing affects the user - not much. As mentioned in other comments, each instance can communicate seamlessly between each other. I can post to other instances, and other instances can post to mine. All information is shared.
One caveat, though, is that the Lemmyverse is still very much in its early growth stages. So you’ll find a bunch of communities spread out over a bunch of instances that do virtually the same thing. It’ll look like the community is fractured. But over time, users are probably just going to settle on a single community, we just don’t know which one yet. Think of it like subreddits on Reddit. There’s basically always 3 subreddits about the same topic, but there’s always the one major subreddit, which is usually the one that you’re looking for. We haven’t reached that point yet - we’re still waiting to see which is going to be the “major” community for most topics.
Yes, but technically no. The full name includes the instance, for example iOS@example.instance.
Similarly, you had multiple subreddits dedicated to a single topic, with slight variations in their name.
I recommend to subscribe to anything which seems interesting (including duplicates), then unsubscribing from annoying stuff.
Overall great explanation, accurate and short.
The one thing I dislike is the usage of ‘lemmy’, which you seem to use as a synonym for ‘instance’. That is both inconsistent (you already established terms for that; ‘instance’ and ‘server’), and inaccurate.
Lemmy is the whole, the network of federated and defederated instances.
Hello this is my first comment on Lemmy, so consider me an expert.
The idea of ‘federated’ websites is that you can use your login from one server to interact with another server. An analogy is email: you can have a gmail account that can send a message to a yahoo account via shared and open source protocols (e.g. SMTP).
One question I do have though; if I create my account on Lemmy.world and then for whatever reason that instance disappears; does my account disappear or is it recoverable on another instance?
Your account would disappear and unrecoverable from other instance, but your comment history can still be found in other federated servers, so it’s not a complete loss. For example, should lemmy.world disappear someday, a copy of your comment history is still preserved in my server at https://c.calciumlabs.com/u/jpgb@lemmy.world
Your account@lemmy.world would disappear yes, but you could create account@other.server.
Your account would disappear, yes. It’s the same as email really. If Gmail were to be shutdown, your Gmail account would go with it even though everybody using other email services would still see your already sent emails in their local inboxes
What is an instance?
An instance is a deployment of Lemmy.
sh.itjust.works
,lemmy.ml
,lemmy.world
,ani.social
are all instances.what is a federation?
Federation is the ability for these instances to communicate with each other. I can make post in this community (
!nostupidquestions@lemmy.world
) using my account (@hitagi@ani.social
), while you are reading it on another instance (sh.itjust.works
).It’s like how you can send email from
gmail.com
toyahoo.com
oroutlook.com
.what is a server?
In simpler ways, the same as instance, but technically it also means the computer/hardware that Lemmy is running on.
can someone please describe in simple terms how this all runs and how we as users navigate it?
-
Make an account in any server you like.
join-lemmy.org
has a long list of them. -
Subscribe to communities that you like. There’s a search feature above or you can search in
lemmyverse.net
. -
Use it as you normally would use Reddit.
Well said!
Well said!
-
Here’s a reddit analogy:
An instance is an independent reddit, filled with communities that are an instance’s subreddits. Federation is an interconnection with all the different instances. You, as a user, can interact (post, comment, etc) on all different instances, and subscribe to different communities on different instances.
An instance/server is like an email provider but for your
RedditLemmy account.An instance is like an independent version of Reddit
Each Reddit (instance) has its own set of subreddits (called communities)
Whichever instance you’re on, you can access communities in almost any other instance
So in sum… Just sign up to an instance, subscribe to communities that interest you, and don’t overthink it!
Have a look at this explanation
If you want to know more, here’s a starting guide
Imagine instances as treehouses - then servers would be the trees they’re built on.
You enter a treehouse and sit down - that’s your home instance. You can talk to others in your treehouse, you can share stuff, but not between treehouses. You can leave and enter another treehouse (make another account), but what if there was a better way to talk?
That’s where federation comes in. Two treehouses can choose to set up a telephone line with two cans and a string (federate). Then the users in one can use it to talk to another without actually being present (having an account) in that treehouse.
Hey! Could you maybe edit the title, to be more descriptive of what you are asking? Something like: “could someone explain lemmy to me in simple terms?”.
Lemmy is an open source software that anyone can run on their own computers. People can’t run their own reddit because its source code is closed. When a person runs lemmy on their server (computer), it has its own domain name (like google.com). Each domain name is a different instance, like lemmy.world or sh.itjust.works. These different instances can talk to each other and exchange posts and comments. This is called federation. This means you can create an account on lemmy.world and post comments and posts on sh.itjust.works. There are over 1000 instances. They can all talk to each other unless they choose not to. When an instance decides to block another instance, it is called defederation. Each instance is its own seperate thing and instances talk to each other in the background. Your account data is only stored on the instance you signed up on.
Federation is a bunch of websites that agreed to share their content between themselves. They use an agreed upon protocol for threads, posts (or whatever you call it) and other websites can fetch these posts. These websites are called “instances”. That also works for users who can comment, upvote or whatever on any post and their comments and upvotes will go to all other websites that are in the federation.
For anology, you probably know how tweets are usually posted as screenshots on reddit. Imagine you could have that tweet just show up in reddit as a regular post. That can be done if Twitter and Reddit would agree to federate with each other and use one protocol.
Think of it like email. Email is a protocol that people can use, but email isn’t “owned” by anything. Instead, different mail servers (like outlook, Gmail, proton, etc) use that protocol to talk to each other.
Lemmy uses a protocol called activity pub, and different instances like lemmy.world, lemmy.ml, etc can all talk to each other using that protocol.
You’re on the instance sh.itjust.works, while I’m on lemmy.xylight.dev, but you can still see my comment!