First release of LemmyBB, a federated bulletin board written in Rust

We are excited to announce the release of lemmyBB. This is an alternative frontend for Lemmy, based on the design of phpBB. It turns Lemmy from a link aggregator with upvotes and image previews into a traditional forum, or bulletin board.

Lemmy is a self-hosted discussion platform which supports Activitypub for federation with other servers. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others.

By combining these projects, we get the benefits of both: a stable and performant backend which supports Activitypub federation, has an extensive API with mod tools and much more. Together with a classical frontend that is focused on text-based discussion, with no distraction of voting or overt number of image posts.

The easiest way to try lemmyBB is by signing up on the flagship instance fedibb.ml and joining the discussion. You can also install your own instance by following these instructions. Resource usage is very low as everything is written in Rust (except the PostgreSQL database). Fedibb.ml uses about 70 MB of RAM and a negligible amount of CPU.

There are still many things to work on, and some missing features need to be added. A lot of polishing also needs to be done. Contributions are more than welcome, so if this sounds interesting, consider getting involved!

LemmyBB can also serve as an example of Lemmy’s potential as a generic backend for social media platforms. Instead of starting a project from scratch to write an API, database logic, authentication, federation etc, you could create a frontend for Lemmy. This can be written in your language of choice, and only needs to render HTML, and use the Lemmy API. This doesn’t have to be a forum, a blogging platform or image gallery would also be possible.

To be clear, lemmyBB is not meant to replace phpBB and it will never have all the same features. It was simply much easier to use this approach for someone like me who doesn’t know much about frontend development. In that sense, I want to give a big thanks to the phpBB developers for publishing their work as open source, and making this project possible!

9 Likes

Really interesting we have been trying to use existing codebases in a simuler way in the last few years with #indymediaback and #OGB

Will go and have a prod or two to talk about if this is a good path.

It could make sense to at least relay some of the topics here to the Fediverse using something like LemmyBB. @nutomic is there a feature comparison with Discourse, or something that could help evaluate how to best integrate both software? My intention would be to enable people who do not contribute here because it’s not federated to have a voice, while sedimenting federated conversations into something we can use in the longer term, e.g., by constructing an evolving knowledge base.

The registration interface requires username/password… I was expecting using a Fediverse acct… Is this in the pipes?

What do you mean by fediverse acct, and why do you expect it? Fedibb.ml is another fediverse instance, like lemmy.ml, mastodon.social etc. So when you register an account, you need to provide a username/password for login.

There is no feature comparison with Discourse yet. If you tell me which Discourse features are important, I can tell you if Lemmybb supports them.

I expect being able to use an existing Fediverse account because the whole point of having a federated forum is to be able to “go there” and participate. So if there is a topic on FediBB.ml, I would expect to be able to reply to it directly from where I sit, like I would reply to a publication on any other Fediverse instance…

Most important Discourse features, IMO, are the powerful editor, capacity to interlink with existing topics and posts, and quote things making cross-references. Other things like integrated wiki/shared-editor and the capacity to repurpose any existing content make it much more likely to build knowledge on the long term. Oneboxing is a nice convenience to preview external links.

Oh, for that you need to copy the “fedilink” and paste it into your instance.

Im not exactly sure what you mean with interlinking and cross-references, but i dont think Lemmy has those features yet (and so neither does lemmybb). A federated wiki should really be a separate project, adding that to Lemmy would be way too complex.

1 Like

UX suggestion. Scenario:

  • I’m not logged in and stumble across http://fedibb.ml/
  • I find an interesting topic and click on “Post Reply”
  • Current Behavior: I’m shown a login form
  • Suggested Behavior: In addition to the login form, the id of the corresponding ActivityPub object is shown with an explanation, that one can post a reply to it.

I kind of post minimalist instructions for this, e.g. https://mymath.rocks/objects/1e334ea6-a419-4dff-af9e-15abd028b004

I’m planning on expanding this help page. As stated there, I’m quite unsure what to show. I don’t want to show the full json-ld. So maybe something like Object of Type “Note” with summary “First 97 characters + ellipsis”

1 Like

Thats a good idea. However I dont see any reason why you would render the json-ld on the html page, because thats completely irrelevant for users. It only matters for developers, and they already know how to retrieve object data from an id link using curl or similar.

About rendering arbitrary json-ld objects, I think thats practically impossible because there are so many possible fields, and different ways to encode the same data. Not to mention custom fields. You will necessarily have to limit yourself to a known subset for rendering.

1 Like