πŸ”—Matrix Live S11E23 - Multi-tenancy and an audit of ESS

πŸ”—Dept of Spec πŸ“œ

Andrew Morgan (anoa) {he/him} says

Here's your weekly spec update! The heart of Matrix is the specification - and this is modified by Matrix Spec Change (MSC) proposals. Learn more about how the process works at https://spec.matrix.org/proposals.

πŸ”—MSC Status

New MSCs:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Accepted MSCs:

Closed MSCs:

πŸ”—Spec Updates

This week a number of MSCs were accepted. One notable entry is MSC4284: Policy Servers, which is a huge step forwards for moderation on Matrix.

In essence, while moderation is typically reactive in Matrix today - where someone posts spam and a bot catches it 5-10 seconds later - this MSC shifts it to be proactive. An event isn't sent into the room, or accepted by other homeservers, until it's run by a policy server.

And it doesn't stop there. Other MSCs are now building on top of policy servers to add more proactive moderation to Matrix. Hopefully the days of (briefly) seeing spam on Matrix is coming to a close. Huge thanks to the folks working to keep the public federation safe.

πŸ”—Dept of Events and Talks πŸ—£οΈ

πŸ”—Element at FOSDEM 2026

sirloynes announces

Element has published a few blog posts with fleshed out transcriptions and recordings of Element's talks from the Decentralised Comms Devroom at FOSDEM. They are Digital Omnibus, Exploring MatrixRTC, Element Web, and Sustainable decentralised comms at Element.

πŸ”—Dept of Clients πŸ“±

πŸ”—Mactrix

Viktor Strate reports

A fully native macOS Matrix client made with the Matrix Rust SDK.

This is the first update on Mactrix since I open sourced and announced it last month. So many of you have been interested in the project and it has received a lot of support. We have surpassed the first 100 stars on Github, over 25 people have joined our Matrix room, and we even got 6 new contributors to the project. The project is now also listed on the official Matrix website here.

Although I have mostly been working on stability and performance improvements, we have gotten quite a lot done, most of which was made by new contributors:

  • A new setting to control the font size has been implemented.
  • Usernames and profile pictures are now colorized.
  • User read receipts are now shown next to the latest message each user has seen.
  • Added visual feedback when starting the verification process.
  • Message drafts are now persisted so if you change room or restart the app, the unsent message stays right where you left it.
  • The timeline has been rewritten so it now renders super quickly and doesn’t jump when more messages are loaded in.

πŸ”—Resources

πŸ”—Element X iOS (website)

A total rewrite of Element iOS using the Matrix Rust SDK underneath and targeting devices running iOS 17+.

Doug says

This week has mainly been focussed on project maintenance, with the migration of our UnitTests and PreviewTests from XCTestCase to Swift Testing now complete along with a continuation of our quest to replace Fastlane with our own Swift tools.

As this winds up, we’re now focussing on 2 new features:

  • Live location sharing to bring Element X closer to feature parity with Element Classic.
  • A new, simpler authentication flow for users who wish to use their account from Element Classic in Element X.

And for those who haven’t seen the TestFlight, version 26.03.0 is available in testing and should land in the App Store next week if everything goes to plan. The main highlight of this version is a community contribution that adds support for changing the playback speed of Voice Messages.

πŸ”—Element X Android (website)

Android Matrix messenger application using the Matrix Rust SDK and Jetpack Compose.

Jorge reports

Hello from the Element X Android team! What news do we have this week?

  • New bottom bar, who this? On nightly versions we have a brand new bottom bar replacing the tab bar in the home screen, looking more modern and aligned with the new Material 3 designs. Thanks ChelseaDH for the base implementation and we hope you all like it!
  • DB optimizations: if your app gets slow the longer you use it, it could be because the temporary cache the DB uses kept growing and growing, so it became slower. We've set a reasonable limit to it so we can stay performant!
  • Improving migrating from Element Classic to Element X: we have a plan and we've tried some promising prototypes so we can make the migration from the classic app to X as painless as possible.
  • UX improvements: when the app gets killed by the OS, it tries to restore its previous state and navigation, but it did so synchronously, blocking the UI thread and the app felt like it froze sometimes. Now we do this asynchronously and we've also reduced how much data we save so the restoration can't cause problems when this data is too large.
  • Get audio focus when recording voice messages: this stops any audio playback from the device while you record voice messages. Thanks vmfunc for the contribution!
  • Disabled cross-process lock on Android: the cross-process lock is a mechanism that allows us to access the same SQLite DB from different processes and making sure only one of these processes can make changes to it at a time. However, Android uses a single process and there's no need to share this DB, so we're disabling this, which should also improve battery consumption and performance a bit.
  • Live location sharing work is starting: we started the work on the live location sharing feature, which is already supported by the Matrix Rust SDK but needs some extra work to get it properly integrated on Element X.

