What Mastodon Needs

I’ve been on Mastodon for about two and a half months now, which I think is long enough to have formed some opinions about where it could use some improvement. (“Where Mastodon Could Use Some Improvement” is a less-catchy title than “What Mastodon Needs”, though.)

Things are starting to move a bit faster in Mastodonia, since Twitter has started blocking its third-party client APIs, which killed off my preferred Twitter client, Tweetbot, a couple of weeks ago. Consequently, I have barely logged into Twitter since then, since as I’ve written before, the official Twitter client just isn’t good enough. And not supporting Elon Musk: Space Nazi is a side benefit.

So like many others I have just moved my microblogging over to Mastodon.

Some people who fondly remember the early days of Twitter (n.b.: I am not such a person) are excited about this period on Mastodon because we’re starting to see more client apps appearing in app stores. For example:

Aaron Ross Powell (@arossp@mastodon.social) toots: I love that I have half a dozen #Mastodon client apps installed on my phone, they're all under active development, and they all have as many (or more) features as the official app. It feels like the early days of Twitter apps, but without even the possibility of the rug getting pulled out from under it.
Federico Viticci (@viticci@macstories.net) toots: What a time to love indie apps. Third-party Mastodon clients are bringing back a sense of curiosity and excitement I hadn't felt since the heyday of Twitter clients in 2009-2011.

What am I missing? Are you working on one not on shown here? I'd love to know.

Time to work on a story

While this is exciting, for people like me it’s also a little concerning: I’m not going to use or even try every client that comes out (probably ????). I’m going to settle on one, and probably fairly soon, and it’s going to be the client that provides the best user experience for me, and which has the features that aren’t part of Mastodon itself which I really want.

When I wrote my initial post about Mastodon two months ago, I was using Metatext as my iOS client. That app’s developer has stopped developing it “for a while”, so I switched over to Toot!, which I like a lot and which is under very active development. Meanwhile the situation on macOS is still quite dire. I’m still using Mastonaut, though I really tried to use Whalebird for a while, but it has a lot of polish issues which pushed me back to Mastonaut even though its dev has stopped supporting it (because he now works for Apple).

One of the problems here is that interoperability between these apps is only what the Mastodon server software supports, so switching back and forth between them is awkward at best. So I think it’s really important for the Mastodon server software to start ramping up significantly to add features which will be widely-used. I don’t have any real visibility into how often it gets updated, or how many people are actively working on it, but hopefully we’ll see a lot of movement this year.

With that as a preamble, here are things that I’m really missing in my Mastodon experience:

1. Remembering my reading position: John Siracusa summed this up well:

John Siracusa (@siracusa@mastodon.social) toots: I think all Mastodon client apps should at least have the option to resume reading your timeline from the last place you left off. A surprising number of them seem not to.
Some don't even preserve your position when tapping "load more" or similar when some posts are missing above your current position.

I know not everyone reads their entire timeline, but one of the advantages of a chronological, non-"algorithmic" timeline is that people (like me) who do want to read everything can do so in a straightforward way...provided apps track and respect my last-read position.

Also, I'm told that the Mastodon API supports a last-read position, so, in theory, this state could be preserved across Mastodon client apps. Instead, it's often ignored even within a single app, let alone across apps.

Toot! remembers your position in any given instance of its client, but it isn’t synced to your other devices using Toot!, much less to other clients. Toot! sort of helps with this by not showing you every single toot in your timeline as you scroll up from your last position, but letting you click “load more” as you scroll up. It’s the bare minimum, but it’s not enough. Mastodon should remember this on the server side and let all clients access it. And it should remember it for other timelines (Local, Federated, Trending, and Lists) as well.

(I have no idea how Twitter or its third-party clients handled this. I suspect Tweetbot remembered this position and synced it to other instances of its client via iCloud, but I don’t know. And it doesn’t really matter how it works, just that it should work.)

Toot! did add an unread count to the timeline recently, which is really nice, but still not quite enough.

2. Lists need a more prominent UI: Toot! has a pretty nice UI on the iPad for accessing lists:

Toot! app list UI for Mastodon

The lists are shown right in the sidebar, as are saved hashtag searches. Very convenient (or it would be if I actively used them – more on this in a moment). This might not scale if you have a lot of these things, but some sort of disclosure UI would probably do the job, and there might be even better ways.

By contrast, here’s the UI to access lists in the Ice Cubes app on iPad:

Ice Cubes app list UI for Mastodon

You have to click on the Home dropdown, click on Lists, and then select a list. This is so hidden that I’ll probably never use it. It needs to get rid of at least one click.

The UI in the Mastodon web interface is so bad I’m not even going to screenshot it. It’s not worse click-wise than Ice Cubes, but it’s much more obscure.

If Lists are going to be useful then they need to have a prominent UI. Each client should keep this in mind. I also like the model of pinned lists in both Tweetbot and the official Twitter client.

