# User-Controlled Algorithmic Feeds

I've been [playing with](https://www.jefftk.com/p/mastodon-linking-norms) [Mastodon more](https://www.jefftk.com/p/trying-mastodon), and the main way you see what other people have posted is by reading your feed. This consists of everything any of the people you follow has posted or boosted. If you're always going to read everything that's come out since your last visit, which is the strategy I use for email, then order doesn't matter very much. But for social media a strategy of reading everything means following very few people, spending more time on the site than you probably want to, or falling behind. What would be better?

The way mainstream social networks (Facebook, Twitter, etc) handle this is with prioritization: run an algorithm that considers every post it could potentially show you and picks the best according to some inscrutable and highly proprietary ranking, optimized for a combination of engagement (getting you to post/comment/like), retention (getting you to keep using the site), monetization (getting you to view and interact with ads), and [other things](https://www.theatlantic.com/technology/archive/2014/06/everything-we-know-about-facebooks-secret-mood-manipulation-experiment/373648/). It's common to complain about the algorithm, especially when it fails to show you things you really would have wanted to see or when what it's optimizing for is clearly not what's best for you.

Mastodon's approach is very different: its prioritization algorithm is "newest first". This is the ideal algorithm if what matters most is breaking news, but since that's not most of what I care about it has some downsides:

*   I'd rather see Pat's only post of the week than Sam's 100th.
    
*   I'm more interested in the things the people I follow post than the things they boost.
    
*   I want to read everything Alex posts because it's relevant to my work, consistently interesting, or they're someone I'm close to. But if this were my bar for following people I'd miss a lot of things by people who I do still often like reading.
    
*   If I only have a short amount of time available, all things being equal I'd rather a Jo post than a Rowan one, but this is not a strong preference.
    

The problem with a traditional social network's algorithmic feed algorithm isn't that it uses an algorithm but that (a) it's goals are not your goals and (b) you can't tweak it. Imagine a feed prioritized according to:

*   Every post gets assigned a number, and are shown highest to lowest.
    
*   Once a post has been shown to you it's removed from the pool of eligible posts.
    
*   You control the rules that assign numbers to posts.
    
*   Rules include assigning points for recency, how rare it is for this person to post, how often you favorite this person's posts, whether the post is a boost, hashtags, etc.
    
*   You have a modifier for each person you follow and there's a button or menu option on each post for bumping that person's priority up or down.
    

Starting off with recency as the only active contributor to score and then letting people click "show more / show less" would be a good place to start, and fully backwards compatible: if you don't use the feature your feed is unchanged.

(For more discussion along these lines see [Harris's post](https://social.coop/@harris/109321425251603111) and [Issue #3782](https://github.com/mastodon/mastodon/issues/3782).)