This won’t address your title but purely the ranking by engagement.

Have a ‘score’ number field on the Post. When something happens, like a like, comment, or share, increase the score by a value (e.g 1 for a comment, 2 for a share, and 0.1 for a like).

Have a backend workflow that, each day, multiplies the score of each post by 0.9. That effectively means a post’s score will decay by 10% each day.

To avoid performing that on potentially a huge number of posts each day, stop doing that 60 days after the post is made or something.

1 Like