Lemmy is structured in a way that backend (database, api, federation etc) and frontend (html, css, javascript) are completely separate. This makes it possible to create other frontends which can take the place of lemmy-ui. I have long been playing with the thought of having a Lemmy frontend that looks more like a traditional forum. Now I finally found some time to work on this, and get an initial proof of concept working.

To reduce the amount of work, the project uses HTML templates and CSS themes from phpBB, which are open source under GPLv2. This also has the advantage that many preexisting phpBB themes can be used for lemmyBB. It is written in Rust, because it allows for tight integration with the Lemmy API, and is generally a great language for webservers.

For now the funcionality is very basic, but nonetheless its already usable. You can:

  • browse the local post listing
  • browse comments
  • login and logout
  • create new posts and comments

To give it a try, run the following commands on your local computer, replacing lemmy.ml with your own instance:

git clone https://github.com/Nutomic/lemmyBB.git
LEMMY_INTERNAL_HOST=https://lemmy.ml cargo run

If there is any specific feature that you would like to see added, please open an issue. For now there arent any instructions for deploying lemmyBB to a server. If you would like to do that, please open an issue as well.

This post was made from lemmyBB.

  • @nutomic@lemmy.mlOPM
    link
    fedilink
    122 years ago

    By the way, contributions to this project are very much welcome. It doesnt even require knowledge of Rust programming, many things can be improved simply by editing the HTML templates.

  • heluecht
    link
    fedilink
    11
    edit-2
    2 years ago

    @nutomic At first glance it looks like some really crazy idea - but on the second glance it has got potential.

  • Dessalines
    link
    fedilink
    82 years ago

    Nice! Just tested this out, it works well. I had to use LEMMY_INTERNAL_HOST=https://lemmy.ml ROCKET_ADDRESS=0.0.0.0 cargo run since I develop over a network.

    The main thing that makes it difficult tho, is the lack of comment trees. phpBB is flat, like pretty much all these old forums. You might be able to provide the parent comment context, I think some of them use a quoted-style syntax, to at least show what the current comment is replying to, then you could keep everything flat.

    • @nutomic@lemmy.mlOPM
      link
      fedilink
      42 years ago

      Auto-generating quotes is one possibility, though I dont like that it implies rewriting the comment text. It could also be ugly in case there is already a quote. Or there could be a text field which links to the comment being responded to.

      Another option would be a config option which disables nested comments entirely (both over federation and api). That means lemmyBB users wouldnt get to see all comments.

      • @TheConquestOfBed@lemmy.ml
        link
        fedilink
        6
        edit-2
        2 years ago

        I wouldn’t normally recommend borrowing things from 4chan, but: their posts automatically populate the footer-area of comments with a list of links to direct replies. Each direct reply, in the reply’s header area, will then contain a link to the comment it’s replying to, and hovering over these links displays a preview of said comment. The text of these links also displays the ID # of the post or comment being referred to.

        @dessalines@lemmy.ml

      • Dessalines
        link
        fedilink
        22 years ago

        In lemmy-ui, I have to build the tree from the flat comments manually. You could do the same, or create a “2-level” one which has the comment, and its optional parent. Then you could check for the parent in the handlebars template and do a quote-style thing.

        I wouldn’t recommend actually inserting quoted comment text for comment replies: its a problem of displaying context only.

        • @nutomic@lemmy.mlOPM
          link
          fedilink
          42 years ago

          Displaying comments in nested form would look very bad, i dont want to do that.

          Another problem is that phpBB forums are always organized into hierarchical categories (example). To make it work properly, such categorization will have to be added to Lemmy (optional, could be disabled for instances that use lemmy-ui).

          • Dessalines
            link
            fedilink
            42 years ago

            I just mean only displaying the parent comment ( if one exists ) in a quote, it would still be flat. Example:

            • @nutomic@lemmy.mlOPM
              link
              fedilink
              22 years ago

              Thats a possibility, but it would get very verbose in case of a discussion with long comments. And then there would be cases like a user manually quoting something (so the same text might be quoted twice in a row), or having to exclude the automatic quote when the responded comment comes right before the current one.

              I think this solution is preferable.

    • @nutomic@lemmy.mlOPM
      link
      fedilink
      42 years ago

      Yes, I went through a couple of different frameworks and template engines. Originally I tried to use something lightweight, but those were all lacking important features, and so I ended up at Rocket which has pretty good usability.

  • Jakob :lemmy:
    link
    fedilink
    32 years ago

    This is great!

    But let me think a little bit about the usability… if people relly want to use it instead of the original phpBB… there are more moderation-tools needed. Move Threads or parts of a thread to another community and so on. This is a backend-capability… will you implement such things?

    And is it right, that i can not find a selector to show my followed communites, local or all?

    • @nutomic@lemmy.mlOPM
      link
      fedilink
      22 years ago

      For now it only has the basic funcionality mentioned in the post, nothing like sorting or mod tools. Once those things are added and the project has some real world use, I would definitely consider adding such backend funcionality.