3. More powerful muting of users: This is a key feature to make Lists useful. Right now when you add someone to a list they also stay in your main timeline. If you mute them, then they get muted everywhere. This makes Lists basically useless to me: The whole point of lists for me is to disperse the people I follow.

In Tweetbot I did this with selective muting: I could mute a user from my main timeline, from lists, or from searches. Usually I’d mute them from my main timeline and show them everywhere else. It seems that Tapbots’ upcoming Mastodon client Ivory is going to have a “Filter User From Home” option:

Screenshot of Ivory's Filter User From Home option.

This will probably meet my needs, but it’s something else that the server software should handle. (I did a search a while back and found a commit to the Mastodon source from a couple of years ago which seemed to be exactly this, but it doesn’t work so it might have been backed out.)

And this is the sort of thing which is going to lead to client lock-in where people like me who rely on this functionality will not only not try clients which don’t support it, but will be reluctant to switch clients at all because we won’t want to spend time reconstructing our mute lists.

(As a small aside, Tweetbot had an annoying behavior when you turned off retweets for a user in that it would only apply to the main timeline and not to lists. This made for a pretty crappy experience for how I used lists and led me to unfollow some users who retweeted a lot. More control here would be nice, but “turn off boosts everywhere” should be the default behavior if we can only have one.)

4. Bookmarks should have a more prominent UI: Mastodon has separate “like” (called “favourite”) and “bookmark” functionality, which is great since it was never entirely clear on Twitter when you Liked something if you were expressing approval or just saving it for later. (I used Likes as bookmarks and rarely liked something I didn’t want to save to find later.)

Unfortunately Bookmarks in Mastodon have a pretty hidden UI. Most clients seem to only let you access them from your user page, and don’t have a button to bookmark a toot – it’s hidden under a “more functions” popup. I think Bookmarks are likely to be a desirable feature that lots of people will want to use and they should get a more prominent UI.

dougal (@dougal@mastodon.social) toots: I wish #Mastodon clients would make #bookmarks a first-class toolbar feature, alongside commenting, favoriting, reblogging, and sharing. One use case that happens for me a lot is to see a reference to an article I want to read. But I'm busy right now and I don't want to decide whether to star the toot until I've read the article. I want to bookmark it so that I can find it again later, so having that feature immediately available
saves me trouble and time.

(All of this might indicate that Mastodon clients will want to provide some sort of configurable interface so users can set things up so they can easily get to the features they want and put the ones they don’t behind a menu. For example I almost never look at the Federated timeline. We’ll see.)

5. Saved searches: As seen in the screenshot above, Toot! has a nice feature to save searches which as far as I can tell is exclusive to Toot!, and isn’t synced at all. This isn’t essential to me, but I used it sometimes on Twitter, and Mastodon’s hashtag-based searching is really handy in directing you to toots that are highly likely to be of interest, so I would love to see this get server support.

6. Filter by toot type or content: This was a nifty little feature of Tweetbot where you could filter whatever you’re looking at to see only tweets with media, or without replies, or various other options. I used it some and while it wasn’t essential, it was really useful when I did.

It’s definitely true that Mastodon – despite being almost 7 years old – both has a lot of room to grow, and is well-positioned to see many exciting and useful innovations in the near future. But I hope the server software authors and the app authors will keep these features in mind, as I think for many mid-range users like myself (and maybe some power users as well) there’s going to be a limit to how fully we’re willing or able to engage with Mastodon without features which significantly improve our ability to control what we read and when, and how much effort we need to put in just to get to the new material.

I expect we’ll see a lot of innovation and competition in the client space this year, but if we get to the end of 2023 and we haven’t seen at least one or two of the early items on this list knocked out on the server side, then I’m going to be pretty disappointed. And I bet there are other features I don’t even think about which are important to others to have on the system.

(P.S.: I despair that we’ll get a good Mac client any time soon. But I’d settle for an iPad client I can run on Apple Silicon Macs.)

Mastodon

A popular destination for participants in the Twitter diaspora has been Mastodon, which broadly resembles Twitter (you have a timeline of people you follow, you respond to their posts, like them, and add them to your own timeline) but is different in some key ways. The most important way is that it’s a distributed network, where people join a specific instance (the term for a server), but can follow people on that or any other instanced.

I joined Mastodon briefly back in 2018 during some other scare over Twitter that I don’t even remember anymore, but the instance I joined is now defunct. With the Twitpocalypse apparently upon us I looked around for a new instance. I was reluctant to join one of the really big instances (like mastodon.social), though I’m now not sure why. Mastodon gives you a timeline of people you follow, but also one of everyone on your instance, so I decided to look for an instance with a community I might enjoy following, and ended up on sfba.social, and you can find me here.

