oakstudios / joinmastodon

The official Mastodon project homepage
https://joinmastodon.org
0 stars 0 forks source link

Add sort to server list #38

Closed mikabusante closed 2 years ago

mikabusante commented 2 years ago
Screen Shot 2022-07-20 at 11 59 29 AM

What are the sort options here? maybe "Recently added", "Largest server size", "Smallest server size" (idk about the wording lol)

danielgamage commented 2 years ago

re: https://github.com/mastodon/joinmastodon/blob/797be0a523ec882d8e1083d95e290092b4864ef6/src/reducer.js#L86-L93

image

we should evaluate whether this sorting method is useful. my gut says there's more useful metrics we could pull out, like "activity" being a comparison of

log(last_week_users) / log(total_users)

eg:

[
{ "total_users": 725761, "last_week_users": 43440, "log_activity": 79.134, "linear_activity":  5.985 },
{ "total_users": 23790,  "last_week_users": 9482,  "log_activity": 90.871, "linear_activity": 39.857 },
{ "total_users": 164,    "last_week_users": 46,    "log_activity": 75.073, "linear_activity": 28.048 },
{ "total_users": 76,     "last_week_users": 45,    "log_activity": 87.898, "linear_activity": 59.210 },
{ "total_users": 301,    "last_week_users": 45,    "log_activity": 66.700, "linear_activity": 14.950 },
{ "total_users": 101,    "last_week_users": 12,    "log_activity": 53.842, "linear_activity": 11.881 },
{ "total_users": 626,    "last_week_users": 2,     "log_activity": 10.764, "linear_activity":  0.319 }
]

which shouldn't ding huge servers like mastodon.social for having (linearly) proportionally fewer weekly active users, but also accurately ranks small, high-activity servers higher. those log numbers could be useful for visualizing activity too

danielgamage commented 2 years ago

i'll work on and PR the component part of this—i need it for the /apps page too

thinking rather than a custom dropdown we can just use a native select menu so mobile is clean

danielgamage commented 2 years ago

i think we're not going to try to add this because it won't scale as soon as pagination hits the /servers page. should be done upstream in the API instead, and we've added the dropdown components needed to support it