πMatrix Live
Migrating millions of matrixers to MAS
πDept of Status of Matrix π‘οΈ
Quentin Gliech says
πMatrix.org now uses MAS!
On Monday this week, the backend team at Element successfully migrated Matrix.org to use matrix-authentication-service (MAS).
This happened right after the core MSCs for next-generation auth got merged into the Matrix spec!After a full week of running MAS on Matrix.org, we're happy to call the migration a great success! πΊ
This means Matrix.org users now have a new home to manage their accounts: account.matrix.org
You can read more about the migration on the Matrix.org blog:
π Matrix.org is now running MAS!
...and what it means for Element users on the Element blog:
π MAS migration unleashes Element X on Matrix.orgWe're still ironing out a few bugs, so if youβve experienced any issues related to the migration, let us know in #matrix-auth:matrix.org!
πDept of Academia ποΈ
πPhD position in Human-Computer Interaction Principles for Messaging Interoperability available in Copenhagen, Denmark!
carla says
A unique opportunity for a fully funded 3-year position to design user-friendly interfaces for managing privacy in interoperable chats.
The PhD position is in the area of Human-Computer Interaction, supervised by me (Carla Griggio) and Prof. Niels van Berkel at the Department of Computer Science in Aalborg University (Copenhagen Campus!).
Development experience related to Matrix is a plus but not a requirement. The ideal candidate has solid software engineering skills and cares deeply about interoperability and/or the user experience of managing privacy in text messaging.
π You can find more info about the position and apply here.
π¦ This project is directly related to "the walled garden dilemma" I presented at the MatrixConf, and you can watch the video here.
πResearch Paper "ReP2P Matrix"
Florian Jacob announces
Our research paper βReP2P Matrix: Decentralized Relays to Improve Reliability and Performance of Peer-to-Peer Matrixβ, is now available under CC-BY, code and data based on the existing peer-to-peer Matrix prototypes is available as well. We thought of a concept for βdisposable decentralized relaysβ - like simple, user-independent homeservers with minimal privileges and without users being bound to only one - and evaluated it as an additional way of message dissemination that complements the current P2P Matrix prototypes. The work was a cooperation between the Telematics and Decentralized Systems research groups, and was presented at the Decentralization of the Internet Workshop at ACM CoNext.
πDept of Clients π±
πElement X iOS (website)
A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.
Doug reports
This week we released Element X 25.04.3 with a collection of improvements such as
- The option to only hide timeline media in public rooms.
- The ability to kick/ban someone directly from the timeline (and add a reason when you do it).
- Improvements to hopefully reduce the amount of space use by both the SDK and the app.
On top of this weβve continued to work on support for Threads, added the ability to enter your PIN with a keyboard and improved the smoothness of the authentication flow when using OIDC.
πElement X Android (website)
Android Matrix messenger application using the Matrix Rust SDK and Jetpack Compose.
Benoit says
We are releasing a new RC 25.04.1 to fix a crash introduced recently that did not get its way to production. Thanks for all people who have sent rageshakes and to YamatoRyou for having created the issue!
Besides that, we're working on improving accessibility when using a screen reader. Also there have been some changes on the settings to prevent images from invitations to be visible for safety reason.
You'll also notice that the app got a new icon!
πCinny (website)
Cinny is a Matrix client focused on simplicity, elegance and security
Lozenge announces
Cinny v4.5.0 & v4.6.0: Enhanced room management and Privacy
The Cinny team is pleased to announce our latest updates, delivering powerful new tools for room management and user privacy.
With v4.6.0, weβve introduced customizable power levels (based on MSC3949), allowing room admins to create distinct roles with colored badges. Administrators can now bulk-import custom emojis, and upgrade room versions seamlessly. We have also improved media handling including audio/video downloads.
Our v4.5.0 release focused on privacy controls, giving users the ability to disable read receipts and typing indicators, along with automatic hiding of messages from ignored users. Weβve also implemented image upload previews and streamlined deleted message handling.
These features are now easily accessible through our redesigned room/space settings interface.
Experience these updates today: π app.cinny.in π¬ Join our community: #cinny-space:matrix.org ποΈ Follow us on Bluesky π Release notes: GitHub
πTammy (website)
Multiplatform messengers build on top of Trixnity Messenger
Benedict announces
Over the past few weeks, Tammy has grown in leaps and bounds with tons of improvements aimed at making Matrix more accessible, reliable, and delightful across platforms β especially on the web! Hereβs a quick roundup of the journey from 1.1.3 to 1.1.11 (or, in dev-speak, from Trixnity Messenger
3.2.0
to3.5.3
under the hood).πβ¨ Major New Features
Custom Themes & Material 3 Styling
Say hello to dynamic theming! Tammy now uses a brand-new Material 3 styling system, paving the way for creative themes β yes, even nostalgic ones like Windows 9x. This is just an idea, but maybe youβll be able to apply themes just by joining a Matrix room in the future.
Archived Rooms Support
Left a room but still want to check what happened? No problem β rooms stick around until you manually delete them.
Knocking Support
We now support knocking into public rooms and accepting knocks in the member list.
Accessibility Upgrades
You can now adjust font and display sizes to suit your visual preferences.
ππ§ Improvements & UI Enhancements
Revamped Styling
Tammyβs UI has been polished with unified styling for buttons, surfaces, tooltips, floating action buttons, and input areas. No more flickers or mismatched elements.
User Profile Screen
You can now view member profiles and do some room actions on them.
Performance Boosts
Web experience is much smoother, because we fixed many bugs.
ππ Fixes Youβll Appreciate
Decryption & Verification Fixes
Several bugs around device verification and message decryption are gone. Note: You may need to re-login to ensure all keys sync correctly!
Web: One Instance at a Time
We added a check to ensure only one running instance of Tammy in your browser to avoid database corruption.
πDept of SDKs and Frameworks π§°
πTrixnity (website)
Multiplatform Kotlin SDK for developing Clients, Bots, Appservices and Servers
Benedict reports
Trixnity got some polish over the past few weeks. The sync loop has been completely reworked to behave more predictably, especially when switching filters or timeouts - great news for notification reliability. On top of that, client-side support for the Matrix 1.11 federation media API has landed. As usual, a bunch of bugs were squashed and minor API improvements made to keep things smooth and stable.
πmatrix-rust-sdk (website)
Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM
Ivan π¦ reports
Time flies! Did you miss us? Because we missed you. Our latest update report was 3Β weeks ago. We were pretty busy!
First off, we are happy to announce the immediate availability of the Matrix Rust SDK 0.11 release \o/. Feel free to check the
CHANGELOG.md
files of all the crates you're interested by.πThreads & Timeline
Gimme a T! Gimme a H! Gimme a R! Gimme a E! Gimme a A! Gimme a D! Yes. We are actively working on threads. If you want to track the progress on that front, feel free to read the meta-issue Thread.
Right now, works as started to send messages in threads, or to refactor the
Timeline
to aggregate items together.A notable change in the
Timeline
, unrelated to thread, has been introduced: a new virtual timeline item to represent the start of theTimeline
. This is pretty useful if you want to render a special header at the start of theTimeline
. The consumer of theTimeline
no longer needs to do a computation dance to detect its start.πMedia gallery
A new MSC has been added: MSC4274, Inline media galleries via
msgtypes
:Matrix allows sharing individual media files such as images or videos via dedicated
m.room.message
msgtypes
. This is, however, not practical for sharing larger collections of files. For one thing, there is no mechanism to set a joint caption for several media files. For another, there is no way to inform other clients that a set of pictures belongs together and should be grouped accordingly in the timeline. These shortcomings call for a built-in media gallery feature as it is widely known from other messaging apps.As with all MSCs, an implementation on a client and a homeserver is required. And here comes a set of patches to implement this MSC inside the Matrix SDK.
πMemory usage
When a
Client
is instantiated, theBaseStateStore
is created. And if a session exists, it is restored. And when it is restored, all rooms are loaded. This is perfectly fine because it means theClient
has a full knowledge of all the user's rooms, which is expected. However, if a user has a lot of rooms, it can be problematic in one situation: push notification.When a push notification is received on a device, on some OS, a new special process is started, which requires to start a new
Client
. This is the case of iOS for example, but not on Android where the main app process is used for notifications. This special process may have memory limitations. On iOS, this is usually 20Mib. And here comes the problem. For some users with very large accounts, creating aClient
can take more than 20Mib of memory. The consequence is that the push notification process will crash, and the user will miss its notification. How annoying!We have resolve this problem with two approaches:
matrix-sdk-sqlite
gains two new types,SqliteStoreConfig
andRuntimeConfig
, to configure how SQLite will manage its pooling, its cache size, its journal size etc. (#4826, #4828, #4870, #4894)matrix-sdk-base
gains a newRoomLoadSettings
type to configure how a session will restore its room. Please read the documentation carefully because there are important details. (#4847, #4851, #4850, #4867, #4868).It was quite a ride, but it was fruitful! For these kind of users, memory dropped from more than 20Mib to 6.5Mib for the full notification process. And now these users can receive notifications again!
πEvent cache
The
EventCache
has received some love too. We have reworked the SQL schema. This was required for Threads, but also as an internal clean up of Permalinks.A memory leak has been detected when a
RoomEventCache
is dropped, and it has been fixed! A new API inmatrix-sdk-ffi
has been proposed to safely clear all room event caches.πEncryption
On encryption side, we have fixed the reset of the cryptographic identity if the user ever input the wrong password.
πSDK clean ups
We have also been pretty busy to clean up the internal of the sync flow inside
matrix-sdk-base
. This flow has evolved organically since too long, and it's time for a solid clean up (#4889, #4901, #4914). This will hopefully allow to fix a couple of small bugs here and there.Other clean ups are happening inside the SDK. It's clearly a lot of PR, so please check the
CHANGELOG.md
.πAuthentication
Did you see the super cool announcement of this week: Matrix.org is now running MAS (Matrix Authentication System)? That's for the homeserver side. On the client side, work has started since a long time and continues even today.
Client::logout
logs the user out regardless of the auth API. The OAuth API keeps being cleaned up, simplified, or made more robust (#4879, #4831, #4882).π
multiverse
multiverse
is one of our devtools. It's a debug-oriented Matrix client, built on top of the Matrix Rust SDK.A full rewrite of
multiverse
happened. It gets a lot more features, as it is used by more teams and more people trying to develop new features (#4861, #4912, #4913).
πDept of Bots π€
πmaubot (website)
A plugin-based Matrix bot system.
HarHarLinks says
This week I published a patch for my maubot plugin that resolves Spotify and other streaming services links to those of other platforms. This resolved a compatibility issue with the upstream API used. https://github.com/HarHarLinks/maubot-idonthavespotify/releases/tag/v1.1.1
wreck reports
more updates to my maubot communitybot plugin, which aims to make it easy for community leaders to manage their rooms and members on matrix.
- big update to permission management: cascading power-level management! the bot will now pay attention to power-level changes made in your parent room or space, and replicate those changes to all rooms in the space that it can. yes, that means you can make someone a moderator of your space, and they will gain moderator permissions in all rooms in it! hooray! there's even a not-horribly-painful upgrade path to move your statically defined admins/mods in your config to be admins/mods of the space as long as your bot is a space admin.
- archive and replace rooms: have a room with members you can't kick out because of power level disfunction? enabled encryption on accident? suffering from whatever the latest state-resolution bug is? created a temporary room for a convention, gathering or date-specific happening, and don't remember how to send a custom tombstone event? easily archive rooms or create updated ones without ruining everyone's day!
- interactive verification workflow for new joiners: a new hip way to combat spam in your community rooms. you can now configure some or all of your rooms to require that new members verify they know how to accept a DM invite, and are capable of following simple instructions! migration command
!community verify-migrate
will fix your existing room's permissions safely (hopefully) so anyone already in your room doesn't need to verify.- bulk message redaction: redact up to the last 100 messages from a user in a room on demand, or enable automatic bulk redaction in all your community rooms when a user is banned with the
redact_on_ban
setting. finally.feel free to join my development channel and see first-hand how the interactive verification workflow works, ask questions (after you verify π), get help, or suggest features! #dev:mssj.me
πDept of Trust & Safety π
Jim announces
πTrust & Safety update
Hi folks. You may have noticed a rash of attacks on public Matrix rooms, where attackers send floods of illegal imagery, designed to shock and appall. We havenβt been commenting publicly as itβs an ongoing incident, but we want to give you a brief update:
- The attackers are overloading homeservers with malicious federation traffic to slow down our ability to redact messages (giving the impression that weβre not responding to the raids: we are). Weβre working on solutions to this.
- Weβre also working on ways for servers to filter abusive content before it ever gets sent to clients; weβll publish details as soon as we can..
- Whilst this is ongoing, we strongly recommend hiding image previews in your client.
- In Element X, itβs in Settings >> Advanced settings >> Moderation and safety.
- In Element Web, itβs: Settings >> Preferences >> Images, GIFs and Videos >> Show previews/thumbnails for images.
- If your client doesnβt provide this, we recommend encouraging your client dev to add it.
- To clear abusive media from your server and clients:
- If you are using Synapse, you can delete abusive media from other servers by clearing the remote media cache, using https://element-hq.github.io/synapse/latest/admin_api/media_admin_api.html#purge-remote-media-api
- If your server was used to send this type of abuse, you will need to find and quarantine the media, redact the events and remove the user. Depending on your jurisdiction, you may also need to report the imagery.
- In Element Web, you can clear your cache in Settings >> All Settings >> Help & About >> Clear cache and reload
- In Element X, clearing the cache is hidden in developer settings currently: to enable them, tap the Version number at the bottom of the settings screen 7 times to reveal the Developer Options menu, then select Clear Cache.
Weβd like to apologise to those impacted by this abuse; we donβt accept this, and weβre using it to drive some step changes to how moderation works in Matrix. See also https://matrix.org/blog/2025/02/building-a-safer-matrix/ for other work ongoing in this space.
Finally: You can help. T&S depends on Foundation funding, which is currently lacking. If you want the Foundation to be able to accelerate T&S work, please consider becoming a member or donating.
πMatrix Federation Stats
Aine [don't DM] announces
collected by MatrixRooms.info - an MRS instance by etke.cc
As of today,
11227
Matrix federateable servers have been discovered by matrixrooms.info,3318
(29.6%
) of them are publishing their rooms directory over federation. The published directories contain19572
rooms.Stats timeline is available on MatrixRooms.info/stats
π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.
Rank | Hostname | Median MS |
---|---|---|
1 | pc.nexy7574.co.uk | 162 |
2 | nexy7574.uk | 167 |
3 | awawawawawawawawawawawawawawawawawawawawawawawawawawawawawawaw.gay | 171.5 |
4 | f.dog | 208.5 |
5 | conduwu.it | 212 |
6 | nerdhouse.io | 218 |
7 | usbpc.xyz | 240 |
8 | girlboss.ceo | 269 |
9 | matrix.hildebrind.space | 277 |
π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