Skip to content

Instantly share code, notes, and snippets.

@8ullyMaguire
Last active March 22, 2024 15:01
Show Gist options
  • Save 8ullyMaguire/6920a9ce8be2833d08cf801eae541c4e to your computer and use it in GitHub Desktop.
Save 8ullyMaguire/6920a9ce8be2833d08cf801eae541c4e to your computer and use it in GitHub Desktop.
My Dream Social Media Platform
### My Dream Social Media Platform
- **Multimedia support**: The platform would support various media types, including text, pictures, GIFs, videos, audio files, and more. It would have a view similar to Lemmy and a grid-view for visual content, like an image board.
- **Tagging System**[^15][^8]: The platform would implement a tagging system so users can categorize posts with relevant keywords. This helps others find content on specific topics and organizes content for better discoverability. Allows granular content filtering for phobias, traumatic events and other sensitive topics, besides the usual like hiding NSFW, memes, etc
- **Custom feeds**[^16]: Allow users to create custom feeds that combine posts from multiple users, instances, include/exclude keywords, hashtags. A weighting system to control how much of each source is shown. Sharing filter settings easily with other users. This is similar to Reddit's multireddit, Kbin magazines and Firefish antennas. Firefish antennas allow users to specify keywords to include/exclude in categorized feeds.
- **Slashdot-style Moderation System**[^3]: Instead of a simple upvote/downvote system, the platform would implement a moderation system inspired by Slashdot. When voting, users would specify reasons for their vote, such as +1 Insightful, +1 Funny, +1 Informative, -1 Troll, -1 Misleading, etc. This allows users to filter content based on their preferences, e.g., ignoring votes for comedy while prioritizing informative posts.
- **Limited Moderation Points**: To encourage thoughtful voting and prevent spam, users would receive a limited number of moderation points to allocate among posts and comments. This incentivizes users to choose carefully which content to vote on.
- **Meta-Moderation**: The platform would implement a meta-moderation system where users are periodically shown a comment and asked to evaluate the appropriateness of its current moderation score. This helps catch users who misuse the voting system out of disagreement or personal vendetta. Users who consistently mis-moderate would lose their moderation privileges.
- **Comment Score Capping**: Comment scores would be capped at a maximum of, for example, +5 and a minimum of -1. Additional votes beyond these thresholds would not affect the score.
- **Obfuscated User Karma**: Instead of displaying precise karma values, user karma would be shown using vague terms like "Good," "Excellent," or "Poor." This reduces the incentive for karma-farming and encourages more thoughtful participation.
- **User reputation or karma**[^2]: A user reputation or karma system based on contributions and interactions. This could be used to incentivize curation over posting, and quality content over entertaining content.
- **User profiles**: Detailed user profiles allow users to showcase their contributions, interests, and customize their presence on the platform. Users would have granular control over their profile privacy, being able to share with nobody, only followed users, or make fully public. Profile sections like bio, posts, collections, reputation, and other details could be toggled private or public individually.
- **Achievements**: Implement a gamified achievement system based on usage.
- **Threaded comments**: Posts would have a threaded tree-like comment system for easy discussion.
- **Private messaging**: Users would be able to send private messages to each other.
- **Notifications**: Users could receive real-time notifications for new posts, comments, messages, etc. This increases user engagement.
- **Reactions**: Allow a wider range of reactions to posts and comments. For example, Facebook reactions like Like, Love, Haha, Sad, Angry.
- **Custom themes**: Multiple color themes, including a default low-contrast dark mode.
- **Localization**: Support multiple languages to expand reach.
- **Blocking**: Users can block other users, tags, keywords and instances (only posts or all their users) they don’t want to see.
- **Content filtering**[^17]: Users can hide/blur/unblur-on-mouse-over content based on tags, regex or content type, such as text, images, videos, or links, allowing them to focus on the content they prefer. For example block links to specific domains.
- **Federated**: The platform would be federated using the ActivityPub protocol, allowing for interoperability with other platforms in the Fediverse.
- **Advanced search and tag filtering**[^4]: The platform would offer advanced search and tag filtering options to improve content discovery.
The advanced search functionality would allow users to craft complex searches to find relevant content. Some key features:
- **Boolean operators**: Support AND, OR, NOT operators to combine multiple search terms and keywords. For example, "cat AND dog" or "linux NOT windows".
- **Exact match**: Use quotation marks around phrases to search for exact matches. For example, "open source software" would only return results containing that exact phrase.
- **Field search**: Allow searching within specific fields like title, tags, author, content, etc. Useful for narrowing results.
- **Tag filtering**: Allow including or excluding specific tags. For example, search for "programming" but exclude posts tagged #beginner.
- **Date range filtering**: Filter results within a timeframe, like posts from the last week, month, year etc.
- **Sorting**: Results can be sorted by relevance, upvotes, comments, date, etc.
- **Search within collections**: Scope search to user-created collections of posts.
- **Fuzzy search**: Return results that match misspellings and partial text.
- **Synonym search**: Search using synonyms automatically expands the query.
- **Stemming**: Match word stems so "run", "running", "ran" match.
- **Stop words**: Ignore common words like "the", "and", "or" that don't help narrow search.
- **Search suggestions**: Provide search term suggestions and autocomplete as the user types.
- **Saved searches**: Allow saving complex searches for repeated use.
- **Search syntax highlighting**: Visual cues to ensure valid syntax.
- **Search tutorials**: Embedded tutorials explain how to effectively use advanced search.
The goal is to provide users with maximum flexibility and control over search to efficiently find relevant content. Advanced options cater to both novice and power users.
- **Collections**[^14]
- Users should be able to create collections of posts with private/public visibility, which can be edited either by the creator only or by anybody. There are a total of four types of collections.
- A default private collection for saved posts should be available, ensuring that saved posts work just as they do now.
- This feature would provide better organization over a single saved list.
- For even more organization allow to add tags to the collections.
- Allow posts to have an order in the collection. For a story for example, chapter 1, 2, etc.
- Allow sorting posts within a collection by date, upvotes, comments, etc.
- Let users follow collections created by others to see new posts added to it.
- Integration with search - allow searching within specific collections.
- Browse/search public collections by tags.
- Recommend collections to users based on their interests and activity.
- **Downloading**: Users can easily download media, collections, or tags.
- **User trust levels**[^6]
- The platform would implement user trust levels on a per instance basis, to avoid admin/mod burnout and reliance on bots for moderation. Instance admins could choose to have moderators, only user trust levels, or both.
- Instance admins can configure the number of trust levels, the number of users desired for each level or the reputation thresholds for reaching each trust level, the reputation scored for each activity, and the privileges granted at each level.
- The number of users desired for each level or the reputation thresholds would be automatically calculated based on the other configurable parameters.
- Instance admins can restrict moderators privileges to a subset of actions rather than full control.
- Moderators could be chosen manually by admins or automatically based on recent activity and voting affinity with admins.
- There could be an appeals process to reduce human bias, where users can contest moderator actions. A user with a higher trust level would review the appeal and penalize the incorrect party by reducing reputation, either the user for an invalid appeal or the moderator for improper moderation. There could be loss of privileges too, forever or until gaining a given reputation.
- This flexibility allows instances to define granular trust and moderation models tailored to their needs.
- 5 user trust levels by default like Discourse[^13]. Also by default anybody whos used the platform for a few days should have the privilege of editing/hiding answers to their content (posts/comments). Who better to moderate your content than yourself, and thanks to user trust levels and moderation appeal, there's no need to bother the admin if someone takes liberties with this privilege.
- Privileges could include post deletion/editing, banning users, pinning content, etc. Starting privileges low and slowly expanding them as reputation grows allows for decentralized moderation.
- **User curation**[^1]: Users above a reputation threshold could tag posts for better organization, like on image boards. This improves curation compared to Lemmy which relies on titles.
- **Feed algorithm marketplace**[^5][^9]
- Users can browse and install various third-party algorithms and filters to customize their feeds, similar to browser extensions.
- An in-platform algorithm marketplace allows users to discover algorithms by popularity, creator, purpose, compatibility, etc.
- Users can view algorithm source code, ratings, reviews, and example output to evaluate options.
- Empowers users to shape their own experiences rather than relying on centralized feed choices.
- **Machine learning algorithms**: The platform would use machine learning algorithms to personalize feeds and suggest posts based on user recent activity.
- **User affinity**: A user affinity system connects users with similar interests based on recent activity.
- **Affinity recommendations**: Recommendations based on high affinity users’ activity.
- **One-size-fits-all image format**: The platform would adopt a simple, one-size-fits-all image format for easy sharing without formatting issues.
- **Affinity search**: Search results biased by user’s affinity network improves relevance.
- **Anonymous posting**: Instances could allow anonymous or pseudonymous posting. Users could choose to be anonymous or pseudonymous on the instances that allow it. The options could be show user name, pseudonym for instance, pseudonym for post, temporary ID for post, hide identity completely. Anonymity modes should prevent linking post history between instances. Theres a more detailed explanation [here](https://programming.dev/comment/2619523).
* **Ephemeral content**[^7]: Users and instances could enable automatic pruning of old posts after a set amount of time.
* **Polls and surveys**: Allow users to create polls and surveys to gauge opinions and feedback.
* **Block quote**: Allow users to selectively quote parts of posts/comments when replying, which link to the original source, like in Discourse. Expand this feature to describe other interesting things that Discourse implements over CommonMark markdown.
* **Custom vote federation**[^10]
- Allow users or instances to limit which votes are counted from other instances.
- Completely opt out of vote federation.
- Limit vote federation to chosen or high affinity instances.
- Implement a manual or automatic weighting system to value some instances higher than others, like chosen or high affinity instances.
- This preserves thematic uniqueness across the fediverse, as vote federation tends to homogenize instances.
- This would enable each instance to preserve its thematic focus and uniqueness, providing a more tailored experience for users and instances.
* **Registration throttling based on monthly active users**
- Allow admins to set a cap on the maximum number of monthly active users.
- Once the cap is reached, new user registrations are throttled or disabled until activity declines and space frees up.
- This prevents instances from growing too quickly before adequate moderation is in place.
* **Q&A features**
- **Best answer pinning**: Allow OP or privileged users to pin the best answer to a questions.
- **Solved filtering**: Allow filtering posts by solved/unsolved status.
- **Bounties**: Allow users to offer reputation bounties for the best answers to their questions.
* **Post bumping**[^11]: Instances can enable post bumping. It allow users to bump old posts back to the top of feeds. This helps keep evergreen content circulating. Instances could limit the number of times or how often posts can be bumped.
* **Related posts**[^12]: When creating or accessing a post, users are shown other similar posts that may be of interest. This helps connect related content. Relatedness could be either manually determined by the users or automatically determined by tags, title similarity, user affinities, etc.
### Other ideas
* **Self-governing communities**: Users can create communities with granular controls over who can view and post content. Communities can be completely open, closed and invite-only, or anything in between.
* **Anonymous and pseudonymous posting**: Users have the option to post anonymously or under a pseudonym on a community-by-community basis. Their post history can also be private. This allows free expression without fear of repercussions.
* **Automatic post pruning**: Posts can be automatically deleted after a set time period, per user/community/instance preferences.
* **Flexible community structures**: Communities can be structured like Reddit, 4chan, or private group chats.
* **Decentralized backend**: Store content on decentralized networks like IPFS rather than centralized servers. This ensures persistence even if the originating instance of a community goes down.
* **Community forking**: Communities can be forked by users with permission. The fork with the most users keeps the name. This decentralizes moderator power.
* **Customizable feeds**: Users can install community-created filters, blocklists, algorithms to customize their feeds. Empowers user control.
* **Repost detection**: Duplicate posts are consolidated. You won't see the same content twice.
* **Trending detection**: Trending content is detected via keywords and topics rather than hashtags.
* **Reverse image search**: Built-in reverse image search to find related/duplicate visual content.
* **AI content summarization**: AI summarizes text, images, video and audio for searchability and accessibility.
* **Aggressive recommendation feed**: A separate feed with aggressive personalization, like YouTube Shorts.
* **Recommendation algorithm save points**: Users can revert their recommendation algorithm to an earlier state if it gets off track.
* **Conversational AI**: Asks questions about content to an AI assistant.
* **Ban users based on affinity and activity**
- Allow mods/admins to sort users by affinity and activity levels.
- Users falling below configurable affinity and activity thresholds can be bulk banned.
- This allows removing low activity users who don't engage meaningfully.
- Affinity is calculated based on voting patterns and agreement with mods/admins.
- Activity is measured by number of posts, comments, votes, etc over a timeframe.
- Banning by affinity/activity leaves engaged members intact.
- Increases community coherence by aligning users around the admin interests
### Related
Lemmy, Sublinks, Kbin, PieFed, Reddit, 4chan, Discourse, Image Boards, Gelbooru, Danbooru, Yande.re, Konachan, Hydrus, MediaRepo, MusicBrainz, The Internet Archive, Stash, Stash-Box, JellyFin, NextCloud, Beets, MusicBrainz Picard, TagSpaces, TagScanner, SpaceDrive, tocc, TMSU, SuperTag, wutag, Tabbles, allTags, Dolphin, ArchiveBox
### References
[^1]: [GitHub — Booru-Style Image View, Search and Tagging by Users](https://github.com/LemmyNet/lemmy/issues/3626)
[^2]: [GitHub — Grant users privileges based on user activity and voting affinity with the admin](https://github.com/LemmyNet/lemmy/issues/3548)
[^3]: [GitHub — Multiple vote types](https://github.com/sublinks/sublinks-api/issues/91)
[^4]: [GitHub — Advanced Search and Tag Filtering](https://github.com/LemmyNet/lemmy/issues/3788)
[^6]: [GitHub — Grant users privileges based on user activity and voting affinity with the admin](https://github.com/LemmyNet/lemmy/issues/3548)
[^7]: [GitHub — Ephemeral Content: Automatic Removal of Old Content](https://github.com/LemmyNet/lemmy/issues/3934)
[^8]: [GitHub — Booru-Style Image View, Search and Tagging by Users](https://github.com/LemmyNet/lemmy/issues/3626)
[^9]: [GitHub — Algorithm Marketplace](https://github.com/LemmyNet/lemmy/issues/3936)
[^10]: [GitHub — Enable Users to Customize Vote Federation](https://github.com/LemmyNet/lemmy/issues/3519)
[^5]: [TheVerge — Bluesky rolls out feeds with custom algorithms](https://www.theverge.com/2023/5/26/23739174/bluesky-custom-feeds-algorithms-twitter-alternative)
[^11]: [GitHub — Instance configuration for bumping posts](https://github.com/LemmyNet/lemmy-ui/issues/843)
[^12]: [GitHub — Linking related posts](https://github.com/LemmyNet/lemmy-ui/issues/874)
[^13]: [Discourse Blog — Understanding Discourse Trust Levels](https://blog.discourse.org/2018/06/understanding-discourse-trust-levels)
[^14]: [GitHub — Create Collections of Posts](https://github.com/LemmyNet/lemmy/issues/3939)
[^15]: [GitHub — Request for Comments: Flexible Tag System](https://github.com/LemmyNet/lemmy/issues/3951)
[^16]: [GitHub — Custom Feeds](https://github.com/LemmyNet/lemmy/issues/3950)
[^17]: [GitHub — Filter for Hiding Unwanted Content](https://github.com/LemmyNet/lemmy-ui/issues/1847)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment