I've been playing with Mastodon more, 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. 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 and Issue #3782.)

New Comment
7 comments, sorted by Click to highlight new comments since:

This seems to be the idea behind AT Protocol, which gives "Algorithmic choice: Control how you see the world through an open market of algorithms" as a goal.

I don't see what's wrong with building this on top of activitypub, the protocol that mastodon etc use? What's the argument for a separate protocol?

Can Mastodon be hacked to do this? If not, why not?

I would expect it not to be too much work to add to Mastodon, except that the authors don't like algorithmic feeds so either you'd need to convince them or maintain a fork. Currently trying the former.

Two good forks to consider reaching out to are Hometown and Ecko.

Good luck, I like the idea of Mastodon but haven't gotten into it yet.

I am not sure whether there is a technical argument, but there is a question of priority. To me, it is self-evident that algorithmic feed should be the highest priority for ActivityPub. But ActivityPub world seems to be full of people who say things like "I don't want algorithmic feed", or "newest first works fine".