Trunk & Tidbits, December 2024
<h1 id="trunk--tidbits-december-2024">Trunk & Tidbits, December 2024</h1><p>A belated “happy 2025!” wish, from the Mastodon team (although, if you’ve been paying attention, there has been <a href="https://blog.joinmastodon.org/2025/01/the-people-should-own-the-town-square/">some important news already</a> this month). We’re a little later than planned in posting a summary of the work that happened during December, but let’s get into it.</p><p>Last month was a bit more quiet than usual, because most of the team took time off with friends and family over the annual holiday season.</p><h2 id="in-case-you-missed-it">In case you missed it</h2><ul><li>At the start of December, our Developer Relations lead, <a href="https://macaw.social/@andypiper">Andy</a>, gave the opening keynote at RubyWorld 2024 in Japan (including a video message from <a href="https://mastodon.social/@gargron">Eugen</a>). The topic was <em>The Social Web: Decentralization and Building a Better Internet</em>, and included the important role that Ruby plays in Mastodon’s development. You can <a href="https://andypiper.co.uk/2024/12/24/building-a-better-social-web/">read the full script of the talk</a>, and also <a href="https://andypiper.org/SocialWeb-RubyWorld2024/">access the slides</a>.</li></ul><figure><img alt="Talking about Mastodon in Japan" class="rounded-lg shadow-lg" src="https://blog.joinmastodon.org/2025/01/trunk-tidbits-december-2024/rubyworld.jpeg"/><figcaption class="text-sm"><p>Talking about Mastodon in Japan</p></figcaption></figure><ul><li>During December, the project published the <a href="https://blog.joinmastodon.org/2024/12/annual-report-2023/">Annual Report for 2023</a>.</li><li>We secured a table at <a href="https://fosdem.org">FOSDEM</a> 2025: <a href="https://fosdem.org/2025/stands/">find us at H14</a>. We will also be part of the <a href="https://fosdem.org/2025/schedule/track/social-web/">Social Web</a> track (more on this below), and attend the <a href="https://socialwebfoundation.org/2025/01/04/social-web-after-hours-at-fosdem-2025/">Social Web After Hours</a> meetup.</li><li>We’ve opened a new role on the team, for a front-end web developer.</li></ul><blockquote class="mastodon-embed" data-embed-url="https://mastodon.social/@MastodonEngineering/113782664417082619/embed" style="background:#fcf8ff;border-radius:8px;border:1px solid #c9c4da;margin:0;max-width:540px;min-width:270px;overflow:hidden;padding:0"><a href="https://mastodon.social/@MastodonEngineering/113782664417082619" style="align-items:center;color:#1c1a25;display:flex;flex-direction:column;font-family:system-ui,-apple-system,BlinkMacSystemFont,segoe ui,Oxygen,Ubuntu,Cantarell,fira sans,droid sans,helvetica neue,Roboto,sans-serif;font-size:14px;justify-content:center;letter-spacing:.25px;line-height:20px;padding:24px;text-decoration:none" target="_blank"><svg height="32" viewbox="0 0 79 75" width="32" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M74.7135 16.6043C73.6199 8.54587 66.5351 2.19527 58.1366.964691 56.7196.756754 51.351.0 38.9148.0H38.822C26.3824.0 23.7135.756754 22.2966.964691 14.1319 2.16118 6.67571 7.86752 4.86669 16.0214 3.99657 20.0369 3.90371 24.4888 4.06535 28.5726c.23043 5.8563.27514 11.7024.81165 17.5349C5.24791 49.9817 5.89495 53.8251 6.81328 57.6088c1.7196 6.988 8.68052 12.8034 15.50052 15.176 7.3017 2.4742 15.1542 2.8849 22.6781 1.1862C45.8196 73.7801 46.6381 73.5586 47.4475 73.3063 49.2737 72.7302 51.4164 72.086 52.9915 70.9542 53.0131 70.9384 53.0308 70.9178 53.0433 70.8942 53.0558 70.8706 53.0628 70.8445 53.0637 70.8179V65.1661C53.0634 65.1412 53.0574 65.1167 53.0462 65.0944 53.035 65.0721 53.0189 65.0525 52.9992 65.0371 52.9794 65.0218 52.9564 65.011 52.9318 65.0056 52.9073 65.0002 52.8819 65.0003 52.8574 65.0059 48.0369 66.1472 43.0971 66.7193 38.141 66.7103 29.6118 66.7103 27.3178 62.6981 26.6609 61.0278 26.1329 59.5842 25.7976 58.0784 25.6636 56.5486 25.6622 56.5229 25.667 56.4973 25.6775 56.4738 25.688 56.4502 25.7039 56.4295 25.724 56.4132 25.7441 56.397 25.7678 56.3856 25.7931 56.3801 25.8185 56.3746 25.8448 56.3751 25.8699 56.3816c4.7402 1.1335 9.5994 1.7057 14.4756 1.7044 1.1728.0 2.3421.0 3.5149-.030699999999996C48.7647 57.919 53.9339 57.6701 58.7591 56.7361 58.8794 56.7123 58.9998 56.6918 59.103 56.6611 66.7139 55.2124 73.9569 50.665 74.6929 39.1501 74.7204 38.6967 74.7892 34.4016 74.7892 33.9312 74.7926 32.3325 75.3085 22.5901 74.7135 16.6043zM62.9996 45.3371h-8.003V25.9069c0-4.0906-1.7196-6.1767-5.2173-6.1767-3.845.0-5.771 2.4679-5.771 7.3425V37.7082H36.0534V27.0727c0-4.8746-1.9294-7.3425-5.7744-7.3425-3.4771.0-5.2139 2.0861-5.2173 6.1767V45.3371H17.0656V25.3172c0-4.0906 1.0535-7.3403 3.1606-9.7492 2.1736-2.4032 5.0247-3.6372 8.5636-3.6372 4.0961.0 7.1914 1.5612 9.2549 4.6803l1.9913 3.3134 1.9948-3.3134c2.0635-3.1191 5.1588-4.6803 9.248-4.6803 3.53550000000001.0 6.3866 1.234 8.5671 3.6372 2.107 2.4066 3.1606 5.6563 3.1606 9.7492L62.9996 45.3371z" fill="currentcolor"></path></svg><div style="color:#787588;margin-top:16px">Post by @MastodonEngineering@mastodon.social</div><div style="font-weight:500">View on Mastodon</div></a></blockquote><script async="" data-allowed-prefixes="https://mastodon.social/" src="https://mastodon.social/embed.js"></script><h2 id="releases">Releases</h2><p>No release updates during December: the latest released versions remain <a href="https://github.com/mastodon/mastodon/releases/tag/v4.3.2">4.3.2</a>, <a href="https://github.com/mastodon/mastodon/releases/tag/v4.2.14">4.2.14</a>, and <a href="https://github.com/mastodon/mastodon/releases/tag/v4.1.21">4.1.21</a>.</p><p>As a reminder, Mastodon 4.1.x is now deprecated, which means that it will reach End of Life and no longer receive updates on April 8, 2025. If you own an instance running 4.1.x, please update to 4.2.x or 4.3.x soon.</p><p>We recommend that owners / administrators of Mastodon instances upgrade to the latest available versions, as appropriate to their environments.</p><h2 id="code-updates">Code updates</h2><p>In December, we reviewed and merged 187 Pull Requests (127 with translation and dependency updates removed) from 17 authors. This was a quieter month, as the team was away for the holiday break.</p><h3 id="backend">Backend</h3><div class="features-list"><ul><li><span class="rounded-lg bg-green-300 uppercase px-2 py-1 text-xs font-bold mr-1">interface</span>
Add an option to use the system scrollbars <span class="not-prose">—
<a class="whitespace-nowrap inline-flex items-baseline underline" href="https://github.com/mastodon/mastodon/pull/32117"><img alt="Github" class="h-4 inline mr-1 self-center" src="https://blog.joinmastodon.org/github-logo.svg"/>
<span>PR #32117</span>
</a><span>(by
<a class="underline" href="https://github.com/vmstan">vmstan</a>)</span></span></li><li><span class="rounded-lg bg-blue-300 uppercase px-2 py-1 text-xs font-bold mr-1">new feature</span>
Do not direct unconfirmed users to the settings, but to the “Check your inbox” screen, to reduce confusion <span class="not-prose">—
<a class="whitespace-nowrap inline-flex items-baseline underline" href="https://github.com/mastodon/mastodon/pull/33209"><img alt="Github" class="h-4 inline mr-1 self-center" src="https://blog.joinmastodon.org/github-logo.svg"/>
<span>PR #33209</span>
</a><span>(by
<a class="underline" href="https://github.com/Gargron">Gargron</a>)</span></span></li><li><span class="rounded-lg bg-blue-300 uppercase px-2 py-1 text-xs font-bold mr-1">new feature</span>
Adds optional Terms of Service, along with a generator based on a template from our law firm. This is not yet 100% finished, as we plan to update it based on feedback. <span class="not-prose">—
<a class="whitespace-nowrap inline-flex items-baseline underline" href="https://github.com/mastodon/mastodon/pull/33055"><img alt="Github" class="h-4 inline mr-1 self-center" src="https://blog.joinmastodon.org/github-logo.svg"/>
<span>PR #33055</span>
</a><span>(by
<a class="underline" href="https://github.com/Gargron">Gargron</a>)</span></span></li><li><span class="rounded-lg bg-blue-300 uppercase px-2 py-1 text-xs font-bold mr-1">new feature</span>
Allow instance to configure their HTTP Referer policy through a system setting. We previously disabled any <code>Referrer</code> header on links to external websites to avoid any data leakage, but on instances with many users it makes sense to allow the referer domain, as you can not tie the visit to any user. It will help publishers to see traffic coming from Mastodon. <span class="not-prose">—
<a class="whitespace-nowrap inline-flex items-baseline underline" href="https://github.com/mastodon/mastodon/pull/33214"><img alt="Github" class="h-4 inline mr-1 self-center" src="https://blog.joinmastodon.org/github-logo.svg"/>
<span>PR #33214</span>
</a><span>(by
<a class="underline" href="https://github.com/Gargron">Gargron</a>)
</span></span><span class="not-prose">—
<a class="whitespace-nowrap inline-flex items-baseline underline" href="https://github.com/mastodon/mastodon/pull/33239"><img alt="Github" class="h-4 inline mr-1 self-center" src="https://blog.joinmastodon.org/github-logo.svg"/>
<span>PR #33239</span>
</a><span>(by
<a class="underline" href="https://github.com/renchap">renchap</a>)</span></span></li><li><span class="rounded-lg bg-blue-300 uppercase px-2 py-1 text-xs font-bold mr-1">new feature</span>
Changed the search feature so the parameters are in the URL. It allows copy and pasting of a search result page. <span class="not-prose">—
<a class="whitespace-nowrap inline-flex items-baseline underline" href="https://github.com/mastodon/mastodon/pull/32949"><img alt="Github" class="h-4 inline mr-1 self-center" src="https://blog.joinmastodon.org/github-logo.svg"/>
<span>PR #32949</span>
</a><span>(by
<a class="underline" href="https://github.com/Gargron">Gargron</a>)</span></span></li><li><span class="rounded-lg bg-green-300 uppercase px-2 py-1 text-xs font-bold mr-1">interface</span>
New cute animation on the feed loading screen. <span class="not-prose">—
<a class="whitespace-nowrap inline-flex items-baseline underline" href="https://github.com/mastodon/mastodon/pull/33311"><img alt="Github" class="h-4 inline mr-1 self-center" src="https://blog.joinmastodon.org/github-logo.svg"/>
<span>PR #33311</span>
</a><span>(by
<a class="underline" href="https://github.com/Gargron">Gargron</a>)</span></span></li><li><span class="rounded-lg bg-green-300 uppercase px-2 py-1 text-xs font-bold mr-1">interface</span>
Simplify the design of the interaction modal to make it less confusing to users and focus on the important part. <span class="not-prose">—
<a class="whitespace-nowrap inline-flex items-baseline underline" href="https://github.com/mastodon/mastodon/pull/33278"><img alt="Github" class="h-4 inline mr-1 self-center" src="https://blog.joinmastodon.org/github-logo.svg"/>
<span>PR #33278</span>
</a><span>(by
<a class="underline" href="https://github.com/Gargron">Gargron</a>)</span></span></li><li><span class="rounded-lg bg-orange-200 uppercase px-2 py-1 text-xs font-bold mr-1">performance</span>
Add a configuration option to configure Active Record query log tags, which will insert an SQL comment in every query with the controller and action that generated the query. This is very useful for SQL performance work. <span class="not-prose">—
<a class="whitespace-nowrap inline-flex items-baseline underline" href="https://github.com/mastodon/mastodon/pull/33342"><img alt="Github" class="h-4 inline mr-1 self-center" src="https://blog.joinmastodon.org/github-logo.svg"/>
<span>PR #33342</span>
</a><span>(by
<a class="underline" href="https://github.com/renchap">renchap</a>)</span></span></li></ul></div><h3 id="android">Android</h3><p>Nothing significant to report for December.</p><h3 id="ios">iOS</h3><p>Our final release of 2024 brought improvements to the compose window and the timeline.</p><p>The app is now less likely to freeze up while you’re typing out a post, and the post compose view won’t disappear (along with all your typing&mldr;) until after the post has successfully published.</p><p>In the timeline, link previews no longer show large blank spaces for images that never arrive, and compact link previews show all the expected information.</p><p>We also fixed a problem where images and avatars could show up with posts they didn’t belong to, and one where GIFs in content-warned or filtered posts were not blurred out. Filters set to hide, really do remove posts from your timeline completely now, and tap targets in the post header are easier to hit (for the author name, action menu button, and show/hide button).</p><p>In the coming months, we will continue improving stability and fixing small UI issues while working towards supporting grouped notifications, and updating post layouts to the latest design.</p><h3 id="documentation-and-website">Documentation and website</h3><p>We continue to get great community contributions for the <a href="https://github.org/mastodon/documentation">documentation repository</a>, and will work on improving our rate of review here during 2025.</p><p>The <a href="https://github.org/mastodon/joinmastodon">code for the main joinmastodon.org website</a> has a backlog of dependency updates via Renovate, including some with React components that contain breaking changes. If you would like to help out here, please <a href="https://github.com/mastodon/joinmastodon/pulls?q=is%3Apr+is%3Aopen+label%3Adependencies">take a look</a> - we would welcome the additional help to get things to a better state!</p><h2 id="fediscovery-project">Fediscovery Project</h2><p>We merged our <a href="https://github.com/mastodon/fediverse_auxiliary_service_provider_specifications/pull/36">first draft of the data sharing specification</a>. We also have a working proof of concept provider implementation, along with the Mastodon integration.</p><p>Work is now focused on the first real capability, trends (for which we have a <a href="https://github.com/mastodon/fediverse_auxiliary_service_provider_specifications/pull/45">first specification draft</a>), and the implementation of the reference provider software.</p><p>You can learn more about Fediscovery at FOSDEM - check out <a href="https://upp2.com/@dave">David</a>’s <a href="https://fosdem.org/2025/schedule/event/fosdem-2025-4531-fediscovery-improving-search-and-discovery-on-the-fediverse/">talk on Saturday afternoon</a>.</p><h2 id="thanks">Thanks</h2><p>The past year has been a period of change and growth, inside and outside of the Mastodon project - new team members, new organisations forming in the Fediverse, more people discovering that there is an opportunity to choose better social media. If you read <a href="https://blog.joinmastodon.org/2025/01/the-people-should-own-the-town-square/">the news about the organisational change</a> over the coming months, you will see that we plan to continue to build Mastodon for everyone.</p><p>Thank you for your support, and for your contributions.</p><div class="not-prose rounded-md p-8 flex flex-col items-center mt-8 border border-blurple-500"><h3 class="text-lg font-bold mb-2 text-center">Thank you for supporting Mastodon</h3><p class="text-md mb-8 text-center">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.</p><div class="flex flex-col md:flex-row gap-4"><a class="flex-0 text-sm items-center justify-center rounded-md border-2 border-blurple-500 bg-blurple-500 py-2 px-4 !font-semibold text-white transition-colors hover:border-blurple-600 hover:bg-blurple-600 flex" href="https://patreon.com/mastodon">Donate on Patreon</a>
<a class="flex-0 text-sm items-center justify-center rounded-md border-2 border-blurple-500 bg-blurple-500 py-2 px-4 !font-semibold text-white transition-colors hover:border-blurple-600 hover:bg-blurple-600 flex" href="https://donate.stripe.com/00g5l42h8ezY3YcaEE">Donate directly</a>
<a class="flex-0 text-sm items-center justify-center rounded-md border-2 border-blurple-500 py-2 px-4 !font-semibold text-blurple-500 transition-colors hover:border-blurple-600 hover:text-blurple-600 flex" href="https://joinmastodon.org/sponsors">View our sponsors</a></div></div>