πŸ”—Cinny (website)

A Matrix client focusing primarily on simple, elegant and secure interface.

Lozenge says

We have released the following updates this week: v4.10.3, v4.10.4 and v4.10.5. These also include security updates, so if you’re running Cinny, this is a good time to update.

Version 4.10.3 includes a vulnerability fix. Users are strongly encouraged to upgrade as soon as possible. As an extra precaution, you should log out and then log back in after updating. Before doing that, make sure your encrypted chat key backup is working properly or take a manual backup of your keys to avoid any risk of losing access to encrypted history.

Beyond the security fix, 4.10.3 also addresses several issues and quality of life problems. It fixes a bug where sending room pill could trigger room-wide notifications, prevents invalid MXC URIs from being used, improves link privacy handling by consistently applying noreferrer.

Version 4.10.4 continues the security-focused improvements. It bumps linkifyjs and linkify-react, adds verification of the SSO window message origin, and added a new permission in room and space settings for managing emojis and stickers. It also updates Node to v24.13.1 LTS and includes several additional fixes and refinements.

Finally, v4.10.5 is a smaller follow-up release that fixes Docker and GHCR builds.

Special thanks go to Quasar0147 and mat-1 for responsibly reporting the vulnerability and helping improve the security of the project.

GitHub release can be found on: https://github.com/cinnyapp/cinny/releases

Any issues or question, please post them in our room, use #cinny:matrix.org to join!

πŸ”—We have Discord at home

Joop Kiefte πŸŸ™ (LaPingvino) says

With the current Discord refugee crisis, many have been working hard to get new servers set up, and significantly to make it work with Element Call. In this whirlwind of looking for options, Cinny has been really attractive, and the PR that slowly adds support for Video/Voice Call rooms has been attractive for many as well. I tried it and got annoyed, so I started a patch set to fix my annoyances for myself and in the meantime got others on board to test it and run it. Because I focus on iterating quickly and letting the AGPL do its job, and plan to only think of upstreaming things later when I actually properly tested and know what I want, I nicknamed the efforts Wally and set up a small community for it.

The patchset can be found at https://codeberg.org/lapingvino/cinny and at this moment includes:

  • VC Rooms
  • VC in DMs/other rooms
  • Custom ringtone support
  • A setting that fixes the emoji font just for me, shhhh
  • Accessibility improvements being actively tested and used by bgt lover
  • Multi-account support
  • An experimental implementation of an issue tracker
  • And my fork includes Ginger [she/they] pronoun and timezone patch by default

The experience of people trying it out so far is amazing, and consistently has them ignore the fact that this fork relies on LLM assistance, because it's not in fact slop. Give it a try and let us know what's missing... We have an issue tracker after all!

πŸ”—Dept of Widgets 🧩

πŸ”—Issue Tracker Widget

Joop Kiefte πŸŸ™ (LaPingvino) reports

Update about the issue tracker thing, it's now also usable independently of my Cinny fork via https://lapingvino.github.io/matrix-issue-widget/

πŸ”—Expenses Widget

cyclikal announces

The Expense Widget is something you can add to your room to share expenses with your family and friends simply by sending lightweight, human-readable messages like so:

1000 nice dinner $ @me / @me @myfriend:example.com @myotherfriend:example.com

If you've been following along recent TWIMs you'll remember the last TWIM update for the Expenses Widget a couple weeks ago where we shared some progress.

That update included work on a PR for Element Web, making the widget fully reactive, and adding support for room history exports. This time round the expense widget has gotten a whole new look courtesy of some shiny CSS, better link parsing to handle user mentions from more clients and some CI to automate the deployment of updates!

Check out the experience of using the updated widget in-room below:

Interested? Visit the repo at matrix-community/expenses-matrix-widget or add the widget now to your room by pasting the below command:

/addwidget https://matrix-expenses-widget-nightly.netlify.app/#/?widgetId=$matrix_widget_id&userId=$matrix_user_id&roomId=$matrix_room_id&baseUrl=$org.matrix.msc4039.matrix_base_url&deviceId=$org.matrix.msc3819.matrix_device_id

πŸ”—Dept of Bots πŸ€–

πŸ”—maubot (website)

A plugin-based Matrix bot system.

HarHarLinks reports

If you are using my maubot plugin maubot-idonthavespotify to resolve Spotify (and other big tech streaming services) links to your preference, you may have noticed the default configuration stopped working some time ago. It turns out the upstream service doing the resolution changed domains and with the help of Itsyourdriver I have just released v1.1.2 to adjust the default configuration to the new domain and πŸͺ„ it works again.

πŸ”—Dept of Interesting Projects πŸ›°οΈ

πŸ”—Matrix Simple Invite

Risa says

MSI is a simple client-agnostic web-based tool for creating, managing and accepting invite links to public and private rooms and spaces.

πŸ”—Features

  • Creation of invite links, with optional expiry and use limit, using a room alias, room id, or matrix.to link
  • Management of invite links, with information on time left to expire and number of uses so far, and the ability to delete them
  • Invitees can preview information about the room and the inviter before accepting the invite
  • Upon accepting the invite, the bot will send a Matrix invitation to the invitee which they can accept on the client of their choice
  • Matrix authentication via authentication link sent by the bot. Used to link Matrix users to their created and accepted invites

πŸ”—Resources

More information on the Github repository. You can freely use my instance. You can test the invitee experience by joining the official channel #msi:vtubeando.net with this invite link!

πŸ”—Screenshots

Happy inviting!

πŸ”—Benben

Mistress Remilia (she/her) says

Benben, a TUI-based audio player for Linux, now has integration with Matrix! Currently it allows you to set your status message upon song change. Here are the details:

  • Your login info goes into your Benben configuration file. Benben will warn you if you have unsafe permissions on that file at startup.
  • When you start Benben, it will grab your current status message. Then, when you exit Benben normally, it will restore the status message you had when you first started Benben.
  • After a song has played a minimum of 10 seconds, and the song is 15 seconds or longer, it will change your status message to "Now playing in Benben: The Artist - Song Title" or similar, based on the metadata available in your song.
  • Your online presence (online/offline/whatever) is not changed, just the message.
  • There is a new --no-matrix command line option that temporarily and completely disables Matrix integration. This is the same as not putting login information into your config file.

This functionality is available in the trunk code in the repository, and will be part of the v1.0 release that is planned for later this year. You can find the source code and more info at the homepage/repository.

https://remilia.sdf.org/random-stuff/shot-2026-02-20_16-35-18.jpg

πŸ”—Matrix User Manager

Sure Server reports

Matrix User Manager is a browser extension for Synapse server administrators. Manage your homeserver from the toolbar: add servers via domain (.well-known discovery), create users with username/password/display name, and manage accounts β€” lock, unlock, or remove users with optional media cleanup. All data is stored locally; no tracking, no telemetry, passwords never persisted. Works on Firefox (desktop and Android), Tor Browser, Mullvad Browser, and Chromium-based browsers, with light/dark theme support.

πŸ”—Get it

πŸ”—Source

github.com/sureserverman/matrix-user-manager

πŸ”—Matrix Federation Stats

Aine [etke.cc] says

collected by MatrixRooms.info - an MRS instance by etke.cc

As of today, 16549 Matrix federateable servers have been discovered by matrixrooms.info, 4040 (24.4%) of them are publishing their rooms directory over federation. The published directories contain 17956 rooms.

The most popular server software among the online servers is:

  • synapse: 13399 (81.0%)
  • continuwuity: 998 (6.0%)
  • conduit: 583 (3.5%)
  • dendrite: 377 (2.3%)

Stats timeline is available on πŸ“Š MatrixRooms.info/stats

🧩 Integrations with apps and servers | πŸ’œ Support the project | πŸ‘‰ How to add your server | πŸ™… How to remove your server

πŸ”—Dept of Ping

Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server.

πŸ”—#ping:maunium.net

Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1codestorm.net212
2chat.mailliw.org216.5
3envs.net222
4vibb.me253
5usbpc.xyz258
6cisnt.uk272
7nerdhouse.io272.5
8vibb.cc277
94d2.org294.5
10starstruck.systems310.5

πŸ”—That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates!

To learn more about how to prepare an entry for TWIM check out the TWIM guide.

The Foundation needs you

The Matrix.org Foundation is a non-profit and only relies on donations to operate. Its core mission is to maintain the Matrix Specification, but it does much more than that.

It maintains the matrix.org homeserver and hosts several bridges for free. It fights for our collective rights to digital privacy and dignity.

Support us