Now that Pawb.Social has forked Lemmy, I thought it would be appropriate to go ahead and compile a list of changes or additions that have been suggested, or that have been spotted by others or myself. This is hardly a comprehensive list, and down below will be two comments by me, one for changes to back-end changes or additions and one for the front-end suggestions as well.


A quick note before I start

One important thing I do want to stress is that any changes or additions made should not render our fork incompatible with other Lemmy instances, the apps that allows for easy usage of Lemmy (Jerboa, Thunder, etc), nor cause issues for interacting with, or interactions from, the rest of the Fediverse. To take a quote from Linux Kernel development: Don’t Break Userspace!

Now, let me specify for any who aren’t in the know about the differences between back-end and -front-end are:

  • Front-end: focuses on the user interface, designing the visual elements, and ultimately the UI elements that a user will interact with on the web page.

  • Back-end: deals with the server-side functionality, handling data processing, storage, and communication with databases and external systems (The rest of the Fediverse) using server-side programming languages and frameworks. For Lemmy, this is done with the Rust language.


Now, with that summary done, here is a (still WiP) list of changes:

Back-end

  • Addition: Individual community blocking (as opposed to the current instance and user-only blocking).
  • Addition: Ability to follow entire instance (or at least follow all communities on an instance).
  • Addition: Allow for individuals to block instances and communities, instead of requiring instance-wide action to block them.
  • Addition: Give instance admins better moderation tools (hashed IP address, etc. Needs to be GDPR compliant)
  • Change: Better support for automatically linking other communities (and instances) back to your primary instance for easier following and interaction.
  • Change: Better cross-compatibility between Lemmy and the Mastodon/Pleroma side of the Fediverse.
  • Change: Better cross-compatibility with KBin.
  • More to come

Back-end & Front-end

(For things that will require changes on both ends to function properly)

  • Addition: Post flaring - To allow for better post management, sorting, viewing, and moderation.
  • Addition: Ability to sort communities into groups (similar to multireddit).
  • Addition: 2FA during login/sensitive actions like password changes.
  • Addition: Mark servers and people as “friends” so they display a marker by their name elsewhere.
  • Addition: Better nsfw post handling, more specific viewing settings, etc.
  • Addition: Adding notes to users (for moderation purposes)

Front-end

  • Addition: Add more themes/theming support to the UI.
  • Addition: Add better support for widescreen displays.
  • Addition: Ability to pick a default sorting method (perhaps per community).
  • Change: Refresh and organize some of the UI elements for Lemmy (somethings are just a bit outdated looking…).
  • Change: Alter donation button at the top to point to the donation portal for the/an instance (this should be the default tbh, the prominent button shouldn’t direct to the Lemmy devs to begin with…)
  • Change: Move all information about Lemmy and the Lemmy devs to one, out of the way location, potentially as a citation in the footer.
  • Change: Add link pointing to the GitHub fork for Pawb.Social
  • More to come.

