Tutorial – Mastodon
Tutorial – Mastodon
The open and simple Mastodon API makes it easy to create applications to interact with this federated microblogging platform. Here are some of the clients that the community has come up with and how you can use them.
Last issue [1], I introduced the Fediverse [2] and, in particular, what is becoming the rising star in the federated universe: Mastodon [3]. Mastodon, a microblogging platform á la Twitter, is succeeding because it is simple to use, while at the same time packed with features. It comes with none of the shady shenanigans proprietary platforms inflict upon their users, and it looks slick, cool, and attractive.
Thanks to Mastodon's open and simple API, you can easily write scripts to interact with your account. This has led to a whole gaggle of web clients, desktop and mobile apps, and command-line tools for Mastodon.
Web Clients
To begin with, there is Mastodon's own default web interface. Your first interaction with Mastodon is probably going to be through this. It comes with a lot of features, so many that I dedicated a large chunk of last month's article to explaining all of Mastodon's ins and outs. That said, there are more web clients out there.
Halcyon [4] is one of them. Halcyon is good if you want to enjoy the simplicity of the good, old Twitter look and feel (Figure 1) – from back when Twitter actually looked good.
Then there is Mastodon Scheduler [5]. More than a web client for Mastodon, Mastodon Scheduler is a web application, one that lets you schedule toots to be posted at a later date. A word of warning, you cannot add attachments to posts submitted with Mastodon Scheduler.
For Mastodon Scheduler to work, you need to register a new application with your account. Log in to your Mastodon account, go to Settings | Development and click the New application button. Fill in the Application name text box with, say, Scheduler (although the name does not seem to matter all that much), and click SUBMIT at the bottom of the page. This will log your application with the federated network.
Now, if you click on your application's name, it will show a list of three keys at the top of the page. The key labeled Your access token is what you need to input in the Access token text box on the Mastodon Scheduler form.
Finally, Pinafore [6] is another web-based front end, which may not seem to add anything new until you try it on a mobile device (Figure 2). Then it makes sense: On a tall, narrow screen, it makes Mastodon much less intimidating than using the default web interface.
Mobile Apps
Then again, there are a lot of mobile apps that you can use to toot on Mastodon. Tusky [7], for example, is a good-looking, entry-level app. It allows you to manage several accounts simultaneously and post, boost, and draft toots. When you are browsing your timelines, you can swipe right or left and see another timeline, so you can swipe from your home, to notifications, to local, to the federated timeline, and then back again.
If you want something with more features, check out SubwayTooter [8]. Apart from allowing you to manage several accounts like Tusky, the array of options is impressive – tap the hamburger menu icon in the lower left-hand corner of the app to see them all. In addition to being able to swipe through multiple columns like in Tusky, you can display two columns at the same time when you hold your phone horizontally (Figure 3) and add new columns to the list.
To do this, say you want to add a column that shows all posts that contain the #linux hashtag. Tap the hamburger menu (bottom left), tap the search icon (a magnifying glass), and type in your search term. That in itself already creates a new column with all the search results. However, if you tap the first result containing the hashtagged term, it will create a new column with all the toots containing the hashtag.
At the bottom of the screen, you have a kind of map that shows you where you are in the list of columns and what columns you have on the right and left. Your home timeline is represented by a house icon, notifications are a speech bubble with an exclamation mark, the local timeline is an icon of a running man for some reason, and the federated timeline is a man on a bike.
You also have a column for liked toots (represented by a star icon) and a column for conversations with other users (two overlapping speech bubbles). A hashtag column is represented by a #, and a search is represented by a magnifying glass.
If you want to get rid of a column, just tap the X in the upper right-hand corner. You can reorder columns by tapping on the hamburger menu and selecting Columns list.
SubwayTooter's other interesting feature is the possibility to schedule your toots directly from within the app. This is something that is built into Mastodon's protocol (supposedly). Some servers do not support scheduled toots, and others seem a bit flaky. Either way, it's a great idea that I am looking forward to seeing implemented more universally in the Fediverse.
Precisely to avoid the kinks, Fedilab [9], an app I started talking about last issue [1], adds one more feature: scheduling from the device itself. When you write your toot, you can choose to schedule and then decide whether you'd prefer to schedule it on the server (which, as mentioned, may not work) or let the app take charge. In my experience, the latter is more reliable. Fedilab also allows you to swipe through columns and add new ones, just like SubwayTooter.
Desktop Applications
While there are plenty Mastodon clients for mobile phones, desktop clients are pretty thin on the ground. The only one that seems to work is Whalebird [10], an Electron-based application. In other words, it is basically a thinly veiled web app wrapped in a desktop interface (Figure 4).
The first time you run Whalebird, you give it your instance and your login details, and it will open your Mastodon instance in a web browser and ask you to authorize the application. Once you do that, it will give you an authorization code that you copy and paste into Whalebird.
Whalebird is pretty basic. Although it supports managing several accounts, it can only show one column at a time, and there are no scheduling features. It is quite pretty to look at, though.
The other tested clients did not run, did not compile, or did not contain the boasted hooks to Mastodon.
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
System76 Refreshes Meerkat Mini PC
If you're looking for a small form factor PC powered by Linux, System76 has exactly what you need in the Meerkat mini PC.
-
Gnome 48 Alpha Ready for Testing
The latest Gnome desktop alpha is now available with plenty of new features and improvements.
-
Wine 10 Includes Plenty to Excite Users
With its latest release, Wine has the usual crop of bug fixes and improvements, along with some exciting new features.
-
Linux Kernel 6.13 Offers Improvements for AMD/Apple Users
The latest Linux kernel is now available, and it includes plenty of improvements, especially for those who use AMD or Apple-based systems.
-
Gnome 48 Debuts New Audio Player
To date, the audio player found within the Gnome desktop has been meh at best, but with the upcoming release that all changes.
-
Plasma 6.3 Ready for Public Beta Testing
Plasma 6.3 will ship with KDE Gear 24.12.1 and KDE Frameworks 6.10, along with some new and exciting features.
-
Budgie 10.10 Scheduled for Q1 2025 with a Surprising Desktop Update
If Budgie is your desktop environment of choice, 2025 is going to be a great year for you.
-
Firefox 134 Offers Improvements for Linux Version
Fans of Linux and Firefox rejoice, as there's a new version available that includes some handy updates.
-
Serpent OS Arrives with a New Alpha Release
After months of silence, Ikey Doherty has released a new alpha for his Serpent OS.
-
HashiCorp Cofounder Unveils Ghostty, a Linux Terminal App
Ghostty is a new Linux terminal app that's fast, feature-rich, and offers a platform-native GUI while remaining cross-platform.