Open 8ullyMaguire opened 11 months ago
This RFC proposes adding a flexible tag system to Lemmy that allows communities to configure tagging permissions based on their needs.
Reddit flairs are labels primarily used to categorize communities and users. The proposed tags would be used to categorize mainly individual posts.
Reddit flairs are typically selected by moderators or community creators. This tagging system could allow tags to be added by any user (permissions configurable).
Reddit limits flairs to avoid clutter. This system would allow many tags per post to thoroughly categorize content.
Reddit flairs tend to be more subjective - like genres or loose categories. The proposed tags should be objective and accurate - tagging all aspects of the content.
The purpose of the tags in this system is precision categorization to improve search and discovery. Reddit flairs are more for general community identity.
Posts should be tagged with every accurate, on-topic tag in this system. Not just a single "best" tag like a Reddit flair. The goal is comprehensive categorical metadata.
So in summary, the tags in this proposed system allow granular post-level categorization by the community to optimize search and discovery. Reddit flairs are broad, subjective, community-level labels managed only by moderators.
Two new tables for "tags" would be required. One for instance-wide tags and one for community tags.
The instance tags table would consist of the columns id
, deleted
, and community_id
(nullable).
The community tags table would consist of the columns id
, deleted
, and community_id
(not nullable).
A separate table would link the tag IDs to their name, description, and language. This table would have the columns tag_id
, name
, description
, language
.
By separating the names and descriptions into a separate table, a single tag ID can be linked to multiple names/descriptions in different languages.
GET /tags/list would join the tags tables with the names table and return name, description and language grouped by tag ID.
POST /tags would insert into both tables - creating a new tag ID and then inserting name, description, language rows for that ID.
By default, all users should be able to add existing tags to their posts. This allows for easier organization without placing extra burden on moderators.
Allow communities to choose between unrestricted, privileged, or moderator-only tagging permissions. This provides flexibility for different community needs and improves organization and discovery.
Make tags editable by post authors for a set time period after posting. This allows fixes without granting full edit access.
Allow privileged users or moderators to add new tags, not just use existing ones. This improves organization without overburdening moderators in large communities.
Consider either or both of this alternatives:
Provide instance settings to limit number of tags per post. Addresses tag spam concerns.
User interface should handle large numbers of tags gracefully through truncation, collapsing, or user settings.
Allow privileged users or moderators to edit and delete tags on any post in their community.
Allow privileged users or moderators to delete tags. Should require approval to avoid losing great amount of effort.
Anyone even unprivileged users could have the ability to tag any user, post, community or instance. It would be a different set of tags visible only to themselves. The content shown when visiting those tags would be the same as the ones for everyone else.
User specific community tags. Each user has a completely different set of tags, visible only to themselves, that they can create and apply to communities. When a user visits those tags they see the posts from all the communities with that tag. The content shown when visiting those tags would be different as the ones for everyone else.
Consider replacing communities with tags - lobste.rs style. Would eliminate cross-posting and reduce duplication. Could increase participation and improve cross-instance content preservation.
Allow following specific tags to get notifications on new tagged content.
Community/instance setting to make some tags mandatory. For example, a post would have to be either SFW or NSFW.
Allow blocking tags you don't want to see on the user settings.
Provide tag synonym support to consolidate similar tags.
Have an autocomplete suggest existing tags as you type
Show percentage of tags from liked posts in user stats. Allow user to configure visibility.
Use tag percentages for user affinity page to discover similar users.
Requirements
Is your feature request related to a problem? Please describe. I always get frustrated when I can't easily find a specific post or image that I've seen before on social media platforms. The current tagging system on Twitter is limited and doesn't provide the level of organization and searchability that image boards like Safebooru offer.
Describe the solution you'd like I propose implementing a comprehensive tagging and advanced search system similar to Safebooru, where users can add and edit tags for posts, and search by including or excluding combinations of tags. For example, users could search for posts containing tag1 AND tag2 while excluding posts with tag3. This would make it easier to find and rediscover content on the platform.
To encourage user curation of tags, consider implementing a points/reward system and leaderboards showcasing top contributors. This would incentivize users to help tag content.
To prevent abuse, consider implementing a trust level system like Discourse, where users must perform a certain number of actions before gaining the privilege to tag posts. Additionally, maintain a history of tag changes to allow for reverting bad changes. The tagging system should be separate from the post content, so users would only be editing tags, not the actual posts.
If AI tagging is accurate enough, it could be used to automatically tag posts, reducing the need for user curation.
Describe alternatives you've considered An alternative solution is the proposed hashtag system used on Twitter. However, this may not be as effective as a comprehensive tagging system in helping users find specific content.
Additional context
Benefits of a comprehensive tagging system over hashtags:
A comprehensive tagging system would not only improve content discovery but also enhance the overall user experience on Bluesky. By allowing users to easily find and organize content, the platform becomes more engaging and useful for its user base.
Furthermore, having properly tagged and classified content would significantly improve users' ability to create highly customized and granular feeds, since they could filter feeds not just by users or keywords but also by specific tags and combinations of tags. This would enable much more powerful and precise content curation.
More ideas: