Requirements
Context: I'm not an active contributor, but I run an instance for a country community, and had an idea which I felt might be worth bouncing around. I hope this is okay to do here.
Is your proposal related to a problem?
So I've been running into lots of random little frictions that are very specific to my use case (list below). I feel I could solve these by maintaining a private fork. But I've been thinking about whether this is the best way to handle this situation.
Could it make sense to provide support for modular server-side plugins or extensions, so that Lemmy instance admins can easily tailor Lemmy to their specific use cases, and share their customisations with each other? Rationale:
- I've noticed that instances cluster into several broad use cases, e.g.: for specific geographies, languages, hobbies, industries, media (single TV shows or games), content types (NSFW, podcasts).
- This means there are features which might drastically improve the experience for a couple of use cases, but none of the others. So they probably won't exist in vanilla Lemmy for a long time, if ever, due to poor cost-benefit and bloat.
- This might also allow way more developers to work on Lemmy, with minimal extra load to the core team. There's lots of non-professional developers out there who are capable of writing a small plugin given some safety rails (see: automatic1111, WordPress). And over time this might become a feed of good ideas/code back into the main codebase.
Describe the solution you'd like.
- Anything quick and easy: This might not need to be invasive or hard to support. Adding a few text rendering callbacks and customization points (e.g. a second user flair spot?) might create a lot of value, perhaps with zero database impact (we could require extensions to store their data separately)
Describe alternatives you've considered.
- Maintaining a private fork: This doesn't seem like good ROI for the sake of small quality-of-life features. But if I could write something which benefits lots of other instance admins, and has interfaces to Lemmy which I know won't change drastically from version to version, this changes the calculus quite a bit!
- UI-only or browser extensions: Since users use our instance via multiple frontends, I think extensions primarily need to happen on the backend, and operate on the content feed itself. (But many might need to target lemmy-ui as well)
Additional context
Here are a bunch of random examples OTOH for my instance, running a country instance for Malaysia. I haven't yet thought deeply about implementation via plugins, so please excuse me if some of these are demanding or impossible. I'm thinking of this more as an intuition pump.
- I'd like to be able to flag posts as Politics, and completely hide them from my feed. Community-level segregation for politics doesn't work, as country instances are evolving towards exposing a main !Country for broader Lemmyverse consumption (lemmy.ca, aussie.zone, feddit.uk all do so). Half our users want politics on their feeds, and half hate it.
- Alternatively, I'd like to be able to designate a "virtual community" for !Country which compiles posts from several real communities into a single RSS feed.
- Malaysians cluster into distinct blocs with different first languages (English, Chinese, Malay, Tamil). Seeing lots of unreadable content is very alienating, so I'd like to let users select languages at signup, with our specific national languages sorted to the top of a list.
- Malaysians are often multilingual; it could be nice to have a Google Translate clicky for post text which is in non-primary languages.
- I'd like some specific UI / handling around hashtags for a very niche use case: The Southeast Asian Fediverse has apparently standardised on hashtags for content discovery.
- I'd like to display some fairly specific community growth metrics in the sidebar for moderators, which reflect how we're driving traffic from our subreddit. We can generate charts or text, but could use an injection point.
- I'd like to designate a list of subs as not appearing on the Local feed by default.
I hope this idea isn't terrible, and I haven't missed anything obvious! (I've tried searching lemmy and lemmy-ui, and !lemmy_support, and didn't find anything)
Requirements
Context: I'm not an active contributor, but I run an instance for a country community, and had an idea which I felt might be worth bouncing around. I hope this is okay to do here.
Is your proposal related to a problem?
So I've been running into lots of random little frictions that are very specific to my use case (list below). I feel I could solve these by maintaining a private fork. But I've been thinking about whether this is the best way to handle this situation.
Could it make sense to provide support for modular server-side plugins or extensions, so that Lemmy instance admins can easily tailor Lemmy to their specific use cases, and share their customisations with each other? Rationale:
Describe the solution you'd like.
Describe alternatives you've considered.
Additional context
Here are a bunch of random examples OTOH for my instance, running a country instance for Malaysia. I haven't yet thought deeply about implementation via plugins, so please excuse me if some of these are demanding or impossible. I'm thinking of this more as an intuition pump.
I hope this idea isn't terrible, and I haven't missed anything obvious! (I've tried searching lemmy and lemmy-ui, and !lemmy_support, and didn't find anything)