Top Related Projects
Your self-hosted, globally interconnected microblogging community
A privacy-aware, distributed, open source social network.
Synapse: Matrix homeserver written in Python/Twisted.
A platform for community discussion. Free, open, simple.
HumHub is an Open Source Enterprise Social Network. Easy to install, intuitive to use and extendable with countless freely available modules.
Quick Overview
Lemmy is an open-source, federated social news and link aggregation platform. It's designed to be self-hostable and decentralized, allowing communities to create and manage their own instances while still being able to communicate with other Lemmy instances across the fediverse.
Pros
- Decentralized and federated, promoting user privacy and community autonomy
- Open-source, allowing for transparency and community contributions
- Customizable and self-hostable, giving users control over their data
- Supports ActivityPub protocol, enabling interoperability with other federated platforms
Cons
- Smaller user base compared to centralized alternatives like Reddit
- May require technical knowledge for self-hosting and maintenance
- Federation can lead to potential inconsistencies in content moderation across instances
- Limited mobile app support compared to more established platforms
Getting Started
To get started with Lemmy, you can either join an existing instance or set up your own:
-
To join an existing instance:
- Visit join-lemmy.org to find a list of public instances
- Choose an instance and create an account
-
To set up your own instance:
- Ensure you have Docker and Docker Compose installed
- Clone the Lemmy repository:
git clone https://github.com/LemmyNet/lemmy.git
- Navigate to the docker folder:
cd lemmy/docker/prod
- Copy the example config file:
cp .env.example .env
- Edit the
.env
file to configure your instance - Start the Lemmy instance:
docker-compose up -d
For more detailed instructions and configuration options, refer to the Lemmy documentation.
Competitor Comparisons
Your self-hosted, globally interconnected microblogging community
Pros of Mastodon
- Larger and more established user base, leading to a more active community
- More extensive documentation and third-party app ecosystem
- Built-in support for content warnings and custom emoji
Cons of Mastodon
- Higher resource requirements for hosting instances
- Less flexibility in customizing the overall structure and functionality
- Steeper learning curve for new users due to its complexity
Code Comparison
Mastodon (Ruby on Rails):
class Status < ApplicationRecord
include Paginable
include Cacheable
include StatusThreadingConcern
include RateLimitable
rate_limit by: :account, family: :statuses
Lemmy (Rust):
#[derive(Queryable, Identifiable, PartialEq, Debug, Clone)]
#[table_name = "post"]
pub struct Post {
pub id: i32,
pub name: String,
pub url: Option<String>,
pub body: Option<String>,
Both projects are open-source federated social media platforms, but Lemmy focuses on link aggregation and discussions, while Mastodon is more of a microblogging platform. Lemmy is written in Rust, which may offer performance benefits, while Mastodon uses Ruby on Rails, which is known for its rapid development capabilities.
A privacy-aware, distributed, open source social network.
Pros of Diaspora
- Longer development history and more mature codebase
- Larger user base and community support
- More extensive federation capabilities with other platforms
Cons of Diaspora
- Written in Ruby, which may have a steeper learning curve for some developers
- More complex setup and deployment process
- Slower development pace in recent years
Code Comparison
Diaspora (Ruby):
class Person < ActiveRecord::Base
include Diaspora::Federated::Base
include Diaspora::Guid
include Diaspora::Socketable
include Diaspora::Taggable
include Diaspora::Searchable
end
Lemmy (Rust):
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct Person {
pub id: PersonId,
pub name: String,
pub avatar: Option<String>,
pub banned: bool,
pub published: chrono::NaiveDateTime,
}
Both projects aim to create decentralized social networking platforms, but they differ in their implementation languages and architectural approaches. Diaspora has a more established presence and wider federation capabilities, while Lemmy offers a more modern tech stack with Rust and potentially better performance. The choice between them may depend on specific requirements, developer preferences, and desired features for a decentralized social network implementation.
Synapse: Matrix homeserver written in Python/Twisted.
Pros of Synapse
- More mature and widely adopted project with a larger user base
- Supports end-to-end encryption for secure communications
- Offers a broader range of features and integrations
Cons of Synapse
- Higher resource consumption and can be more challenging to self-host
- Steeper learning curve for developers and administrators
- Less focused on social media-style interactions compared to Lemmy
Code Comparison
Synapse (Python):
class FederationServlet(servlet.ServletBase):
def __init__(self, hs):
super().__init__()
self.hs = hs
self.clock = hs.get_clock()
Lemmy (Rust):
pub struct Community {
pub id: i32,
pub name: String,
pub title: String,
pub description: Option<String>,
pub removed: bool,
}
Both projects use different programming languages, with Synapse written in Python and Lemmy in Rust. Synapse's code structure reflects its focus on federation and real-time communication, while Lemmy's code is more oriented towards community-driven content and discussions. The code snippets demonstrate the different approaches to defining core components in each project.
A platform for community discussion. Free, open, simple.
Pros of Discourse
- More mature and widely adopted platform with a larger community
- Extensive plugin ecosystem and customization options
- Built-in features for SEO and content discovery
Cons of Discourse
- Heavier resource requirements and more complex setup
- Less focus on federation and decentralization
- Ruby-based backend may be less familiar to some developers
Code Comparison
Discourse (Ruby):
class Post < ActiveRecord::Base
belongs_to :topic
belongs_to :user
has_many :post_replies
validates :raw, presence: true, length: { minimum: 5 }
end
Lemmy (Rust):
#[derive(Queryable, Identifiable, Serialize, Deserialize, Clone, Debug)]
pub struct Post {
pub id: i32,
pub name: String,
pub url: Option<String>,
pub body: Option<String>,
pub creator_id: i32,
pub community_id: i32,
pub published: chrono::NaiveDateTime,
}
Both projects use different programming languages and frameworks, reflecting their distinct approaches to forum software development. Discourse's Ruby code showcases its ActiveRecord ORM usage, while Lemmy's Rust code demonstrates a more low-level, performance-oriented approach.
HumHub is an Open Source Enterprise Social Network. Easy to install, intuitive to use and extendable with countless freely available modules.
Pros of HumHub
- More comprehensive social networking features, including user profiles, spaces, and content streams
- Highly customizable with a modular architecture and extensive plugin ecosystem
- Established project with a larger community and more frequent updates
Cons of HumHub
- Heavier resource requirements due to its more complex feature set
- Steeper learning curve for developers and administrators
- Less focus on federation and decentralization compared to Lemmy
Code Comparison
HumHub (PHP):
public function actionIndex()
{
$searchModel = new ContentSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('index', [
'dataProvider' => $dataProvider,
'searchModel' => $searchModel
]);
}
Lemmy (Rust):
pub async fn list(
context: &Data<LemmyContext>,
form: &ListCommunities,
) -> Result<ListCommunitiesResponse, LemmyError> {
let communities = Community::list(context.pool(), form).await?;
Ok(ListCommunitiesResponse { communities })
}
The code snippets demonstrate different approaches to handling community listings, reflecting the languages and frameworks used by each project.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
English | Español | Ð ÑÑÑкий | æ±è¯ | æ¼¢èª | æ¥æ¬èª
Lemmy
A link aggregator and forum for the fediverse.
Join Lemmy
·
Documentation
·
Matrix Chat
·
Report Bug
·
Request Feature
·
Releases
·
Code of Conduct
About The Project
Desktop | Mobile |
---|---|
Lemmy is similar to sites like Reddit, Lobste.rs, or Hacker News: you subscribe to forums you're interested in, post links and discussions, then vote, and comment on them. Behind the scenes, it is very different; anyone can easily run a server, and all these servers are federated (think email), and connected to the same universe, called the Fediverse.
For a link aggregator, this means a user registered on one server can subscribe to forums on any other server, and can have discussions with users registered elsewhere.
It is an easily self-hostable, decentralized alternative to Reddit and other link aggregators, outside of their corporate control and meddling.
Each Lemmy server can set its own moderation policy; appointing site-wide admins, and community moderators to keep out the trolls, and foster a healthy, non-toxic environment where all can feel comfortable contributing.
Why's it called Lemmy?
- Lead singer from Motörhead.
- The old school video game.
- The Koopa from Super Mario.
- The furry rodents.
Built With
Features
- Open source, AGPL License.
- Self hostable, easy to deploy.
- Clean, mobile-friendly interface.
- Only a minimum of a username and password is required to sign up!
- User avatar support.
- Live-updating Comment threads.
- Full vote scores
(+/-)
like old Reddit. - Themes, including light, dark, and solarized.
- Emojis with autocomplete support. Start typing
:
- User tagging using
@
, Community tagging using!
. - Integrated image uploading in both posts and comments.
- A post can consist of a title and any combination of self text, a URL, or nothing else.
- Notifications, on comment replies and when you're tagged.
- Notifications can be sent via email.
- Private messaging support.
- i18n / internationalization support.
- RSS / Atom feeds for
All
,Subscribed
,Inbox
,User
, andCommunity
.
- Cross-posting support.
- A similar post search when creating new posts. Great for question / answer communities.
- Moderation abilities.
- Public Moderation Logs.
- Can sticky posts to the top of communities.
- Both site admins, and community moderators, who can appoint other moderators.
- Can lock, remove, and restore posts and comments.
- Can ban and unban users from communities and the site.
- Can transfer site and communities to others.
- Can fully erase your data, replacing all posts and comments.
- NSFW post / community support.
- High performance.
- Server is written in rust.
- Supports arm64 / Raspberry Pi.
Installation
Lemmy Projects
Support / Donate
Lemmy is free, open-source software, meaning no advertising, monetizing, or venture capital, ever. Your donations directly support full-time development of the project.
Lemmy is made possible by a generous grant from the NLnet foundation.
Crypto
- bitcoin:
1Hefs7miXS5ff5Ck5xvmjKjXf5242KzRtK
- ethereum:
0x400c96c96acbC6E7B3B43B1dc1BB446540a88A01
- monero:
41taVyY6e1xApqKyMVDRVxJ76sPkfZhALLTjRvVKpaAh2pBd4wv9RgYj1tSPrx8wc6iE1uWUfjtQdTmTy2FGMeChGVKPQuV
Contributing
Read the following documentation to setup the development environment and start coding:
When working on an issue or pull request, you can comment with any questions you may have so that maintainers can answer them. You can also join the Matrix Development Chat for general assistance.
Translations
- If you want to help with translating, take a look at Weblate. You can also help by translating the documentation.
Community
Code Mirrors
Credits
Logo made by Andy Cuccaro (@andycuccaro) under the CC-BY-SA 4.0 license.
Top Related Projects
Your self-hosted, globally interconnected microblogging community
A privacy-aware, distributed, open source social network.
Synapse: Matrix homeserver written in Python/Twisted.
A platform for community discussion. Free, open, simple.
HumHub is an Open Source Enterprise Social Network. Easy to install, intuitive to use and extendable with countless freely available modules.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot