Today I learned about Sublinks (here), an open-source project that aims to be a drop-in replacement for the backend of Lemmy, a federated link aggregator and microblogging platform. Sublinks is designed to be initially API-compatible with Lemmy, allowing existing Lemmy clients, such as Lemmy-UI, to integrate seamlessly.

The project is written in Java, which may introduce some overhead but is chosen for its maintainability and familiarity among a wider pool of developers. The Sublinks team prioritizes a more inclusive and less toxic development environment, and the project has already attracted more developers than Lemmy.

While Sublinks is starting with 1:1 compatibility, future plans include implementing additional features that the Lemmy developers have not pursued. This could lead to a divergence in functionality between the two platforms as Sublinks evolves beyond its initial compatibility phase.


README

GitHub stars GitHub tag (latest SemVer) gradle workflow GitHub issues License

Sublinks

A decentralized, censorship-resistant, and privacy-preserving social network.

About

Sublinks, crafted using Java Spring Boot, stands as a state-of-the-art link aggregation and microblogging platform, reminiscent yet advanced compared to Lemmy & Kbin. It features a Lemmy compatible API, allowing for seamless integration and migration for existing Lemmy users. Unique to Sublinks are its enhanced moderation tools, tailored to provide a safe and manageable online community space. Embracing the fediverse, it supports the ActivityPub protocol, enabling interoperability with a wide range of social platforms. Sublinks is not just a platform; it’s a community-centric ecosystem, prioritizing user experience, content authenticity, and networked social interaction.

Features

  • Open source, MIT 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.

Contact

Contributing

Support / Donate