Please see below for the two threads to add your own thoughts or comments on things you want added, changed, or even removed. All comments and thoughts are welcomed!> ability to sort communities into groups (similar to multireddit).

  • I have an idea, but I’ll be honest, I don’t know the difficulty of this idea. For back end & front end: The ability to sort communities into groups (similar to multireddit).

    I also wonder how we’ll implement all the changes on pawb.social to existing apps such as jerboa. While pawb should still be usable through the apps, features that don’t exist upstream probably won’t be available on the app either. We could fork these apps, but that would take too much resources.

    • Some way of having multiple separate feeds would be very useful to me. I like having my furry stuff separate from my non-furry stuff, and I really need most of the NSFW stuff to be kept in its own little container. As it is now, this requires having three different accounts. More if I want to sort things further, which I likely will. This would be manageable if we had something like the RES account switcher but I’m not aware of anything like that for Lemmy.

    • Yeah, ultimately what I said above must apply, we can’t break the experience for other Lemmy users, or others from the wider Fediverse (aka, we can’t break userspace). Whatever changes we make will need to fit within those confines, with the exception being changes that can be pushed upstream, if the Lemmy devs will have any of it.

      As for your suggestion, I absolutely agree. I meant to put that on there actually, as I often relied on that in Apollo. Favorites too, which I made use of in Infinity.

  • So, I don’t disagree with the decision to fork (especially because of the hardcoded donation URL). I am concerned about fracturing of the codebase, so I have a few questions:

    • Will this fork always be a sequence of commits based on some Lemmy version, or do you expect history to diverge (git rebase vs merge)?
    • Will there be an effort to upstream useful changes into Lemmy proper (a lot of the changes suggested are things that might be desirable for Lemmy in general).
    • There’s a number of other communities with a desire to use a forked Lemmy version, do you intend this fork to be useful for them, or is this purely for pawb.social?

    And perhaps most importantly:

    • Will the name be changed from Lemmy to something else if there are significant changes.
    • When there are changes to the base Lemmy project, those will be implemented in our fork, and when we feel there’s a feature to push back upstream, we’ll gladly do so.

      We’re also not making the fork specific to Pawb.Social, so things like the donation link will be customizable.

    • Addition: Allow for individuals to block instances and communities, instead of requiring instance-wide action to block them.

      Don’t we already have the ability to block individual communities on an user level? We certainly have a ‘Block Community’ button available, and it seems functional from what I can tell.


      I’d love the ability to better filter and sort the communities list. In particular, I’d like to be able to filter (or sort) by communities I haven’t subscribed to, or by communities by instance. I get that we can go to another instance and see their community list, but it’s a bit of a PITA to subscribe or unsubscribe from there; ideally, we’d be able to do this within this community, so the sub/unsub links are present and functional.

      • To expand on this; introduce some functionality like browse.feddit into the site itself, to show a list of communities that Pawb has federated with or is federating with, breaking that down by local/all, grouping similar subs together with a multi-reddit style collection of sorts, and gathering similar links/posts together in the interface in a manner like: discussions in (x) other communities/threads, so that regardless of where something is being posted/talked about, it doesn’t show up excessively on the front page (i think part of that is already here, but these would add refinements).

    •  Sev   ( @SevYote@pawb.social ) 
      link
      fedilink
      4
      edit-2
      1 year ago

      Adding notes to users (for moderation purposes)

      Honestly would be cool if that could be done for anybody, not just admins / mods, like Reddit with RES. It lets you add something sort of like a flair to any user that only you can see. You can pick from a list of font colors and just add a short thing, it’s very handy.

    • Addition: Ability to follow entire instance (or at least follow all communities on an instance).

      Does there currently exist a way for one instance to poll another instance for their list of communities? I thought that an instance wouldn’t even know a community exists unless someone specifically searches for it.

      I know it’s listed under backend, but wanted to ask about the front end plan for this feature. Let’s say I search for Lemmy.world. Is the plan to output a checkbox list of communities and have us deselect any and confirm?

    • Change: Better support for automatically linking other communities (and instances) back to your primary instance for easier following and interaction.

      Does this mean that finding and subscribing to communities on other instances will be streamlined? If not, that definitely needs to happen. The current process of going to another instance to search for a community there, copying a link, then going back to your home instance and searching for the community where you already know it doesn’t exist is just mindbogglingly unintuitive. Hell, I can’t even see NSFW communities on other instances even though my account is set to show them, and it seems like the only current way to fix that is to go to that instance and subscribe to one of its NSFW communities (that I can’t see).

    • The ability to mute entire communities would be awesome, like if i wanted to keep up with pawb.social but dont have an interest in greyfur content, I don’t really have a way to filter that out of my personal feed. Would be awesome to have that level of granularity

      Multi-communities were suggested, but if possible merging identical topics within those multi-communities with some way to distinguish different communities discussions from the comments (kinda how reddit has its different comment sorting types, but basically it’d be a dropdown to let you see any community’s comments, basically merging cross-posts to reduce noise)

      A public list of federated/defederated communities and reasons why they’re defederated would be awesome just for transparency, probably a bit of a both front-end and back-end thing but it seemed worth mentioning.

    • Community Approval!

      Basically, an instance option that requires a new community to be approved by an admin when created, in the same way that a new user account would.

      As far as I’m aware, currently there is no notification that a new community has been created and unless people are watching the local community list regularly, it’s easy for them to slip by unnoticed. This allows scummy people to create a dodgy community, post a bunch of garbage to it and use it to attract more scummy people or start inter-instance drama.

  • This is quite impressive. There’s so many quality of life features you’ve mentioned. Do you think you’ll have problems applying the fork to the upcoming 0.18 version?

    • Not sure where the settings actually live, so I can’t say whether this is backend or frontend, but I have been thinking that nsfw post handling could be improved.

      Specifically, I’ve been thinking about (and actually been considering implementing) some new per-user settings:

      • Don’t show nsfw posts from other instances in the “all” feed.
      • Don’t show nsfw posts in the “local” or “all” feed at all.
      • Always show nsfw posts from communities the user is subscribed to, regardless of the above two options.

      Should cut down on any drama caused by someone registering on a random instance and subbing to gfur. :P

      EDIT: Looking at the replies, it looks like a simple site wide toggle a-la Furaffinity might be easier to implement and more egonomic.

      • I think we can simplify your idea as a setting or toggle to allow user to enable or disable NSFW on “Local,” “Subscribed,” and “All” feed separately.

        To add to that, a simple NSFW toggle above the feed (such as near the sort options) should help, so user can enable and disable NSFW with one click on the feeds page, instead of having to go through settings. I don’t really like seeing nsfw posts when I’m not in the mood.

      • Came here to suggest an ‘Unread’ filter option; auto-hide read posts covers it. I think that’s the single biggest problem I have right now. There’s a lot of content out there but it’s very hard to find it if you’re just sitting here scrolling for a while, because you continually see the same things getting sorted to the top.

    • Adding notes to users. For example for moderation purposes.

      Also for moderation purposes (will likely require both front and backend):

      -Give site admins the ability to view user last few ip addresses and emails, but display them as a hash so that we in Europe can onboard admins without having to worry about disclosing personal data of our users and its impact in current legislation. This data could be hashed with salt that’s specified by the server admin as an environment variable or in the config files.

      123.123.123.123 >> 4fc174d62e… john@gmail.com >> e375fab75@gmail.com or e375fab75@g***l.com

      • Ability to block sign up of specific email domains

      • Secondary site admin role that has no ability to purge content from the database.

    • Highlighting of new comments that have been posted since you last visited that comment section, similar to what Reddit does if you have their gold subscription. In my opinion this is an essential feature that needs to be available to everyone if you want to encourage actual discussion rather than drive-by opinion dumping.

      The larger a comment section gets, the harder it becomes to find any particular comment chain you were interested in, so most threads devolve into two people having an argument (because direct replies trigger notifications) or everyone just shouting their opinion into the void and then leaving forever. There’s no point in ever coming back because you’ll never find anything again unless someone responds to you personally.

      [EDIT: There’s some kind of auto-refresh that happens occasionally and it looks like it might highlight new comments, but it also unhighlights them on the next refresh so you could end up with new comments marked as old ones if you don’t read them in time. It may just be my inexperience with the platform, but this feels confusing and inconsistent.]

      In that vein, anything to better visually organize comment sections or get more of the section onto the screen at once would be very welcome. Maybe all that empty space to the left and right could be put to use somehow?

    • This probably requires a bit of backend to store the data too but maybe a way to mark servers and people as “friends” so they display a little marker when you see them in the wild.

      I’ve been using this userstyle to do it on a server-basis and I love seeing friends in unexpected places. I’ve seen a few one-off people that posted really great content and thought “wow I wish I could keep track of them”. Marking them so I can spot them in the wild, and maybe being able to scroll through my marked people’s comments in a feed would be neat.

      • This sounds similar to the user tagging feature in Reddit Enhancement Suite, which I believe is done client-side. I’ve found it useful for lots of reasons and having it built-in might allow for even more functionality. Another similar feature I’ve seen elsewhere is the ability to add private (only visible to you) notes to profile pages.

        • Yeah you’re right. I actually modified my userstyle to mark certain people in the meantime, but having a dedicated way to do it would be cool. RES was built because reddit wouldn’t implement the changes - we now have the power to implement RES-like features into lemmy itself if we want.

    • Collapsing comment threads.

      One thing I sorely miss from Reddit is the ability to collapse a comment chain when I’m done reading it. Makes reading long chains much easier. This could be done like on new Reddit by clicking the colored bar on the side of a comment, if it was a bit wider.

      • That functionality already exists, at least on desktop. There’s a little box just to the right of your name that appears to collapse the entire thread when you click on it. What would be a helpful addition is some way to collapse a thread from the bottom, so I don’t have to scroll back up when I’m done reading that thread. Clicking the color bar sounds like a decent way to accomplish that.

        I also miss having the line separators between threads like you can enable on Old Reddit.

        • Ahh I see. I never paid proper attention to the icons; it’s hard to distinguish what everything is when most buttons don’t even have outline. This was weird because the minus is inside a box.

          But yeah, definitely still miss the click on the line which allows you to collapse from bottom (though you also need to automatically scroll “up” to the collapsed thread). That’s how it works in new Reddit.

          What do you mean by line separators? I don’t really remember old Reddit.

          Oh and just now I found out another thing: you can’t submit reply with Ctrl+Enter.

          • Yeah, the whole UI needs an update. Why are most of the icons below each post hidden behind a “more” button when there’s plenty of room to show them all? I even need 120% zoom just to distinguish everything on the page.

            What do you mean by line separators? I don’t really remember old Reddit.

            In Old Reddit, or maybe it’s in RES, there’s an option to add a horizontal red line between comment threads.

            This is what it looks like.

            It’s a helpful visual indicator for knowing when you’ve hit a new top-level comment. Here in Lemmy the red bar on the left serves the same function, but it doesn’t break between adjacent top-level comments so it fools my brain into thinking the whole block is one big comment.

            • Ahh I see, it’s probably a RES thing. And I agree, it’d be nice to have it here from the top level comment… Which we now do, nice!

              Why are most of the icons below each post hidden behind a “more” button when there’s plenty of room to show them all?

              To be fair there is a ton of them. I find it hard to find what I need (reply, usually) when it’s expanded. Especially in inbox. But if all had some color (why just ONE?) or a separator between logical sections it’d probably work fine.

  • I think I might try to mess with improving the UI a bit to familiarize myself with the codebase. Is there a separate chatroom for fork development, or is the Lemmy instance itself the official place to discuss development?