Things are moving pretty fast and people are now recommending joining instances which are well-supported, able to handle the influx of new users, and have good moderation policies regarding the usual racist/sexist/homophobic/transphobic and other shitheads. While I don’t think my instance has been put to the moderation test yet (though it does have a list of limited and blocked instances), they’re doing pretty well on the other scores – it was under 3k users when I joined, doubled that in a day, and is now closing in on 30k, and while there have been a few bumps they’ve been ramping up capacity and asking for donations to pay for it.

As a Twitter substitute Mastodon works pretty well, depending on what you’re looking for, and keeping in mind that it hasn’t yet scaled to anywhere near the size of Twitter. For example, you can’t limit who can reply to your “toots” (as posts are called there), and it’s not even clear how that would work in a distributed system like this. I also don’t think the Legion of Shitheads has yet descended on the Fediverse (as the collection of federated servers is called), so there hasn’t been a real trial of the agglomeration’s moderation facilities.

The web interface is serviceable, and there are some good apps for iOS out there – I’m using Metatext. macOS apps are more of a work in progress: I’m using Mastonaut there, and it’s okay, but (for example) it doesn’t support bookmarks. (I’ve also been using Metatext on my Apple Silicon Macs, and it’s really close as to whether I like it better than Mastonaut there. So far Mastonaut is winning.) I also just started using Toot!, as it released its first update in a couple of years this week and it has good word-of-mouth. (It’s not available for Apple Silicon Macs, though.)

There’s a lot of opportunity for UI innovation in these apps, because for the most part they’re fairly small refactors of the web UI. Maybe Tapbots will fill that space. I wasn’t really around for the era of innovation in Twitter clients over a decade ago, so this is a new experience for me. All the clients I’ve tried so far are superficially similar but can be very different in the details. UI design is hugely influential in whether certain features are discoverable and usable, and if people are using a variety of different clients then that could really impact how the system evolves.

Functionally, I appreciate that Mastodon separates favourites (a.k.a. likes) from bookmarks, as I mainly used likes on Twitter as bookmarks and so was somewhat stingy with what I’d like. I’m starting to use each differently on Mastodon.

I haven’t yet tried the lists feature. I use lists a lot on Twitter, but in an idiosyncratic way: Most people I add to a list I mute from my main timeline, but a few I don’t, and I don’t know if I can do any of that on Mastodon. Lists looks like it’s not yet a first-class feature, as it’s somewhat obscure in the web UI, really obscure in Metatext, and doesn’t seem to be supported yet in Toot! (though it might be coming).

One thing I really miss from Twitter is an unread count for my main timeline. I realize the distributed nature of Mastodon probably makes this a little tricky, but it seems like it ought to be possibly to provide a reasonable estimate. I also miss syncing my read location across my devices, something Tweetbot does really well for Twitter. I read social media across something like 7 devices (3 iOS, 4 Macs), so it gets annoying to always be scrolling up to find the last few toots I’ve read.

It feels like Mastodon is still in its honeymoon period, and I see quite a few tweets indicating that people are aware of that. The culture is a combination of what the software supports, enforces or guides users to, and the norms that long-time users have imposed. If the system continues to grow, I expect those norms will be gradually (and at times abruptly) transformed as newer users vote with their behavior for what sorts of norms they’re willing to follow, and what they want to encourage others to follow. For example, there’s currently a norm of putting a broad array of topics behind content warnings, which hides them until you click on it, and I have a hard time seeing that enduring at the level it is today.

Mastodon seems to have tipped into having a critical mass of users, so I’ve been hanging out there more often. (A few folks I used to follow on Facebook but who dropped off of that platform have also popped up there.) I think it has a lot of challenges ahead of it, though, perhaps as soon as this year. For example, once the shitheads show up en masse I expect there will be many blockings and bannings and evictions, and some sites “defederating” other sites so they no longer receive their content. I think it’s gonna be rough, at times acrimonious, and might take quite a while to settle into a steady state (which I bet will involve several largely-separate federations). And even then it will continue evolving, just as Twitter did, as users find new things they want to and can do with it, and the software maintainers encourage some of those things and not others.

(This doesn’t include the potential issues of the U.S. or E.U. governments turning their eyes to certain instances via – for example – DMCA takedown notices, or other potentially complicated liabilities. Social media in 2022 is not social media in 2010 or 2006 or 1999, as this thread makes abundantly clear (TW: stories of some pretty nasty things the poster saw while working at LiveJournal).)

So far Mastodon gets a thumbs-up from me, and I’ve been using it about as often as I use Twitter, sometimes posting to both places, and sometimes only to one. I can see some of the rough edges and the barriers to entry that it presents, especially to non-technical users. Hopefully its growth will lead to faster evolution of the platform, although as a largely volunteer endeavor there’s no guarantee of that. But it seems to have handled the early waves of the Twitter diaspora fairly well, so I’m optimistic.