Sublinks is free, open-source software, meaning no advertising, monetizing, or venture capital, ever. Your donations directly support full-time development of the project.

    • daddyjones@lemmy.world
      link
      fedilink
      English
      arrow-up
      0
      ·
      4 months ago

      I disagree - Java seems like the ideal choice for this. I might be in the minority in that view, though. Java seems to get a lot of hate.

      • SorteKanin@feddit.dk
        link
        fedilink
        English
        arrow-up
        0
        ·
        4 months ago

        Java seems to get a lot of hate

        Well, lots of people don’t like it. Actually according to StackOverflow’s 2022 survey, more people who have used Java don’t want to keep using it than those who do want to keep using it (54% vs 46% roughly). So yea, you are in the minority in that way.

        Meanwhile Rust is well-liked by most people who use it (roughly 87%).

          • SorteKanin@feddit.dk
            link
            fedilink
            English
            arrow-up
            0
            ·
            4 months ago

            That could be part of the explanation, but I don’t think it upweighs the ~40% difference between Java love and Rust love. That is quite a large gap.

            • BURN@lemmy.world
              link
              fedilink
              English
              arrow-up
              0
              ·
              4 months ago

              People who seek out rust are likely people who want to use rust. Java is still a huge player in enterprise dev, where a significant portion of active developers are. So not everyone using Java wants to use Java, but nearly everyone using rust wants to use rust.

      • AlexWIWA@lemmy.ml
        link
        fedilink
        English
        arrow-up
        0
        ·
        edit-2
        4 months ago

        Rust is rapidly gaining popularity and it’s popular with the type of people who would use Lemmy. There aren’t contributors because there aren’t many users.

        Though like you said, time will tell

        • Rooki@lemmy.worldM
          link
          fedilink
          English
          arrow-up
          0
          ·
          4 months ago

          For me i dont see any gains in popularity. Java IS popular right now, not in 10 years. Java is mature enough.

          • Nate Cox@programming.dev
            link
            fedilink
            English
            arrow-up
            0
            ·
            4 months ago

            It’s cool to like Java, I’m not hating on it, but it’s just silly to pretend that Rust isn’t popular today.

            Rust is used in fewer corporate environments, no doubt there, the Java inertia is strong… but a glance at any moderately recent dev survey should indicate pretty clearly that Rust is on a lot of devs minds and is well received.

              • Nate Cox@programming.dev
                link
                fedilink
                English
                arrow-up
                0
                ·
                4 months ago

                Yep. The job market isn’t as strong for rust, which is what that chart is showing you. Corporate acceptance != popularity.

                Rust is #6 on the Stack Overflow developer survey in popularity. https://survey.stackoverflow.co/2023

                Again, I don’t know why the community is insisting on making this a dick measuring contest for languages. People love rust. People love Java. I know people who still love Perl. I know one guy who really seems to look fondly on his Fortran days. they’re all fine.

                Just be happy that someone is excited enough to write some code to make the fediverse a little more diverse and maybe cool.

                • Rooki@lemmy.worldM
                  link
                  fedilink
                  English
                  arrow-up
                  0
                  ·
                  4 months ago

                  Correct. But those accusations that java was a bad choice i just cant have it. This isnt “I love Rust” or “I love XYZ Programming language” it was “F*ck you for using java”.

                • Blaze@reddthat.com
                  link
                  fedilink
                  English
                  arrow-up
                  0
                  ·
                  4 months ago

                  Just be happy that someone is excited enough to write some code to make the fediverse a little more diverse and maybe cool.

                  Sounds like the most positive approach.

                  The thread from a month ago was really negative towards Java, it was surprisingly aggressive

            • Blaze@reddthat.com
              link
              fedilink
              English
              arrow-up
              0
              ·
              4 months ago

              Then how do you explain there is no major contributor to Lemmy besides the two main devs?

              • SorteKanin@feddit.dk
                link
                fedilink
                English
                arrow-up
                0
                ·
                edit-2
                4 months ago

                At the scale of having a handful of contributors, it’s more likely random variance than due to the language you’ve chosen. The sample size is simply too small.

                I can speak for myself - I know Rust very well but I simply don’t have the time to contribute to Lemmy’s code (I’m also spending some time already being an admin for Feddit.dk and I feel that is all I can muster).

                Getting contributors to open source projects is never easy, regardless of programming language.

                But I mean… there is no problem with competition right. Maybe it’ll turn out that sublinks will have more development with more contributors. But it has yet to be shown, there are also only 1 or 2 developers working on sublinks at the moment, if you check the github contributor stats.

              • Nate Cox@programming.dev
                link
                fedilink
                English
                arrow-up
                0
                ·
                4 months ago

                Well, for one thing federated message boards are incredibly niche to start with, and the pool of people willing to work on one for free in their spare time is bound to be tiny aside from language concerns. I know we all want the fediverse to be the hot thing that everyone uses, but that ain’t reality.

                I’m not exactly seeing a massive contributor pool for sublinks here either.

  • Mwalimu@baraza.africa
    link
    fedilink
    English
    arrow-up
    0
    ·
    4 months ago

    Something feels off with this post. It comes off as “we are better than Lemmy” as if there is any competition and awards to be won. To say Lemmy’s development is “toxic” and this project is “more inclusive and less toxic” without backing it up with evidence is unfair.

      • loki@lemmy.ml
        link
        fedilink
        English
        arrow-up
        0
        ·
        edit-2
        4 months ago

        It seems like they’re trying to appeal to admin/users who despise where the developers of Lemmy come from and make them move away from Lemmy to their codebase.

        Their “United States of Amewrica” on their github seems all too intentional.

        But options are always good because the fediverse is all about options. If Lemmy gets too controversial, instance admins can hopefully move over to sublinks without losing functionality.

      • nutomic@lemmy.ml
        link
        fedilink
        English
        arrow-up
        0
        ·
        4 months ago

        I see that comment but somehow cant fetch it from lemmy.ml. Would you mind asking what exactly they mean by “toxic development community”? Its honestly the first time I heard something like this about Lemmy.

        • SorteKanin@feddit.dk
          link
          fedilink
          English
          arrow-up
          0
          ·
          4 months ago

          what exactly they mean by “toxic development community”?

          I’m not sure exactly what they mean by it either, but I do think Lemmy could do more to be welcoming to more outside contributors. It would probably also be a better use of your time - to scale Lemmy development, it would be better to spend time recruiting and training contributors rather than just spend all your own time coding. You (the main two devs) know the code better than anyone else. It would be great use of your time to spread that knowledge to more contributors.

          Sublinks for instance also uses the GitHub projects as a kind of publicly viewable backlog of issues and a roadmap. I think especially a roadmap is something a lot of users would like for Lemmy as well. It would be good use of your time to produce a roadmap of some kind. Doesn’t have to be on GitHub obviously, but just any kind of roadmap.

          • nutomic@lemmy.ml
            link
            fedilink
            English
            arrow-up
            0
            ·
            4 months ago

            Sure being more welcoming to outside contributors sounds good. Do you have any concrete suggestions how to recruit and train them? We do have some community contributors, but they seem very limited by the amount of time they have for Lemmy after their fulltime job.

            Once the new round of NLnet funding is finalized we will publish those milestones. However Im not sure if a backlog like the one you linked is really helpful, it would take a significant amount of time to manage for little benefit. After all every open issue on the Lemmy Github is up for grabs for anyone to implement it.

        • SorteKanin@feddit.dk
          link
          fedilink
          English
          arrow-up
          0
          ·
          4 months ago

          Would you mind asking what exactly they mean by “toxic development community”? Its honestly the first time I heard something like this about Lemmy.

          Okay so I wasn’t sure before but I think this issue might be a good example: https://github.com/LemmyNet/lemmy/issues/4433

          Yours and dessalines comments all come across as defensive or dismissive. The comments make it sound like you are more interested in dismissing the bug than actually acknowledging it.

          This is definitely not a way to approach a bug report. You need to be much more understanding of bug reports (especially ones as serious as this one) and display a willingness to fix things, and follow through with it.

          I don’t think Lemmy will work out in the long term if this kind of attitude continues.

  • Fal@yiffit.net
    link
    fedilink
    English
    arrow-up
    0
    ·
    4 months ago

    Imagine choosing to write something in java versus rust. Amazing

    • stevecrox@kbin.run
      link
      fedilink
      arrow-up
      0
      ·
      4 months ago

      Every programming languages has communities built around them.

      Its becoming clear Rust solves a lot of C/C++ type problems and the embedded communities are definitely shifting over.

      Apache is the primary community for Java, a quick look at their project list shows it’s entirely web servers, data engineering and clustered projects for distributed computing.

      Personally if you asked me to solve this problem I would use Spring Boot with various Spring libraries for talking to the caddy, user control, etc… Looking at the project, its exactly what they have done

  • mox@lemmy.sdf.org
    link
    fedilink
    English
    arrow-up
    0
    ·
    4 months ago

    Despite disliking Java, I’m glad to see another implementation of the platform we’re all using, as it makes this part of the fediverse less dependent on any particular development team.

    Why in the world did you enclose the readme in a code fence, though? It would be so much better to let the markdown do its job. My eyes are burning.

    • nutomic@lemmy.ml
      link
      fedilink
      English
      arrow-up
      0
      ·
      4 months ago

      I agree that its good for redundancy to have another development team for Lemmy. However they will be busy for the next few years redoing all the work we have already done for Lemmy. It would be much more efficient if they simply forked the existing Rust code and implemented their desired features on top. That would also make it easy to merge their changes back into Lemmy.

    • ChasingEnigma@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      4 months ago

      Why in the world did you enclose the readme in a code fence, though? It would be so much better to let the markdown do its job. My eyes are burning.

      I wanted to use a quote to differentiate it a bit from the post but Lemmy-ui only quotes the first line.

  • imaqtpie@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    0
    ·
    4 months ago

    Since people in this thread seem to be more knowledgeable about programming languages than me, I’m curious how you all feel about PieFed.

    It’s a similar project, describes itself as

    a Lemmy/kbin clone written in Python with Flask

    Promising? Potential concerns?

    • stevecrox@kbin.run
      link
      fedilink
      arrow-up
      0
      ·
      4 months ago

      I wouldn’t get massively excited.

      Python is a scripting language, its shines when you want to write a stand alone file which takes an input and performs a task. Scripting languages are great to learn as a first language and so python is wonderful for non developers.

      The issue you hit is the build management solutions for Python are kind of broken and these help support and encourage good development practice so a lot of Python projects end up a collection of scripts rather than a mature project. You can have good projects but…

      In raw benchmarks Java has 90% of the performance of C/C++, but in reality Java is more performant because developers get bogged down in memory management on C/C++ and they get more time to optomise in Java as a result. I’m not sure where Rust will come out to be honest.

      Python benchmarks at 50% the performance of Java, in reality I’ve found code ends up slightly worse because Python is procedural, library support and streaming is poorly supported.

      Take library support, Spring really rose to prominese because of ‘hibernate’ which was a way to abstract talking to different databases through objects, you could switch from PostgreSQL to Oracle through config. Spring data has dumbed this down so I define a plain old Java object and Spring will generate everything I need.

      Python expects you to hand craft SQL statements and every database extends SQL slightly differently, so i need to write SQL for every operation and manage/own it. So the win in being able to quickly read/write to a database (since you don’t have to learn anything about Spring) is quickly ruined because of the all the boilerplate and error handling you now have to write.

  • nutomic@lemmy.ml
    link
    fedilink
    English
    arrow-up
    0
    ·
    4 months ago

    I actually talked with Jason (one of the Sublinks maintainers) a while ago, asking about the features he was missing from Lemmy. Turns out it was just one or two minor API changes that could be easily implemented, but he never even bothered to open an issue about it. I think they just have fun reimplementing Lemmy, but it would take at least multiple years to catch up with the current features of Lemmy. And by then Lemmy will of course have many more features and improvements. So I wouldnt expect that this ever becomes useful for production.

    • Mwalimu@baraza.africa
      link
      fedilink
      English
      arrow-up
      0
      ·
      4 months ago

      And if they develop a good tool, that is also fine. The more the merrier. But I think their resources may have served more people if they were not duplicating effort and rather contributed into existing work. To each their own.

      • masterspace@lemmy.ca
        link
        fedilink
        English
        arrow-up
        0
        ·
        edit-2
        4 months ago

        I mean, isn’t the whole point that they didn’t want to have to learn Rust just to contribute to Lemmy?

        Given how few day to day Rust devs there are compared to Java / C# / Typescript, it was only a matter of time before someone wrote a more popular version of the server in a different language.

        • Mwalimu@baraza.africa
          link
          fedilink
          English
          arrow-up
          0
          ·
          4 months ago

          Still fair point. The grind is in placing the new reimplementation of federated link aggregator in opposition to Lemmy as if they are competing, and sadly to trash Lemmy and its developers.

        • nutomic@lemmy.ml
          link
          fedilink
          English
          arrow-up
          0
          ·
          4 months ago

          I was a Java developer before starting to contribute to Lemmy. Didnt know anything about Rust, just wrote code and resolved compiler errors until things worked. Rust is definitely not as hard to learn as some people think.

      • AtmaJnana@lemmy.world
        link
        fedilink
        English
        arrow-up
        0
        ·
        4 months ago

        FYI, in case you did not notice: nutomic, the user you’re replying to, is one of the two creators of Lemmy. Make of that what you will.

        • yuriy@lemmy.world
          link
          fedilink
          English
          arrow-up
          0
          ·
          4 months ago

          Fun amount of shade-throwing from a dev, that gives me a lot of confidence in the platform.

          • nutomic@lemmy.ml
            link
            fedilink
            English
            arrow-up
            0
            ·
            4 months ago

            No schade-throwing, but I know how much effort it took to get Lemmy ready for production. Namely multiple years of fulltime work. Sublinks seems to have only volunteer contributors, so it will likely take even more time.