Convert Figma logo to code with AI

LemmyNet logolemmy

🐀 A link aggregator and forum for the fediverse

13,113
863
13,113
248

Top Related Projects

46,718

Your self-hosted, globally interconnected microblogging community

13,377

A privacy-aware, distributed, open source social network.

11,786

Synapse: Matrix homeserver written in Python/Twisted.

41,716

A platform for community discussion. Free, open, simple.

6,281

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:

  1. To join an existing instance:

    • Visit join-lemmy.org to find a list of public instances
    • Choose an instance and create an account
  2. 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

46,718

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.

13,377

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.

11,786

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.

41,716

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.

6,281

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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

GitHub tag (latest SemVer) Build Status GitHub issues Docker Pulls Translation status License GitHub stars

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

DesktopMobile
desktopmobile

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?

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, and Community.
  • 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

Community

Code Mirrors

Credits

Logo made by Andy Cuccaro (@andycuccaro) under the CC-BY-SA 4.0 license.