Trunk & Tidbits, October 2024

Andy Piper

Developer Relations

Renaud Chaput

CTO

Trunk & Tidbits, October 2024

Welcome back to our monthly engineering series. In October, our long-anticipated plushies got out into the wild (mostly in Europe, for now), and we were busy tuning the code and planning what’s next.

This is also a larger entry in our blog series, for updates from around our community.

New arrivals

We are really excited to welcome Shannon Hughes to our core development team, to work on our iOS experience. Big thanks to our friends Marcus and Nathan for looking after the app over the past couple of years, as well. Shannon has already started to get to work on improvements, so look out for more in the coming months!

Post by @MastodonEngineering@mastodon.social
View on Mastodon

Shannon was not the only newcomer! We aim to keep this blog series focused on the code, but we were excited that the initial batch of #Plushtodon took the world by storm in October - check out the hashtag, for photos of happy Mastodons finding their new homes! We’re working to help them reach the UK and the US, as well; stay tuned to our Mastodon posts and merch store for more on this.

A wild #Plushtodon appeared!

A wild #Plushtodon appeared!

Releases

We released version 4.3.1, which mostly features a number of smaller fixes and polish to the main 4.3.0 release. Instance administrators are encouraged to upgrade (if you have not already done so).

Recent work

In October, we reviewed and merged 234 Pull Requests (167 with translation and dependency updates subtracted from the total) from 24 authors.

We really appreciate the contributions and support. If you would like to get involved, we have some issues tagged “help welcome”, including this one for Rails/backend, and this one for React/frontend.

Backend

The month started with a focus on small bug fixes following the 4.3.0 release, that made it into 4.3.1.

Here is a list of the notable changes that were merged in October, and will appear in the next Mastodon release:

  • api Removed support for authenticating to the API using username and password, as this can cause security issues, and this usage has been strongly discouraged by OAuth security recommendations for several years. This is a change that will affect API libraries that implemented username and password authentication, so check for compatibility if you’re using one of these - you’ll want to find a library that supports OAuth tokens, and generate one for your app. Github PR #30960 (by thisismissem)
  • new feature Added back a 6 hour mute option, in addition to the existing 1, 7 and 30 days. Github PR #32522 (by renchap)
  • new feature Group follow notifications. This can be disabled in the notification settings. Github PR #32520 (by renchap)
  • new feature Added a way for push notification endpoints to cancel a push subscription. This is especially useful if your push notification server handles things asynchronously and you know that a subscription token has been permanently invalidated. For example, we are updating our own mobile notification server to benefit from this feature. Github PR #32626 (by oneiros)
  • interface Improved the instructions to set up the fediverse:creator tag. Github PR #32383 (by ClearlyClaire)
  • interface The look of Filters and Content Warnings have been adjusted based on community feedback. Github PR #32543 (by ClearlyClaire)
  • interface Text formatting in posts should look better (and is aligned with our latest design on Android). Right now it is not possible to post formatted text on Mastodon directly, but supporting this is on the roadmap. Github PR #32633 (by gargron)
  • interface Like and boost counts for remote posts should now be more accurate, as they are fetched when a status is refreshed. This is not real-time, and is only a first step toward better support for remote-content synchronisation. Thanks to @sneakers-the-rat for this contribution, and other PRs that we are currently reviewing. Github PR #32620 (by sneakers-the-rat)
  • interface If you open a poll on a Mastodon instance other that your own, and try to vote, we now show a modal to direct you to your server. This is similar to boosting or following. Github PR #32609 (by thisismissem)

Android

Many small quality of life improvements have been made to our app over the past month. You will also find that support has been added for displaying a subset of formatted text (bold, italic, strikethrough, code spans, lists, blockquotes); creating posts with this markup is not yet supported, but this is on our roadmap.

  • interface Added an option to use the Mastodon color theme (instead of Material You).
  • interface Support for the color contrast setting in Android 15.
  • interface New look for the media viewer.
  • new feature You can now crop your profile picture when editing your profile.
  • new feature You can now long-press “Add media” in the composer to bring up the file picker.
  • new feature New follower notifications now appear grouped.
  • new feature Directional loading for gaps in timelines: load newer posts when scrolling up, older when down.

iOS

Shannon has joined the core development team, to work on the iOS app.

As well as learning the internals, Shannon has been fixing some “random” crashes tied to how authentication is handled, as well as making small UI fixes and improvements. Expect to see some more visible changes in the coming weeks, as she starts working on larger pieces.

Fediscovery

The specification work on Fediverse Auxiliary Service Providers (the archetype of Fediverse Discovery Provider) is moving forwards, thanks to some good feedback from the community. We switched to a simpler authentication model that does not involve OAuth, as feedback showed that it was not the best technical way to achieve what we needed.

Next, the focus is on having a way for providers to request data from an instance, so that the various discovery modules can build an index. We will open a Pull Request with this specification soon, to gather more community feedback.

Community news

A busy month around our community!

  • We added a short list of our recently published blog posts to the main README on our GitHub organisation page. Hopefully, more people will discover Trunk & Tidbits, and follow along with our development progress.
  • Our friends at Datadog published a case study featuring Mastodon as part of their Datadog for Open Source Projects program. In particular, this highlights the value of the OpenTelemetry support in Mastodon 4.3.
  • FOSDEM 2025 is coming in February. We’re excited that a Social Web Devroom is happening (and, we’ll be submitting to the Call for Papers). The Mastodon team has also applied for a stand, after the success of our table in 2024 - look out for future news on this.
  • Andy from our team was a guest on FLOSS Weekly episode 805, to talk about the version 4.3 release. There are video and audio versions of the conversation that you can check out, if you’re interested.
  • The recent Alt Party had a neat photo printer that printed Mastodon posts, and the code is available.
  • A number of folks have posted examples of integrating the author attribution feature, aka the fediverse:creator tag, into different blog platforms:

Bots… In… Spaaaace

Sadly, after many years, the botsin.space Mastodon instance will be closing in December 2024 - if you’ve missed the news, you can read about it on the muffinlabs website. Folks with apps / bots / accounts on that instance should already have seen the announcement notification (and, depending on account settings, may have had an email) with a reminder to look for somewhere to migrate their apps.

There are a number of options if you run one of the bots affected by this change. Here is a short list:

  • Look for a new Mastodon instance. One option could be mastodon.bot - although, it looks like it needs to be updated to the latest Mastodon version, so do look around, other instances are available! If you set up an account on a different server before botsin.space goes away, you can use the move account option to migrate the bot’s follower and following networks to the new home instance.
  • Botwiki continues to be an amazing resource for bot developers of all kinds, and has a list of resources for Fediverse bot creators.
  • Terence Eden has created an interesting new single-purpose ActivityPub app - ActivityBot- that makes it easy to build and host your own bot directly, without needing to live on a Mastodon instance (but your app will still be accessible in the Fediverse as a whole).

We’d like to say Thank You to Colin, the owner of botsin.space, for providing a nice home for so many bots on Mastodon over the past seven years. What a lovely space it was 💜 🤖 🙏

Gratitude

The whole Mastodon team values your support for our work and platform, your contributions, and your feedback.

Now is a more important time than ever to create a social web that is open, independent, and sustainable! Our work depends on donations, and we appreciate your continued support.

Thank you for supporting Mastodon

We develop and maintain the free and open-source software that powers the social web. There is no capital behind this—we rely entirely on your support through platforms like Patreon.