Bob's Tech Site

Blog

Enter the Mastodome

The "current status" section of this article was removed in September 2018. Follow Bob on social media to keep up with project updates.

We don't need another hero, but we do need another Mastodon client! The best one I've come across that isn't browser-based is Tusky, but currently this is only available on Android.

I remember in the late '00s using Tweetdeck and finding it really useful for handling multiple accounts, scheduling tweets and cross-posting until Twitter bought it and ruined it. It occurred to me late last year that writing an open source equivalent for Mastodon (a free software & decentralised alternative to Twitter) would be a pretty awesome technical project that would also scratch that particular itch for both myself and others.

It had a couple of false starts with me trying to use it as an exercise to learn Kotlin, but from the new year 2018 I finally settled on using Python with the Qt GUI framework. I released an initial prototype as version 0.1 on Wednesday 31st January 2018.

Mastodome 0.1 "First Alpha"

You can download it from here. But for now this is just an initial prototype distributed as a tarball or zip file that you can extract and run on any system with the prerequisites present.

The aim of this release was to simply create a proof of concept with the absolute bare minimum functionality to verify if this idea was viable. I learned a lot of good lessons from the exercise which I'll bring into future releases. To summarise the full functionality in this release:

Logs in and out of Mastodon and stores tokens in the local keystore (does not support two-factor authentication)

Displays home, local and public toot streams

Displays a list of current notifications (but not their content)

Sends plain-text toots a maximum of 280 characters in size

Refreshes visible toot streams when you manually refresh them

Supports custom translation files and configurations

Displays avatar images and custom artwork

...and that's it. You'll need Python 2 and a load of pre-requisites specified in a "Dev Notes" file. I've not tested it on non-Linux systems yet, but there's no reason why it shouldn't work if you have a working Python environment & Qt installed on your system. In future I intend to make it easier to install and use Mastodome, but as an initial prototype and a rough technical exercise this felt sufficient.