Oddbean new post about | logout
 A user doesn't have to click through multiple categories. There are various implementations, but here is one of the designs. I believe, we've already discussed it during a hackathon.

Each event has only 1 category. Let's say, Alice labeled her event as 'memes'. When you see her event on the timeline, you will also see that it belongs to the 'memes' category. You can then adjust e.g. with a horizontal slider the amount of 'memes'-related events you want to see from Alice.

By default, all categories for all authors will be at 100%, but if you want to reduce the amount of 'personal'-related and 'finance'-related events from Alice, you will change the slider for such events to e.g. 20%, while keeping all other categories, including your favorite 'memes'-related events at 100%.

For better UX, clients can implement 'show more of similar content' and 'show less of similar content' buttons right near the events. The button to show more of similar content should be hidden if the category is already at 100%.

Filtering can be done a client-level to reduce the amount of additional NIPs.

We can also use other values/labels for the category slider like 'hot', 'rising', 'all'.

Now the question is how to filter out which 20% or 'hot' events from Alice should appear on your feed?

On Reddit-like decentralized social media platforms like DegenRocket it's very easy to implement such filtering because each category (e.g., DeFi, Privacy, All) is essentially a subreddit, which can be filtered by the amount of interactions (likes, dislikes, etc.) the event/post has. Voting manipulations though Sybil attacks can be mitigated by implementing whitelists or by token-gating your instance.

On Twitter-like decentralized social media platforms like Nostr this can be implemented in a similar manner, but interactions will only count if they were submitted by users you follow in order to protect from Sybil attacks.