Add metadata to Posts for sourcing (aka "Why am I seeing this?")

Reference: DJ Sundog - from the toot-lab: " @sydneyfalk@mst3k.interli…" -

This is still kind of nebulous but 'twas requested I bring it over for discussion, so here it shall be.

It would be nice if, during feed generation, the server added some metadata to each post which classifies why that post is being included in the feed - the “conditions” that led to its inclusion.

Example: I follow @testA@exampleA. @testA boosts a post by @testB@exampleB, who I do not follow. The boost causes that post to be displayed in my home feed, so it gains some metadata:
{ “conditions”: [ {“reason”:" boost", “from”:" @testA@exampleA"} ] }

This allows the client to offer a link (icon, textual “why is this here?”, whatever) that can tell the me I’m seeing this post because @testA boosted it, along with the following (example) options:

  • unfollow @testA
  • mute @testA’s boosts
  • mute @testB@exampleB

If the post included tags, links to mute the tag could be offered. Replace “mute” with “block” or “hide behind cw” as desired.

Obviously, the metadata currently exists for the boost scenario, as do the tags that are on a post, so much of the client functionality could be implemented without any additional metadata for those cases.

However, if the possibility exists that future versions will support user-defined custom feeds/columns with complex rules, having this sourcing object injected by the server during feed generation would be super nice to have as a client developer and as an end user.