“On mastodon.social / mastodon.online, newly registered users no longer automatically follow admins. End of an era. There’s something else now… will post about it later…”
New (public) Patreon post: Feature preview: Onboarding
Feature preview: Onboarding
Back when I was working with Pam Drouin on improving the UX on joinmastodon.org and we did user testing sessions, one of the (at the time) out of scope suggestions that came up was to give a new user some choice of accounts to follow. This came up again during the development of our iOS app as I saw an opportunity to try and address that. I have heard someone call it the “interesting-ness problem” - you must give a new user something interesting in the first few seconds on the app or they bounce.
This is a pretty difficult problem to solve. When a user is new, there is nothing in the system that could be used to find what would be interesting to them. Most recommendations are based on what the user previously interacted with (in fact, our existing follow recommendations system was exactly that, showing you who you interacted with most that you don’t follow yet). I’ve made some attempts to help the situation before, namely by making new users follow their server’s admins by default (a “Myspace Tom” kind of deal) pretty early on.
New users will now see this page on first launch of the web app. Obviously this is a screenshot from my development machine, so it’s just example data. Which brings me to: How did I decide to approach the interesting-ness problem.
In absence of other information to go on, I decided that the only reasonable approach is to use the wisdom of the crowd, or popularity. To minimize vectors for manipulation and ensure the presented content is actually fresh (no use recommending someone an account that’s been inactive for a long time, even if it has the most followers!), I chose to use only local data about accounts instead of relying on total follower numbers, and to consider only followers that themselves have been active in the past 30 days.
Looking at the results, I realized that “big name” accounts are not necessarily “interesting” accounts. Case in point the @Mastodon account itself: A lot of followers, but only updates when a new version of Mastodon comes out, that’s hardly something a person would stick around for. So I had to turn to content itself, by seeing who wrote posts that got the most engagements in the past 30 days. If everyone shares around the post, it’s gotta be worth seeing, right? In the end I went with a mix of both, most-followed and most-engaged-with accounts.
The one piece of information that we do have about new users is their preferred language. Not everyone on Mastodon speaks English, so I felt it was important to try and help people find content in their own language. I added some code that determines which language an account posted in most recently, and classified accounts into those languages, allowing the follow recommendations to be specific to each language. Since not all languages are equally active on Mastodon, the language-agnostic recommendations are used as fallback.
Now a bit of practical advice if you want your account to show up in those recommendations: Make sure that in your profile settings, you have opted-in to the “Suggest account to others” option (previously it was “List this account on the directory”). Your account will also not show up if your account is locked (“Require follow requests”). Since bios on Mastodon can get pretty wild and we’re working with limited space, the UI will display only one line of the bio and attempt to cut it to the first sentence only (to avoid mid-sentence cut-offs). So try to word your bio such that the first sentence describes you best.
Conversely, new users will no longer automatically follow admins. The admin setting that used to control this is still used though, now to push specific accounts to the top of recommendations (and it’s been renamed). There’s a new API endpoint (/api/v2/suggestions) that shows a bit more information about each account, specifically the source of the suggestion: “staff”, “past_interactions” or “global”. I’m in talks with another UX designer to run some user tests on this new flow.