❌

Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
🔲 ☆

This Week in Matrix 2026-10-09

🔗Matrix Live S13E12 - Foundation & Event updates

Today's Matrix Live: https://youtube.com/watch?v=h7zkO2UFIl0

🔗Dept of The Matrix Conference 🏛️

Andy says

The Matrix community assembles in Malmö, Sweden in a little over 10 days' time, for our conference, followed by another day of hacking and collaborating in Copenhagen, Denmark! Are you ready to join us?

As mentioned in Matrix Live this week, the event will include a demonstration of cross-border federation in the public sector. Don't miss it!

Speaker card showing Matthieu Velten, Kenneth Edwall and Jeroen Franssen with the title "Bridging private federations across borders"

Don't forget to bring your project stickers with you, for the event sticker exchange.

This really is a must-attend event, get your ticket now here.

🔗Dept of Events and Talks 🗣️

🔗Stammtische (website)

HarHarLinks reports

A Stammtisch ("regular's table") is a German meetup format where those with a shared interest meet regularly for discussion, exchange, and socialising.

Find more community organised events at matrix-community.events!

Are you running a Matrix meetup? Add it to the list!

🔗Dept of Spec 📜

Andrew Morgan (anoa) {he/him} announces

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:

  • No MSCs were accepted this week.

Closed MSCs:

  • No MSCs were closed/rejected this week.

🔗Spec Updates

Despite the lack of MSCs entering FCP/being accepted/etc. there's been quite a lot of activity on the Matrix 2.0 spec front!

The SCT is hoping to get the Matrix 2.0 MSCs landed before the Matrix conference. Follow along below for how that's going:

🔗Dept of Clients 📱

🔗Tesseract (website)

Marco announces

Hello, folks! It's been some time since the last update, so here it is:

Tesseract is now in beta! The last missing features (invite dialog and room moderation: kick/ban/unban) were added in 0.9.0. This doesn't mean new features aren't coming; only that it should be possible to use it as your main daily desktop client.

There have been 7 releases since the last TWIM post and there are too many changes to list here, but I'd like to mention call rooms, directory browser, user status, and simpler encryption setup and recovery.

About encryption setup: in the ongoing effort to make this easier and more user-friendly, a new silent recovery setup was added (only for accounts without recovery set up). Tesseract will set the encryption and recovery silently and save the recovery key in the OS secure storage (only if available), and then periodically nag the user to make sure it is saved in a better/safer place. This way a new user will have a fully functional client with all the end-to-end encryption capabilities set up, right after login. (This can be disabled with a build flag, in case a build without this functionality is needed). Hopefully this will make onboarding new users much simpler.

On a different note, Tesseract is now available in the Microsoft Store, which is something I never imagined I would say out loud, but here we are 🤷🏻 (easier installs, with proper signed binaries, for free; how could I resist?)

For the curious, here are all the recent changelogs. Feel free to drop by the official room!

🔗Element X Android (website)

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

Jorge says

Hello everyone, this week on the Element X Android team we've been focused on:

  • Improving the multi-account feature (still behind a feature flag). There is a better UX for selecting which account you're using and more places where this is useful, like when sharing something coming from outside the app.
  • Global search: we're now able to automatically back paginate and add past history to the search index so you can search for older messages in your encrypted rooms. The feature should be available shortly, too!
  • Multi-selection of messages in rooms: you'll be able to select and forward several messages into other rooms, instead of having to do it one by one. There are some limits set to prevent spamming. The feature is still a work in progress, so it's behind a feature flag.
  • Element call native: the VOIP team has been working really hard to deliver a better experience than webview integration, which is known to have limitations and audio bugs we can't fix because the webview environment limits us, so they built a native experience instead. This is behind a feature flag for now, but if you can test it, we'd love to know your feedback.
  • Unread counts in the room list: we're displaying unread notification counts in rooms now and we've improved their UI too. With backpagination, they should be way more accurate now, although we know there are still some corner cases we need to fix. There is also the option now in the app to display only unread notifications in the room list, instead of displaying also an indicator for unread messages in rooms you don't really care about.
  • Improving the send queue: we know there are some issue related to the send queue after we changed its logic to try to enforce the order of sent events and are working on fixing those.
  • We're now automatically dismissing notifications for rooms we know are fully read from other devices.

And many other bug fixes and improvements.

🔗Dept of VoIP 🤙

🔗LiveKit JWT service (website)

Bridging Matrix and LiveKit for Matrix RTC realtime sessions.

Johannes Marbach says

lk-jwt-service v0.8.0 was released yesterday. This release updates the Client-Server endpoints for token requests and delayed leave delegation to the latest state of MSC4195. Some of these changes are breaking, unfortunately. We've considered this acceptable because we're also still wrapping up the client-side implementation for actually using the Client-Server endpoints in matrix-js-sdk and element-call. The legacy, non-client-server endpoints still exist, however, and have received a security fix. Therefore, we recommend updating in either case.

🔗Dept of SDKs and Frameworks 🧰

🔗djangomatrixappservice

Fabian says

Do you want to manage a larger amount of bots (lets say you want to write another bridge)? How about managing them through a web interface? Or just send notifications from your webservice to your users? How about implementing all this in a powerful, python-based web framework?

Well, here is a solution to that! I have completely rewritten pretty much all of the code in the central component of a larger project that i started two and a half years ago during my funding from PrototypeFund.

I call this central component djangomatrixappservice, because it is a Django app that can interact with the matrix application service api. It comes bundled with a matrix-nio based client.

It supports multiple auth types:

  • Application service identity assertion
  • Rotating OIDC/MAS tokens
  • Legacy password login/long-lived tokens

Activity is triggered by…

  • your code
  • push notifications directly from the homeserver to your web service
  • application service transactions to your web service

There is no long-running sync-requests in the background, so this does scale to as many accounts as you like without requiring more energy.

Despite having found ways to unit test a lot of it, there are still important parts that are not covered by that yet, so currently it is very experimental. I am posting this now, because I am confident that this approach is abstract enough to fulfill a lot of developer needs, but provides enough guidelines to become a common base for different projects. Since the initial migration for a django project is pretty important to get right, this is the perfect time to gather feedback for that.

Next steps include:

  • Add more documentation on how to get started
  • Increase the coverage of unit testing
  • Gather experience from more little projects

The code is hosted on codeberg: https://codeberg.org/alertrix/djangomatrixappservice

Feel free to reach out to me in the #twim-offtopic room or #djangomatrixappservice:alertrix.net

I would love to hear your feedback (how would you want to integrate it in a project) and I am looking forward to posting more about this in the future!

🔗Dept of Built on Matrix 🏗️

🔗OUDEA and bytEM

Tero says

OUDEA and the first public version of bytEM are now live.

As bytEM is built on Matrix / Synapse federation, I thought this might also be interesting for the wider Matrix community. We’ve now reached the point where the architecture, installer and first working implementations can all be explored publicly:

The basic idea is to use Matrix federation not primarily for communication, but as the underlying infrastructure for a federated data exchange architecture — allowing independently operated data products to be discovered, referenced and exchanged across organisations.

We would really appreciate any further opportunity to give this air time within the Matrix community, whether at an upcoming Matrix Conference, conference session, community call, or another format you think would fit. Unfortunately my official application to present in Malmö was turned down.

I think it could be an interesting example of Matrix being used well beyond messaging, and we’d be very happy to present and demo what we have built, what we have learned, and where we are taking it next.

🔗Matrix Federation Stats 📊

Aine [etke.cc] says

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

As of today, 20512 Matrix federateable servers have been discovered by matrixrooms.info, 4122 (20.1%) of them are publishing their rooms directory over federation. The published directories contain 19715 rooms.

The most popular server software among the online servers is:

  • synapse: 15804 (77.0%)
  • continuwuity: 1920 (9.4%)
  • conduit: 543 (2.6%)
  • dendrite: 284 (1.4%)

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.

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

RankHostnameMedian MS
1vrkknn.net167
2codestorm.net186
3raccoon.cafe192
4sspaeth.de235.5
5ellis.link251.5
6awesomesheep48.ca301
7qwertyad.one317.5
8victorewik.es353
9elisaado.com367.5
10koshchki123.com390.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.

🔲 ☆

Matrix at DWebCamp 2026

One of the highlights of the early days of Matrix was attending the inaugural Decentralised Web Summit back in July 2016 at the Internet Archive. This was an amazing opportunity to meet and collaborate with a huge range of decentralisation projects trying to "lock the web open" and fight back against the perils of centralisation: ranging from the original gangsters (the Web, WAIS, Xanadu, and the Internet itself) through to the newer generation of projects.

Fast forward 10 years, and we were very happy to be able to attend the July 2026 incarnation too! This time it was held outside Berlin at the amazing Alte Hölle collective; what better place to fight surveillance capitalism from than a former Stasi holiday camp. Happily many of the faces and projects from earlier DWebSummits and DWebCamps were present and it was fantastic to sync with folks from ATProto, Spritely, Iroh, P2Panda, Willow and others.

Communication for the camp ran primarily on Matrix, and we were very grateful to end up with Matrix featuring in 4 different sessions: A dedicated talk on the current state of Matrix and all the new P2P Matrix development; a fireside chat on 12(!) years of Matrix and what comes next; a panel looking at how decentralisation has evolved since the 2016 summit and where it might go next; and finally a panel on the state of P2P in general.

The reason for talking about it now is that all the videos have now been published - so, if you missed out on attending at the time, now is the opportunity to sit back, relax, return to the beginning of summer and catch up on what happened at DWebCamp. For your convenience and viewing pleasure, here are the main sessions which featured Matrix:

🔗Videos

🔗P2P Matrix: A New Hope

P2P Matrix: A New Hope video

🔗Twelve Years of Matrix: What Worked, What Didn't, and the Road to a Peer-to-Peer Future

Twelve Years of Matrix: What Worked, What Didn't, and the Road to a Peer-to-Peer Future video

🔗The Future of P2P

Watch The Future of P2P

🔗A Decade of Decentralization: Looking Back, Leaning Forward

A Decade of Decentralization: Looking Back, Leaning Forward video

🔲 ☆

This Week in Matrix 2026-10-02

🔗Matrix Live S13E11 - All Things Matrix

Today's Matrix Live: https://youtube.com/watch?v=pe6tJMZErh8

🔗Dept of The Matrix Conference 🏛️

🔗The Matrix Conference (website)

HarHarLinks says

It's finally October, the month of The Matrix Conference 2026! Within only 18 days from publishing this blog, the Matrix community and ecosystem meets in Malmö, Sweden for 3 days of conference, followed by another day of hacking and collaborating in Copenhagen, Denmark!

While the Conference is primarily an in-person event #LocalFirst, it will be accompanied with live streams from all 3 conference stages during the 2 main conference days, powered once more by the amazing c3voc! And of course we could not miss our chat rooms to virtually represent the physical stages on Matrix itself, a "General" chat for the hallway track, hackathon, and more. You can now find all of these grouped in this year's Conference space #conference-2026:matrix.org, and also on the Conference website soon. Naturally, the chats are just as practical if you will be attending in person, as we will be posting news and you can get in touch with other attendees, both remote and present! Note that rooms are read-only for now and will become available for chatting closer to the start of the Conference. Speakers and volunteers will also find that the respective private rooms are inside the same space.

Speaking of volunteers: Here's your chance to join the volunteer chat, get a limited Sweden-colored volunteer hoodie, and most importantly help make MatrixConf happen! We have made some (hopefully final) adjustments so the shifts in our volunteering system match our schedule more precisely, and also added a couple more shifts! If you're interested in participating in one of our workshops, this should be particularly interesting to you!

Finally, our ticket reserves are starting to dwindle, so if you are planning to attend in person, get your ticket!

Until next week with more news, Your Events WG

🔗Dept of Spec 📜

Andrew Morgan (anoa) {he/him} announces

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

The SCT is continuing to focus on Matrix 2.0 MSCs in the hope that they may be ready for the Matrix conference this month. Critically, shortcuts are not being taken to get these MSCs over the line. The team is simply focusing their efforts on these MSCs instead of others for the time being.

🔗Matrix 2.0 Checklist

The following is the current state of the various MSCs:

The team and authors certainly have their work cut out for them, but things are looking cautiously positive! Stack Chart of MSC progress over time

🔗Dept of Servers 🏢

🔗Zendrite (website)

pat-s announces

Zendrite is a Matrix homeserver written in Go, forked from Dendrite earlier this year. v3.4.0 is out, and its headline feature is active-passive high availability.

High availability (opt-in). Run several Zendrite candidates against shared PostgreSQL, NATS JetStream and S3-compatible media storage; a Kubernetes Lease elects one to serve while the others wait as standbys. A durable ownership generation fences every boundary (database, broker, media, outbound federation and request admission), so a paused or partitioned old leader cannot write after its successor takes over. Rolling upgrades between compatible builds hand over without failed client requests (search briefly answers 503 while the new leader rebuilds its index), and an upgrade contract refuses builds that would need an offline migration.

HA changes are qualified in CI by a fault-injection harness that runs against real PostgreSQL, a three-node JetStream cluster, a kube-apiserver and a federating peer. It kills, freezes and partitions leaders, fails over PostgreSQL, loses brokers, and checks that no acknowledged write, to-device message or receipt goes missing.

Federation and sync.

  • MSC4311 and knocking over federation.
  • Bundled aggregations for threads, edits and references on every endpoint that should carry them.
  • Per-thread unread counts (MSC3773).
  • Large rooms no longer stall sync: a state update in a room of 50,000 members now takes seconds instead of minutes.

Reliability. Dozens of fixes found while qualifying HA also benefit single-server setups:

  • Federation transactions are retried instead of silently dropping receipts or to-device messages when the broker cannot take them.
  • A silent NATS broker is detected in about 30 seconds.
  • Consumers retry transient failures instead of losing work.
  • New metrics make a stalled consumer or a struggling broker visible.

Upgrade notes, the full changelog and the HA guide are in the docs and the release. Chat with us in #dendrite:matrix.org.

🔗Synapse (website)

Synapse is a Matrix homeserver implementation developed by Element.

madlittlemods (Eric Eastwood) reports

This week we have a new release, Synapse 1.162.0. To highlight:

  • The default room version is now room version 12 (#20130, thanks to @jason-famedly from Famedly).
  • As a reminder, we've been driving forward Matrix spec compliance by filling in a bunch of tiny gaps in behavior between Synapse and the Matrix spec. This release includes even more fixes (#20115, #20154, #20181, #20200). And we're at the point that we will be advertising support for more Matrix spec versions in the next release ✨.
  • Also as part of the Matrix spec compliance march, we fixed the flawed MSC4311 implementation originally introduced in Synapse v1.136.0 (#19723). This is a fix around stripped state for invites/knocks: client-side APIs like /sync use stripped state events and we now send full PDUs on the federation-side. This also fixes the incompatibility that Continuwuity v26.6.1+ folks have been experiencing since the stripped state format is strictly validated there. To give the ecosystem time to adapt, Synapse will only apply strict validation to incoming invites and knocks after 2027-06-01.
  • /sync no longer drops state events in MSC4222's state_after when the since token falls inside a persisted batch of events (#20171).
  • /relations got a speed boost in large rooms (10-100x purportedly) which means opening the thread panel should be much quicker (#20182).
  • We got some help with one of the pesky Complement test flakes to ensure the /room_summary endpoint returns fresh and accurate join_rules (#20205, thanks to @jason-famedly from Famedly)

Thank you to all our contributors for helping to make Synapse the best it can be. As always, feel free to stop by #synapse:matrix.org to join in on the discussion and if you encounter a bug make sure to report it.

🔗Dept of Clients 📱

🔗Cinny (website)

Lozenge reports

Cinny 4.12.7 is now available with a small but important set of fixes and maintenance updates. This release updates the sanitize-html and react-router-dom dependency (security fix), fixes "%" sign wraps below the input issue, and correct emoji autocompletion overwriting preceding element.

🔗Element X Android (website)

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

Benoit announces

Last week

  • Settings are being reorganised: account settings and application settings are now split, the user status moved, and the multi-account section was updated. Still behind a feature flag.
  • Removing a message now asks for confirmation, and you can give an optional reason.
  • Fixed a blank screen at launch when the homeserver expires the sliding sync session, and fixed a leak of threaded timelines.

This week we shipped versions 26.09.3 and 26.09.4, with updated SDK bindings and a fix for rustls failing certificate revocation checks on app start. Native Element Call integration is moving forward: calls can now be drawn directly in the app, follow you into picture-in-picture, and be answered through a dedicated call entry point. Multi-account support keeps improving, with incoming verification requests now shown for all signed-in accounts, along with which account is being verified. Each account's avatar thumbnail is now stored in its session database and used as a fallback when showing your other accounts. The sign out and signed-out screens have been redesigned, now displaying account info and scrolling properly on small screens. Automatic back pagination and unread indicators are now enabled by default, and you can choose to display only unread notifications. Search history got buttons to remove a single item or clear the whole history. As usual, plenty of bug fixes and dependency upgrades landed too, including a crash fix in voice message playback.

🔗Element Classic Android

Benoit says

  • Element Classic Android 1.6.66 is out, with an updated banner about excluding insecure devices, following the banner encouraging migration to Element X in 1.6.64.

🔗Rabble (website)

rig announces

I've been building Rabble, a new desktop Matrix client aimed particularly at voice-heavy communities.

It combines Matrix messaging with push-to-talk and voice channels, with the goal of covering some of the use cases that keep communities on Discord while remaining a Matrix client.

Rabble is built as a native desktop application rather than on web technologies, which keeps it lightweight and gives it direct access to platform APIs for things like global shortcuts and other OS integration.

Screenshot of the Rabble user interface

The first public builds are available for Windows, macOS, and Linux. It's still early, and feedback is very welcome.

🔗Nexus (website)

Matrix client made with Flutter and a Gomuks backend.

QuadRadical (Ping) announces

Hello TWIM! Nexus was on TWIM last week, but a lot has changed since then, so here's the rundown:

  • Notable speed improvements: By rewriting our timeline widget and state merge code, performance has been greatly improved. Expect faster room loads, and less hitching.
  • Support for jumping to out-of-timeline events: This has been an annoyance for a long time, but it's finally fixed! The timeline rewrite made this easier, and the whole feature landed in a diff of only a few hundred lines.
  • Flatpak repo: Nexus is now available through a Flatpak repo, so updates can happen through flatpak update or your software center of choice. More information can be found at https://nexus.federated.nexus/#flatpak.
  • Room summaries: Before joining a room, you now see a summary of information about that room:

A dialog showing the name, avatar, member count, canonical alias, and topic of the Envs lounge

  • Clickable room links: With the change above, it was easy to implement clickable room links. Clicking a room link focuses that room if you are joined, or opens a join dialog if you are not.
  • Event links: Event links work the same way, but also scroll to the linked event.
  • And, as always, a whole lot of bug fixes 🙂

🔗Initial release progress:

Last TWIM, I told you we were getting close to being ready to release 1.0.0. Well, I have more news: there are only three issues left for the 1.0.0 milestone!

When these are done, I'll release an alpha for 1.0.0 to find any bugs, then hopefully we can have 1.0.0 stable released very soon after. You can take a look at the remaining issues for 1.0.0 here: https://nexus.federated.nexus/milestone/1

🔗Get involved

If you want to help with development or simply keep up with new features, join our Matrix room at #nexus:federated.nexus, or check out the Git repo at https://nexus.federated.nexus.

🔗FluffyChat (website)

The cutest instant messenger in the [matrix].

Krille - Christian K. reports

FluffyChat 2.10.0 will be released this weekend, including finally support for MatrixRTC calls via LiveKit (compatible with Element calls) and a lot of bugfixes and improvements. You can see all changes here: https://github.com/krille-chan/fluffychat/blob/main/CHANGELOG.md#v2100

With this release comes the first official build for Windows: https://github.com/krille-chan/fluffychat/releases Please be aware that these builds are mostly untested and very experimental. We are happy for any feedback. Native macOS builds are also coming soon.

🔗Matrix Federation Stats 📊

Aine [etke.cc] reports

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

As of today, 20397 Matrix federateable servers have been discovered by matrixrooms.info, 4129 (20.2%) of them are publishing their rooms directory over federation. The published directories contain 19712 rooms.

The most popular server software among the online servers is:

  • synapse: 15772 (77.3%)
  • continuwuity: 1866 (9.1%)
  • conduit: 545 (2.7%)
  • dendrite: 285 (1.4%)

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.

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

RankHostnameMedian MS
1vrkknn.net172
2kanp.ai197
3sspaeth.de198
4raccoon.cafe215
5vibb.me272
6szp.lol338.5
7awesomesheep48.ca346
84d2.org376.5
9victorewik.es435.5
10m.starshard.space624

🔗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.

🔲 ☆

This Week in Matrix 2026-09-25

🔗Matrix Live - New Features for FluffyChat

Today's Matrix Live: https://youtube.com/watch?v=QZavIHV6R7I

🔗Dept of The Matrix Conference 🏛️

🔗The Matrix Conference (website)

andypiper announces

The Matrix Conference is happening in just a few weeks! (you may have heard about it? 😉)

Join us in Malmö for talks, workshops, and discussions about the future of Matrix. Go to the website for more details, and to get your tickets.

If you have already bought your ticket, these are now available for download or for adding to your digital wallet. Speakers should check their email to find their voucher for a ticket, and follow the instructions in the email to get invited to the speakers' room on Matrix.

The volunteer system has been updated, with some very last volunteer slots available.

We will have a new range of Matrix stickers available! If you have a Matrix-related project, make sure to bring your own stickers for the sticker exchange.

🔗Dept of Spec 📜

Andrew Morgan (anoa) {he/him} announces

Here's your weekly spec update (back from the dead)! 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:

  • There were no new MSCs this week.

MSCs in Final Comment Period:

Accepted MSCs:

Closed MSCs:

  • No MSCs were closed/rejected this week.

🔗Spec Updates

The Spec Core Team has been focusing intensely on the various Matrix 2.0 MSCs these past few weeks, with the intention to getting them ready before the Matrix conference in October.

The following is a list of the current status of each MSC, courtesy of @Johennes:

Updated MatrixRTC pulse check:

Regardless, we did have some URL preview improvement MSCs slip through into FCP, which is nice to see.

MSC4095: Bundled URL Previews especially, as it helps reduce the resources needed on the homeserver by either only requiring the sending homeserver to download the linked page, or allowing clients to download the preview instead.

Stack Chart of MSC progress over time

🔗Dept of Trust & Safety ⚖️

Sky reports

Some of you may already know the #cs-auto-open_reg:codestorm.net policy list and some of you may even be using it. What many of you probably don't know yet is the history behind it. I wrote a small blog post series where I go trough the initial problem, what I've tried that failed and what eventually ended up working and where we are with it today. I think its nice to sometimes read a story of something actually working out in the end and I think we already have enough blog posts talking about how hard matrix is to moderate and what all is bad about it so here is my contribution to that with a positive story. So, I hope you enjoy it and maybe even learn something nerdy and cool while reading it :)

🔗Dept of Servers 🏢

🔗Venator (website)

Venator is an independently maintained Matrix homeserver, written from scratch in Go using the mautrix-go SDK.

nex (it/she) (away -> tbd) announces

Venator v0.1.0a4 was released, bringing exciting new goodies like OAuth2 login support, tangible performance enhancements, a disproportionate number of bug fixes, and I threw in some teasers for early outbound federation support too. Read more about it in the release notes, and/or come discuss the project in #venator:starstruck.systems. Also thanks to everyone who has starred the repository! 🐟️

🔗Dept of Clients 📱

🔗Harmony (website)

catcraft says

Hello everyone!

Harmony v0.6.0 just released, with support for changing room-scoped profiles, server-side search, profile timezones, and improvements to device verification. If you missed the previous entries, Harmony is a JavaScript-based, modular, extensible Matrix client with an open plugin system.

Speaking of plugins, a few more plugins have been released alongside v0.6.0, adding support for setting/displaying user pronouns (MSC4247) and banners (MSC4427). They can be found here. With these, as well as the biographies plugin and builtin timezones plugin, Harmony can now display (and configure) some of the more common profile fields in use today. Hooray!

User profile in Harmony

Since v0.4.0, we've also added support for silent replies, room member management, and stickers. You can find the full changelog for all versions here.

Screenshot of a test room and space in Harmony

You can find the latest release on the releases page on Codeberg, and you can also join the Harmony rooms to get announcements and chat about the client:

Happy hacking!

🔗iamb (website)

A terminal-based Matrix client that uses Vim keybindings.

ulyssa reports

iamb v0.0.12 has been cut and released! 🎉

Changes in this release include:

  • Displaying stickers, image reactions and media captions.
  • Opening matrix.to links within iamb.
  • Support for sending traffic through SOCKS5 and HTTPS proxies
  • Support for custom command aliases, intentional mentions, room knocking, and room upgrades, and updating user profile information.
  • New config options for specifying encryption indicator location and icons, custom input prompt, when read receipts are updated, default register, and custom cursor shapes.
  • Improvements to verifications, tracking unread rooms, command completions, and image previews.
  • Fixes for issues joining rooms, displaying message edits, and other bugs.

Refer to the Github releases page for more information and downloading binaries, and https://iamb.chat for documentation.

🔗Nexus (website)

Matrix client made with Flutter and a Gomuks backend.

QuadRadical (Ping) announces

Hello TWIM! It's been a while since the last update on Nexus, but quite a lot has happened!

  • iOS support! Nexus can now be built and run on iOS by sideloading an unsigned .ipa. However, there hasn't been too much testing here, so there may be bugs. If you try Nexus on iOS and run into any issues, please let me know in our Matrix room.
  • MacOS support has come a long way, including proper DMG builds and a number of platform-specific fixes and improvements.
  • Push notifications! Nexus now has UnifiedPush support on Android and Linux, so it can run fully in the background, and be woken up in the background by your UnifiedPush distributor. FCM is also supported for Android, so you don't need to install a separate UnifiedPush distributor. As part of this update, we also introduced a new Notifications page where you can see all your past notifications.
    • Push notification support in Nexus is very new, and is quite a complex feature, especially on Linux, and thus comes with some bugs. If you run into anything, please let me know in our Matrix room. Support for picking an UP distributor instead of using the default on your OS is also planned.
  • A new emoji picker, written from scratch by me. This works far better than the last package we were using, and will enable support for custom emoji at a later stage.
  • Better rendering of timestamps and state events.
  • Support for blocking invites and MSC4494.
  • And, as always, a whole lot of bug fixes 🙂

Animation of Nexus showing the notifications

🔗Initial release progress

I know that in some previous TWIMs I suggested that I would publish a release soon, but since then I decided that I would like Nexus to be in a very good state before an initial release.

There's good news on that front: We are getting close. I've added a milestone on the forge for all the issues that need to be fixed before v1.0.0, though I will likely find some more bugs that need to be squashed.

You can take a look at it here: https://nexus.federated.nexus/milestone/1

🔗Get involved!

If you want to help with development or simply keep up with new features, join our Matrix room at #nexus:federated.nexus or check out the Git repo at https://nexus.federated.nexus.

🔗Element X iOS (website)

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

Mauro reports

Hi everyone! Here's what the Element X iOS team has been up to this week:

🔗✨ New and improved

  • Notification counts in the room list: the room list now shows how many notifications you have in each room, and the badge on the app icon uses the same counts, so the two should always match.
  • Smoother history loading: loading older messages in a room is now more reliable, and this is now on for everyone.

🔗🚧 In progress

  • Forwarding multiple messages: we made steady progress on letting you select several messages at once and forward them to more than one room in one go.
  • Native calls: work on the new built-in calling experience continues, and call buttons now also show up on macOS when this experimental feature is turned on.
  • Multi Account support: preparatory work has started to finally bring one of the most requested features ever.

🔗🐛 Fixes

  • A round of polish for iOS 27: we fixed the iPad split view layout, some overly bright toolbar elements, and toolbar buttons on macOS.
  • The side tab bar no longer flickers or disappears when you resize the window.
  • Fixed a crash caused by some unusual status emojis on user profiles.

🔗Element Web/Desktop (website)

Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!

David Langley says

🔗🌴 User Status enabled by default in Element Web

Going on Holidays? Lucky you, let people know with the User Status feature. Use presets like 🌴 Away or set your own custom emoji/message combination. From Tuesday 29th of September this is enabled by default on Element Web. This will only work if User Status is enabled on your homeserver(include_profile_updates_in_sync in homeserver.yaml). It does not yet support federation but that is being worked on.

See MSC4426: Profile Updates, MSC4429: Legacy Sync, and MSC4262: Sliding Sync

🔗📌 Improved timeline scrolling and navigation is coming to Labs

Tired of clicking a matrix.to link only for Element Web to drop you at... well, the wrong message? Good news, we have been hard at work on a new timeline that should land you in the right place.

The new timeline aims to make navigation feel much more reliable, with:

  • Fewer unexpected jumps while loading messages
  • More reliable "Jump to bottom" and "Jump to unread" buttons
  • An unread marker that stays where you expect it to
  • Improved keyboard navigation, including moving through messages one by one (coming soon).

It is currently experimental and there are some known bugs, so please give it a try and let us know what you find.

It is already available on develop.element.io/desktop nightly, and will be available in the general releases from Tuesday 29 September. Go to All Settings -> Labs -> User interface to enable it.

We would love your feedback and bug reports. Click here to do just that, or find out more about what to expect.

🔗📄 Read PDFs without leaving the conversation

Need to check a PDF while discussing it in a room in Element Web/Desktop? You can now open it in the right panel, so you can read and chat side by side. No more switching back and forth between tabs.

The preview happens entirely in your client, there's no server-side conversion involved.

The PDF reader is currently in Labs 🧪. Try it now on develop.element.io or Element Desktop nightly by enabling Open PDFs in Labs. Or you can enabled it in the general Element Web release from the 29th of September.

🔗Commet (website)

Commet is a client for mobile and desktop with a modern UI and fun features!

airyz reports

The long awaited v0.5 is finally here! By far the biggest highlight of this update, (and the reason it took so long to develop) is adding support for Widgets, which allow you to embed custom tools and games in to your chat rooms. The introduction of the Widgets API opens up many new possibilities to customize your experiences on Matrix, and provides a great foundation for us to build on top of for even more interesting features in the future.

🔗🎮 Widgets

Commet being built in Flutter presented some interesting challenges in developing widgets, since widgets are web apps and thus require a webview to run. While it is possible to embed webviews inside a Flutter app, there were lots of limitations and performance issues with this approach and the quality did not meet our standards. After some experimentation we ended up with a few different implementations of widget runners to try and get the best overall experience for each currently supported platform.

The most interesting implementation was for Android, where we are spawning a new activity with its own webview using Android's split-screen API. This was significantly more performant than embedding the webview in Flutter itself as it completely bypasses the expensive compositing stage, and allows the heavy processing to occur separately with minimal impact on the main Commet instance. This works especially great on tablets in desktop mode (and one user reported it working well in Android based VR headsets!), where the two activities can be manipulated in floating windows. This inspired the implementations for the desktop version of the app as well, where we now have a separate Rust based process acting as the host on Windows, and an implementation utilizing instances of chromium already installed on your system on Linux. We would have liked to use the same Rust process on Linux, but due to limitations of WebKitGTK (lack of WebRTC support) have had to go with chromium for now.

In addition to our support for the Widgets API, we have also been developing some widgets of our own: A collaborative drawing game and a way to watch YouTube videos with your friends. These are both implemented using Element Call in SDK mode for real time communication, and are both in very early alpha!

🔗☎️ Experimental Support for Encrypted Element Call

After a lot of work, we are finally shipping initial support for end to end encryption in our implementation of MatrixRTC / Element Call. It is currently marked as experimental, so it needs to be toggled on before it can be used, and we are looking for user feedback to see where it may need improving.

You can find the release here

Screenshot of Commet v0.5

🔗Dept of SDKs and Frameworks 🧰

🔗vodozemac-java (website)

Francois Herbreteau announces

vodozemac-java v1.0.0 has been released, a new Java binding for vodozemac, the Rust library used for Matrix cryptographic functionality. The artifact is available through Maven Central, and the project is hosted here: 🔗 https://github.com/fherbreteau/vodozemac-java If you’re working on Matrix software in Java, I’d be happy to hear your thoughts!

🔗Matrix Federation Stats 📊

Aine [etke.cc] says

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

As of today, 20298 Matrix federateable servers have been discovered by matrixrooms.info, 4121 (20.3%) of them are publishing their rooms directory over federation. The published directories contain 19674 rooms.

The most popular server software among the online servers is:

  • synapse: 15736 (77.5%)
  • continuwuity: 1846 (9.1%)
  • conduit: 536 (2.6%)
  • dendrite: 291 (1.4%)

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.

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

RankHostnameMedian MS
1anglebrackets.club178.5
2codestorm.net196
3nerdhouse.io214
4vibb.me254.5
5elisaado.com344
6thenight.club395
7victorewik.es450.5
8catvibers.me494.5
9feralfox.net527
10poweron.dk560

🔗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.

🔲 ☆

This Week in Matrix 2026-09-18

🔗Matrix Live S13E09 - Hydra updates

Today's Matrix Live: https://youtube.com/watch?v=q7Os7WzHoCg

🔗Dept of The Matrix Conference 🏛️

🔗The Matrix Conference (website)

andypiper announces

This week, we are happy to reveal that the pre-event social 🪩 will be held at Babel Malmö, close to the conference venue, on the evening before the main conference content begins.

Preparations for the event continue. Have a look at the full schedule. We're excited to have some great talks lined up. Just as a taste of what's in there: Community self hosting; Digital Sovereignty; Several government deployments; FluffyChat; Matrix Specification improvements; and so many more.

We don't want you to miss it, so get your ticket now!

🔗Dept of Spec 📜

🔗Is Presence Fixed Yet?

lveneris reports

Still no, but we're evaluating our proposed solutions.

You may have heard the story. Presence has been largely left alone for much of Matrix's life, slipping under the radar through years of updates to the rest of the protocol. It is quite possibly one of few original planks left in our dear Specification of Theseus. This neglect has given rise to a situation where presence is one of Matrix's least-deployed core features. Lately, a group of independent community members, including maintainers of Continuwuity, have been working on a group of proposals to give presence the renovation it sorely needs.

Today, we have a different kind of update to share with you. Instead of announcing a proposal hot off the presses, we're listening in and investigating presence in its natural habitat on the public federation. This noble quest to explore the situation in practice and determine how much our proposals could help led us to capture some three hundred thousand presence updates, in which we found some fascinating twists: servers sending malformed updates; the vast majority of presence updates containing no new presence information at all; and statuses being far less popular on Matrix than we anticipated, even amongst the subset of users sending presence.

Our journey may begin in harsher territory than you think. Can you guess when presence was enabled on this two-user homeserver?

Screenshot of a resource graph demonstrating a notably unstable increase in federated EDUs, from below 20Hz to peaks of 60-80Hz.

Can you guess when presence was enabled?

We'll let the numbers speak for themselves, though. Read about all this and more in our new post Is presence broken now? on the initiative website ispresencefixedyet.com. If you'd like to come along, or just ask about what we're up to, feel free to join us in #presence-v2:zirco.dev.

🔗Dept of Servers 🏢

🔗Synapse (website)

Synapse is a Matrix homeserver implementation developed by Element.

madlittlemods (Eric Eastwood) says

This week we have a new release, Synapse 1.161.0. To highlight:

  • We've been driving forward Matrix spec compliance by filling in a bunch of tiny gaps in behavior between Synapse and the Matrix spec that have been preventing us from declaring support for further Matrix versions (#20036, #20101, #20104, #20119, #20169, #20173, #20180, #20192). The "Support for Matrix 1.xx" issues track the broad strokes but there is a stack of tiny gaps we've discovered along the way, which is why we haven't quite declared support for some Matrix versions that look "complete" from the issues alone. Unfortunately, these are only documented internally at the moment but they're practically all underway so things should come together soon.
  • Event persistence now recovers cleanly from a database interruption. Previously, if the database went away at the wrong moment, the affected room would stop accepting new events until Synapse was restarted (#20148).
  • We gained experimental support for MSC4512 which allows delegating parts of the Client-Server and Server-Server API to application services (#19972, #19977).
  • From the community, a couple of fixes when creating a room: First is a fix for the public_chat preset to properly form the power levels for m.call.invite events (#20050, thanks to @itsoyou from Famedly). And the second fixes the m.room.encryption event being duplicated when configuring encryption_enabled_by_default_for_room_type and using initial_state when creating the room (#20106, thanks to @FrenchGithubUser from Famedly).

Thank you to all our contributors for helping to make Synapse the best it can be. As always, feel free to stop by #synapse:matrix.org to join in on the discussion and if you encounter a bug make sure to report it.

🔗Tuwunel (website)

Enterprise successor to conduwuit, the high-performance and feature-rich fork of Conduit.

june ✿ 🏳️‍⚧️ (it/she/puppy) says

Tuwunel 1.9.1 serves animated thumbnails. A thumbnail request with animated=true for an animated GIF, WebP or APNG now returns a looping GIF instead of a frozen first frame. June implemented MSC2705; clients do not send the parameter yet, so the server side arrives first.

Element X for iOS location markers now move as location updates arrive, after utop-top's report. AngelBePro reported Sable space children missing until a reload; subscribed rooms now get their required state without a timeline event. ruka-hamanasu fixed FluffyChat rooms stuck unread after a receipt; basnijholt restored quiet rooms to legacy full-state sync.

June published prebuilt Nix store paths; unattended Nix must trust the cache explicitly. Debian and RPM packages adopt an existing Conduwuit or Conduit database by renaming it into /var/lib/tuwunel. Migrations now report progress every fifteen seconds and stop cleanly at step boundaries.

June also added MSC4155 invitation control by sender (block refuses, ignore hides from sync), the Sliding Sync profiles extension (MSC4262, MSC4426) that Element X requests, with validated status, call and timezone fields, and opt-in auto_accept_invites, raised by sanyamseac.

tototomate123 added url_preview_accept_language for dlrudie's request and summarized query storage sync for justinbrick's report; alemidev asked for url_preview_cache_ttl. basnijholt fixed /messages bounds and a device-key overwrite on read failure; ruka-hamanasu unblocked read markers on backfilled events; obodnikov made both Synapse-compatible deactivation routes (v1, v2) leave their rooms; asmj1108 reported Chrome blocking native OIDC callbacks; tcyrus caught room enable claiming success on an m.federate: false room (MSC4361 remote-invite coverage).

Full notes: https://github.com/matrix-construct/tuwunel/blob/114bc231622299f9a5da7a60f951e2b0e4144b89/RELEASE.md


💕 GitHub ✦ Releases ✦ DockerHub ✦ Playbook ✦ Containers ✦ Documentation ✦ Enterprise 🐕️ Tuwunel 💕


🔗Dept of Clients 📱

🔗Extera (website)

rustyraven[extera.xyz op] announces

We made a lot of changes since last TWIM post which had mentions of Extera. We will cover a few notable changes made since then:

  • Rich presences. Now they use MSC4544 to show multiple activities, buttons and progress bars.
  • Added support for HTTP_PROXY environment variable. httpProxy in advanced configuration overrides it.
  • Polished Livekit calls: added E2EE support (@cherret), redesigned call controls and incoming call popup. Also dropped support for TURN-based calls.
  • Redesigned reaction popup, where you can see a list of people who sent a certain reaction, and message context menu. Now they use backdrop with blurring and highlighting selected reaction/message.
  • More customisation options: now you can choose side for message bubbles (one side, adaptive,both sides) and title text in app bar (current account name/app name).
  • Several bugfixes, including: polls sometimes not showing all votes, "null check on null value" error when forwarding multiple messages.
Viewing a user profile in Extera: They are listening to a song and we can see the album, song metadata, and current position in the song, as well as what player they are using. Additionally, they are "playing" the calculator app.

Matrix space * Source code * Website

rustyraven[extera.xyz op] also says

Extera Rich Presence

Extera has dropped support for MSC4320 in favour of MSC4544, and so does Extera RPC app.

Screenshot of Extera Rich Presence on Android. The option to share currently playing music is enabled, and the option to share the current app in use is disabled.

Extera RPC runs independently of Extera, so you can use it alongside any client you like.

Download - Source code

🔗Matrix Federation Stats 📊

Aine [etke.cc] announces

TWIM

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

As of today, 20291 Matrix federateable servers have been discovered by matrixrooms.info, 4129 (20.3%) of them are publishing their rooms directory over federation. The published directories contain 19680 rooms.

The most popular server software among the online servers is:

  • synapse: 15749 (77.6%)
  • continuwuity: 1829 (9.0%)
  • conduit: 537 (2.6%)
  • dendrite: 298 (1.5%)

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.

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

RankHostnameMedian MS
1vrkknn.net153
2kanp.ai187
3vibb.me252.5
4dykes.ca255
5zirco.dev259
6jvyden.xyz474
7victorewik.es495.5
8sspaeth.de537
9projxyz.net665
10shadowdrake.org917

🔗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.

🔲 ☆

This Week in Matrix 2026-09-11

🔗Matrix Live - Matrix Conference 2026 Preview

Today's Matrix Live: https://youtube.com/watch?v=iE7ncBlI4_c

🔗Dept of Editorial 🖋️

andypiper writes

Hello! This Week in Matrix aka TWIM is our weekly update on what is going on in the Matrix ecosystem (the clue is in the title…!)

You can learn more about how we manage submissions to TWIM in the guide. The basic system is that news updates are posted to the Matrix room #thisweekin:matrix.org, and our friendly bot helps us to categorise the entries to output something that is - mostly - ready to publish. After that, we do some light editing, primarily to format things correctly. TWIM production is a collaborative effort, between myself (Andy, on behalf of The Matrix.org Foundation); the Website & Content Working Group; and of course, everyone that shares their news items every week.

Our goal with This Week in Matrix is for it to showcase the progress of Matrix projects, and the vibrancy of our community. We want it to be interesting and fun to read, as well as being informative to folks that don’t have time to follow everything going on across all the different channels.

We know that it can be a bit of work to post something that’s interesting, but it really helps when the news is authentic, novel, or otherwise impactful. A pattern we’ve noticed is that some projects are summarising changelogs, instead of highlighting updates that might be most interesting for people (meaning, people that use the software, developers, spec authors, and more). In other cases, we’ve seen submissions with far less substance - for example, without any code, or without a pointer to a place for readers to ask questions and learn more. We’re excited to see different new apps emerging, but we also want to have a mixture of news, rather than having the same things featured every week.

You can share images with your news submissions, to make them more visually appealing. One of the editors can help with that, so ask us in the TWIM room. If you're posting something about a client app, it helps us if you can describe what the image is demonstrating and what readers might want to be looking for in it.

All of this is to note that we’re adding some editorial curation to TWIM, in order to keep things on track - and yes, that involves some more proactive choices. If projects show up every week, we might choose to reduce the coverage to keep the content fresh. If there is not enough information in a submission, we may hold it back, or ask for it to be rewritten. That said, we're also keen to keep hearing from everyone. Help us keep This Week in Matrix an exciting and interesting read every week 🫶🏻

See you in the This Week in Matrix room!

🔗Dept of The Matrix Conference 🏛️

🔗The Matrix Conference (website)

andypiper announces

The countdown to The Matrix Conference 2026 continues. Watch Matrix Live for a sneak peek, and take a look at the full schedule (and then, get your ticket!)

🔗Dept of Events and Talks 🗣️

🔗Stammtische (website)

HarHarLinks says

A Stammtisch ("regular's table") is a German meetup format where those with a shared interest meet regularly for discussion, exchange, and socialising.

Find more community organised events at matrix-community.events!

Are you running a Matrix meetup? Add it to the list!

🔗Homeserver Deployment 📥️

🔗Element Server Suite (website)

Element Server Suite (ESS) is a backend hosting solution for Matrix-based communications that supports self-hosted and fully managed deployments.

Ben BZ reports

Element Server Suite (ESS) Community 26.9.0 and 26.9.1 have been released.

In addition to including the latest and greatest versions of Synapse, Matrix Authentication Service and Element Web, we have improved our support for delayed events with MatrixRTC, replaced Redis with Valkey and allowed configuration of limits on all ephemeral storage. The Element Admin user interface now includes a screen to manage devices.

Matching 26.9.0 and 26.9.1 releases for ESS Pro include all of the above, along with improvements to URL preview blocking in TI-Messenger and the ability to customize power levels for rooms in Advanced IAM.

🔗Dept of Clients 📱

🔗Koushi (website)

Hiroshi Shinaoka announces

Koushi is a new desktop-first Matrix client built with matrix-rust-sdk and Tauri.

I originally started Koushi for my own research workflow. In particular, I wanted a Matrix client that works well for research and developer communities, with good support for multilingual and CJK text/search, fast navigation, and a desktop-oriented workflow.

The project is still experimental, but I am already using it for my own Matrix communication and continuing to add features based on real usage.

GitHub: https://github.com/shinaoka/koushi-matrix

Matrix room: https://matrix.to/#/#koushi-matrix:matrix.org

🔗Tesseract (website)

Marco reports

Hi, it's been a while!

Four new releases came out since the last TWIM post! Currently at 0.8.21, the most important highlights are:

  • Bubbles! Tesseract now has multiple message timeline layouts: classic, bubbles, and (of course) an IRC-mode. Yes, I had to. Sue me.
  • Chat history export: you can export in text / HTML format (with optional media).
  • Deeper platform integration: recent rooms accessible from the taskbar (windows), full menu bar shortcut coverage / spotlight search (mac), GNOME Shell/KRunner room search.
  • Room knocking
  • Video event streaming (don't wait to download the whole media file to start playback)
  • Low power mode (disable background work when running on battery)

And of course, many many fixes and performance optimizations.

Enjoy!

🔗kazv (website)

kazv is a convergent Matrix client and instant messaging app.

tusooa🏔️ announces

We finally released kazv 0.7.0 . New features include device verification, requesting room keys, importing key backup, SSO and many UI improvements.

Read the full changelog.

🔗FluffyChat (website)

The cutest instant messenger in the [matrix].

Krille - Christian K. announces

🔗Test the new FluffyChat Matrix RTC Calls today!

Yes you have heard right. FluffyChat has now support for end-to-end encrypted Matrix RTC Calls, fully compatible with Element and Cinny. The implementation uses Flutter's LiveKit package and will come with the next release 2.10.0.

If you feel lucky you can already test them out at https://fluffychat.im/nightly.

To have the call button visible your homeserver needs to advertise support for matrix rtc calls in well-known. matrix.org for example does! But if someone on a supported homeserver has created a call you probably can also join even if your homeserver does not yet have support for it.

The implemented features include:

  • 1:1 and group calls
  • CallKit implementation on Android & iOS (the mobile device will act like being in a native call, Android will also ring when you get called
  • Raise hand inside of a call
  • Share your screen (right now only on web and desktop)
  • Select your audioinput, audiooutput and videoinput
  • Grid view or focus view depending on the context

If you find (hopefully reproducible) bugs feel free to open issues at https://github.com/krille-chan/fluffychat/issues

🔗Dept of VoIP 🤙

🔗lk-jwt-service (website)

Johannes Marbach reports

lk-jwt-service version 0.7.0 has been released today.

This release brings about a full rewrite of the service in Rust which reduces the service's resource footprint and simplifies future changes. The public interface remains backwards compatible for now so the update should be a drop-in replacement.

In other news, the service now supports running as an application service to serve the new Client-Server and Server-Server endpoints from MSC4195. Note that this setup is still experimental and requires a compatible homeserver (currently only Synapse from develop).

Finally, thanks to GitHub user @benbz, the service now supports loading the Redis password from an independent environment variable and @770grappenmaker fixed a bug that previously rendered the healthcheck endpoint defunct in some situations.

🔗Dept of SDKs and Frameworks 🧰

🔗Ruma (website)

A set of Rust library crates for working with the Matrix protocol. Ruma’s approach to Matrix emphasizes correctness, security, stability and performance.

Kévin Commaille reports

Here comes Ruma 0.17.0, packed with breaking changes to make your life easier (hopefully). Here are the main ones:

  • Support for Matrix 1.19, including the endpoint to get the rooms in common with another user and stable support for image packs.
  • The API traits for incoming and outgoing requests or responses were refactored to remove the generics to try to improve compile times of downstream crates. The methods with generics are still available in some cases with new extension traits so you will only need to bring them in scope to avoid making changes to your code.
  • API crates no longer export anything if neither the client nor server features are enabled, because they are not useful without at least one of these features.
  • The XMatrix type allowing to construct or parse X-Matrix headers has been refactored to remove a dependency on an external crate.
  • Identifiers support 2 new internal representations: ThinArc which is cheap to clone like an Arc, but should use less memory and be faster, and SmallVec which allocates sufficiently small strings on the stack rather than on the heap, so it should also be faster but use more memory overall.
  • Various contributors added unstable support for more MSCs including the not-so-new Configurable per-room message retention periods (MSC1763), and the brand new Membership-based invite blocking (MSC4494) and Selective Presence (MSC4495).

This release was followed by ruma-client 0.20.0 and synapse-admin-api 0.12.0.

We still have a bunch of issues opened and always welcome implementations for ongoing MSCs, so don't hesitate to contribute.

🔗Dept of Ops 🛠

🔗Selfhosting a Matrix Server on a Raspberry Pi 5

andypiper says

I spotted this nice write-up of a personal homeserver migration, with bridges etc.

https://marius.blog/self-hosted-matrix-raspberry-pi/

🔗Dept of Interesting Projects 🛰️

🔗Venoom (website)

venumonelement reports

Venoom is coming along pretty nicely, and I now have test builds available for web, Windows, Android and Linux. macOS and iOS are on the way too.

Venoom is a Bluesky/ATProto and Matrix client in one app. You link your ATProto and Matrix accounts together, which allows for some nice interaction between the two. For example, you can open someone's Matrix profile and see their ATProto posts alongside their Matrix information.

The Matrix side is also getting a lot more fleshed out. Venoom now supports extended profiles with things like banners, bios and avatar decorations, alongside Spaces, rooms, DMs, threads, roles, emotes, voice calls, screen sharing and more.

Everything is still very early and there is plenty left to do, but if you want to mess around with an alpha build you can find them here: https://github.com/drvnm/venoom-releases/releases Web version: https://venoom.net

if you want to follow development, report bugs or just hang out, you can join the Matrix room here: https://matrix.to/#/!gxmZLQDhVacrWxzPiM:matrix.org

Thanks to everyone who has been trying it and giving feedback so far!!

🔗Matrix Federation Stats 📊

Aine [etke.cc] says

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

As of today, 20307 Matrix federateable servers have been discovered by matrixrooms.info, 4141 (20.4%) of them are publishing their rooms directory over federation. The published directories contain 19552 rooms.

The most popular server software among the online servers is:

  • synapse: 15763 (77.6%)
  • continuwuity: 1827 (9.0%)
  • conduit: 549 (2.7%)
  • dendrite: 305 (1.5%)

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.

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

RankHostnameMedian MS
1raccoon.cafe178
2codestorm.net188
3vrkknn.net192
4kanp.ai224
5melthecat.dev232.5
6synapse.rntpts.de238.5
7nerdhouse.io251
8zirco.dev255.5
9sspaeth.de308
10avali.zone308

🔗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.

🔲 ☆

This Week in Matrix 2026-09-04

🔗Matrix Live S13E07 FITKO Neo / Community Workation

Today's Matrix Live: https://youtube.com/watch?v=vi-kCO3ZwiM

🔗Dept of The Matrix Conference 🏛️

🔗The Matrix Conference (website)

andypiper announces

The countdown to The Matrix Conference 2026 is on! We're excited to continue to announce the sessions you can expect to see at the conference, which takes place in Malmö, Sweden 🇸🇪 on 20-22 October, and concludes with a hackathon in Copenhagen, Denmark 🇩🇰 on 23 October.

This week, we thought we'd mention some more talks that have been confirmed for the conference, including:

Get your ticket for the conference today!

🔗Dept of Events and Talks 🗣️

🔗Stammtische (website)

HarHarLinks reports

A Stammtisch ("regular's table") is a German meetup format where those with a shared interest meet regularly for discussion, exchange, and socialising.

Find more community organised events at matrix-community.events!

Are you running a Matrix meetup? Add it to the list!

🔗Dept of Servers 🏢

🔗Synapse (website)

Synapse is a Matrix homeserver implementation developed by Element.

madlittlemods (Eric Eastwood) says

This week we have a new release, Synapse 1.160.0. To highlight:

  • As an update on the user status front, we landed support for MSC4262: Profile Updates for Sliding Sync (#20003) (previously, we only supported legacy sync). It uses the same include_profile_updates_in_sync config option, which still defaults to disabled. There were also a few bugfixes to ensure that sync responses get all of the profile updates (#20135, #20147)
  • We also sprouted experimental support for MSC4502: 'Targeted and unrestricted room member queries' which gives Application Services (with the appropriate scope in their registration file) a new endpoint to ask whether a given user or server is joined to a room, without being joined themselves (#19974).
  • A nice bugfix for an edge case where streams (presence, to-device messages, etc.) could stall and prevent new data from being sent to clients (#20090 thanks to @FrenchGithubUser from Famedly)
  • A few device list performance tweaks which have had a nice impact on matrix.org, which had been struggling to catch-up on a backlog for the past few weeks and has now caught up (#20098, #20120)
  • WebP images that use transparency are now thumbnailed as PNG rather than JPEG, so your images stay transparent (#20094, thanks to @catfromplan9).

Thank you to all our contributors for helping to make Synapse the best it can be. As always, feel free to stop by #synapse:matrix.org to join in on the discussion and if you encounter a bug make sure to report it.

🔗Dept of Clients 📱

🔗Voyage

nv reports

I'm announcing Voyage, a Matrix client for Android based on Element Classic with a strong focus on modernization. Over the past couple months, development has been underway and the client has now been made available. You can expect several dozen bugfixes or performance improvements, and over a hundred new features, many of which are only seen in cutting edge clients such as Sable or Commet. Mostly everything from SchildiChat Android has been ported over as well.

One of Voyage's main goals is support for older Android versions: the client runs all the way back to Android 4.0. That being said, despite this vastly improved compatibility with older versions of Android, Voyage is by no means dated and feels at home running on the latest Android versions.

Whether you're a fan of Element Classic or not, I highly encourage you to grab the nightly build and try it out, this is only the beginning and testers are much appreciated. There's also a Matrix room (https://matrix.to/#/#voyage:matrix.org) if you'd like to join the conversation, I hope to see you there :-)

🔗Element X iOS (website)

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

Mauro says

This week on EXI we have worked on a bunch of features that are the result community PRs from Android like

  • Adding a redaction reason when trying to redacting messages
  • Started working on multiselecting messages for forwarding/copying purposes
  • Autoplay consecutive voice messages. Of course we also took care of various bugfixes and stability improvements

🔗Element X Android (website)

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

Benoit announces

Element X Android shipped two releases this week, v26.08.3 and v26.08.4, from 60 merged PRs between 21 and 28 August. On features, user status is now on by default (emoji-only in the timeline).

The bugfix run was long: mention suggestions are ranked by match quality, threads survive message deletion, noisy notifications stay noisy behind a PIN code, and downloads no longer break past 32 same-named files. Several empty or confusing states were fixed too — "server unreachable" is now stated explicitly, one-to-one room previews drop the redundant sender name, unknown senders are named from the member list, and stalled verification requests time out. Caption formatting survives edits, database migrations re-run on upgrade, and share mime types are resolved to something concrete.

Under the hood, the Rust SDK moved to 26.08.25 and its git SHA is now logged at startup to speed up triage. Developer options gained a pretty-printed "Push rules" viewer, releases are automated via a new releaseV2.sh, and three large renames landed (*Events → *Event, PreviewParam suffix, Metro binding containers into di). Community contributors carried much of this — hayaksi1 above all, with jennaharris7, bxdxnn and sandhose.

🔗Tammy (website)

Multiplatform messenger built on top of Trixnity Messenger.

Benedict announces

Tammy 16.08.0 has been released! It has been a busy two months of development. Aside from the usual bug fixes, here are the most significant updates:

🔗Streamlined Onboarding

We have completely redesigned the initial account setup process. The new account setup wizard is more concise and intuitive, allowing you to get up and running much faster.

🔗Voice Messaging on Web and iOS

Voice messaging was previously available on Android, but with the addition of Web and iOS support, it is now available across almost all platforms. We have also updated our audio recording engine to be more robust and provide better error feedback during the recording process.

🔗Password Manager Support for Web

If you use Tammy on the Web, you can now use your password manager to securely store and manage your credentials and recovery keys.

🔗Enhanced User Search

Finding people when creating rooms is now much easier. We have introduced a new search API that allows the client to query various search providers. While this may not be highly relevant for a standard Matrix federation, it is incredibly useful in corporate environments. For example, a company can integrate LDAP to include details such as department, location, and availability. We have used this ourselves for our TI-Messenger, where users can search a directory service (VZD) for healthcare practitioners.

🔗Security & Privacy Hardening

This update includes several important security enhancements. We have implemented stricter measures for your local database: if the system detects that the database cannot be decrypted or that secrets have been tampered with, the profile will be automatically deleted to protect your information. Additionally, when you log out of an account, the client now ensures that all local secrets associated with that account are completely wiped from your device.

To help manage your storage, Tammy now prevents large automatic file downloads (such as images in the timeline or avatars) without your explicit permission. The client also checks for available disk space before attempting to download large files. Finally, if you cancel a file upload, the temporary file is now cleared from your local cache.

🔗Major Navigation Refactor

On a more technical note, we have moved to a new navigation framework under the hood. Previously, navigation was largely hardcoded and difficult to extend; this new architecture provides us with full flexibility, making the client much more extensible for future development or community extensions.

🔗Dept of Widgets 🧩

shunmugaraj09876 💀⃤ says

🔗Huddle

Huddle is a new open-source Matrix widget that summarizes each room's messages from today, running entirely on-device by default — no backend, nothing leaves your browser unless you explicitly switch a room to cloud mode. It runs a quantized Gemma model locally via WebGPU (Google's LiteRT-LM Web runtime), and a Chat tab lets you interact with the chat history. Built on Nordeck's Matrix Widget Toolkit, Apache-2.0 licensed.

🔗Try it

Source: https://github.com/toshanmugaraj/huddle

Demos:

Early days (v0.1.0) — feedback, issues, and PRs welcome. Contact: @raj098:matrix.org

🔗Matrix Widget Toolkit (website)

Reusable framework for creating Matrix widgets.

Milton Moura (n.io) announces

We have fresh releases for the Matrix Widget Toolkit!

Two new MSCs found their way into the toolkit, setting up the baseline for our efforts in updating NeoBoard's MatrixRTC implementation to the latest spec proposal.

First up, sticky events (MSC4407, the Widget API side of MSC4354). In @matrix-widget-toolkit/api@5.1.0 you can pass a stickyDurationMs option to sendRoomEvent() and sendDelayedRoomEvent(), and the homeserver will keep delivering that event for as long as you asked for.

Second, RTC transports discovery (MSC4515): widgetApi.getRtcTransports() lets your widget ask the hosting client which realtime transports are available on the homeserver.

Be aware that both proposals are still unstable, so your mileage depends on the client and homeserver playing along. Good news is that @matrix-widget-toolkit/testing@4.1.0 already mocks both, so you can unit test away today.

And finally the boring bits: react@2.1.2 and mui@2.2.2 packages got some maintenance updates. Nothing changed except the dependencies (matrix-widget-api 1.18.0, @reduxjs/toolkit 2.12.0).

Note that widget-server@1.2.3 is rebuilt with the latest nginx:alpine-perl 1.31.4 with all the upstream nginx and Alpine security fixes. Configuration options haven't changed, so it's just an image swap for you.

Full changelogs are on the releases page, and we'd love to hear from you at #nordeck:matrix.org!

🔗Dept of SDKs and Frameworks 🧰

🔗react-native-matrix-crypto

Michel-Marie MAUDET says

Announcing react-native-matrix-crypto v0.3.0: a React Native bridge for Matrix end-to-end encryption, built on matrix-sdk-crypto - the same Rust implementation Element uses behind a small, typed TypeScript surface.

The library deliberately does no networking: there is no login, no /sync, no sending. It hands your application the encrypted events and the list of requests to send, and expects to be told what reached the homeserver. That is the same boundary upstream draws between matrix-sdk-crypto and the full matrix-sdk, kept for the same reason: a crypto engine that also owns transport is far harder to audit and reuse. The published package ships prebuilt binaries for iOS and Android, so no Rust toolchain is required.

Version 0.3.0 adds device verification by scannable code, in all three modes the protocol defines, another user, and your own new login with either device showing. Showing and scanning are announced separately, so a product with a screen but no camera never claims one: that exact claim is what a real Element Web client once acted on, and it is why the switch is two facts and not a boolean. A build that never opts in announces on the wire exactly what every earlier release announced.

What ships with a claim carries its proof: third-party interop against matrix-nio and mautrix-go over real homeservers in both directions, five level-2 proofs, thirteen CI gates each watched rejecting a real violation, and, new in this cycle, the same proofs against Synapse as well as Continuwuity, plus the example app running end to end on an iOS simulator in CI for the first time.

This release is a foundation, not a finish line. The road to 1.0 is tracked in four issues: a real-camera QR proof in CI, multi-participant and federation-neutral coverage, cross-implementation testing (landed with this release), and a stabilised API with published reference documentation.

Built for Twake Workplace but usable by any React Native project.

🔗Matrix with Drupal

John says

First video in a series, connecting Drupal to Matrix is live now, up at https://www.freelock.com/blog/john-locke/2026-08/drupal-meets-matrix-part-1-setting-matrix-api .

🔗Drupal Matrix API module

The Matrix API module has been relaying messages from Drupal sites to Matrix rooms for a decade -- now it supports messages from Matrix to Drupal!

🔗Drupal Matrix Recipes

There's now a Drupal "Recipe" in development to make it easy to get started, which is demonstrated in the video in the post. The recipe is at Matrix Recipes, with two working recipes so far - basic installation of the API module and an "ECA" model that sets up the business logic to post new articles to a designated Matrix room, and send replies in a thread to that message back to Drupal as comments.

The other working recipe provides a simple polling mechanism so you can see those comments arrive on the Drupal site.

🔗More coming soon

This is just the start of a full integration we're working on between Drupal and Matrix. Future enhancements include:

  • Identities - map Matrix user accounts with Drupal user accounts, supporting OIDC from Drupal or a 3rd party IDP

  • entities - provide more sophisticated mapping between Matrix events and Drupal entities, including spaces, rooms, messages of various kinds on the Matrix side with arbitrary links to Groups, Nodes, comments, and reactions on the Drupal site

  • application server - manage one (or more) Matrix spaces or rooms from Drupal, with templates for setting room permissions, providing moderation, etc.

  • widgets - expose arbitrary components from Drupal as widgets inside Matrix rooms

🔗Drupal Groups Initiative

Part of the motivation for this work is a revamping of Drupal's old groups.drupal.org site, which has gotten quite stale and unused over the past decade, while most of the community has moved to Slack as a communication platform. This effort has the goal of providing a superior experience, enticing people to move back to Drupal.org for their collaborative work, while still providing a great chat experience through Matrix and Element.

I'm hoping this is the start of something entirely new - a multi-modal community platform that helps people work together on projects on a fully open platform, with the best of all worlds at their fingertips.

If you have ideas or would like to help, reach out to me at @john:matrix.freelock.com!

🔗Dept of Videos 📹

Matthew announces

The recording of the speedrun recap of the DWebCamp talk on P2P Matrix, Neutrino and Tachyon is now up at https://archive.org/details/dweb-virtual-meetup-aug-2026-camp-jomo-fomo/DWebMeetup-Aug2026.mp4

🔗Matrix Federation Stats 📊

Aine [etke.cc] says

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

As of today, 20254 Matrix federateable servers have been discovered by matrixrooms.info, 4148 (20.5%) of them are publishing their rooms directory over federation. The published directories contain 19970 rooms.

The most popular server software among the online servers is:

  • synapse: 15733 (77.7%)
  • continuwuity: 1817 (9.0%)
  • conduit: 542 (2.7%)
  • dendrite: 306 (1.5%)

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.

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

RankHostnameMedian MS
1codestorm.net203
2sspaeth.de217.5
3nerdhouse.io250
4usbpc.xyz269
5zirco.dev271
6prisma.moe275
7vibb.me291
8awesomesheep48.ca403.5
9victorewik.es435
10vmd1.dev435.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.

🔲 ☆

This Week in Matrix 2026-08-28

🔗Matrix Live S13E06 - The need for privacy-preserving decentralised reputation

Today's Matrix Live: https://youtube.com/watch?v=jnQ0f3Dv5D0

🔗Dept of The Matrix Conference 🏛️

andypiper announces

🔗The Matrix Conference (website)

We've been bowled over by the volume of submissions for this year's conference in Malmö 🇸🇪! We're not quite ready to reveal the complete schedule, but the team has been busy sending out confirmations to speakers. If you submitted to our call for papers, check your email and (most importantly) if your session was accepted please click the required link to confirm your attendance.

You can have a look at an initial set of confirmed talks here. Note that this is not yet the full set of talks, as we're still working with speakers on their proposals. You can expect to hear more over the next couple of weeks.

Look out for talks such as

In case you missed it, last week we also announced that the hackathon will be taking place at the neighbouring Aalborg University across the water in Copenhagen 🇩🇰

We're excited about The Matrix Conference 2026, and we think you will be, too! 😎

andypiper says

🔗The Matrix Conference Sticker Swap (website)

Advance notice that we'll have a sticker swap table at The Matrix Conference this year. We want to celebrate, share and spread knowledge of the different community projects that build on Matrix, and what better way to do that than via the medium of stickers 💫 Bring your stickers to share with others, and find out about other projects at the same time.

If you have a project logo to share with the rest of the ecosystem, we'd love to see it on the sticker swap table 🙇🏻 there's also a "booth kit" for The Matrix.org Foundation that pops up at other events throughout the year, and we'll be happy to spread awareness of ecosystem projects via the booth (if there are any stickers left over, that is...). Need help with how to create stickers for your project, or want to send us some to share in case you can't make it to the event? Talk to the Events Working Group #events-wg:matrix.org.

This is also a good time for a reminder to get your ticket for The Matrix Conference 🎟️ (if you haven't done so already). It is shaping up to be an excellent few days of talks, hacking, networking, and celebration.

🔗Dept of Events and Talks 🗣️

HarHarLinks says

🔗Stammtische (website)

A Stammtisch ("regular's table") is a German meetup format where those with a shared interest meet regularly for discussion, exchange, and socialising.

Find more community organised events at matrix-community.events!

Are you running a Matrix meetup? Add it to the list! A group of happy people around a table enjoying a Stammtisch!

🔗Dept of Built on Matrix 🏗️

Lukas Weller says

🔗Neo Nominated for Open Source Competition

Hello everyone!

We'd like to share an update and some great news that Neo, the pilot project bringing Matrix to German public administration, has been nominated for the Open Source Competition!

Developed by FITKO (Föderale IT-Kooperation) and the team behind it, Neo uses Matrix’s open protocol to enable secure, end-to-end encrypted communication between citizens and authorities. It includes a Matrix-based web client and smartphone app, supports structured workflows like document requests, and integrates with other Matrix solutions.

We feel this is an important step for Matrix adoption in the public sector. If you’re equally excited about Matrix adoption in government IT, it would help us out massively to push Neo to the top. The winner will be announced at SCCON 2026 in October this year.

Vote for Neo at https://open-source-wettbewerb.de/voting/neo/ or spread it on your favorite social network. You can also find some more info on Neo in the project description or on https://gitlab.opencode.de/fitko/matrix-g2x/.

Thanks for your support! Image of some Neo Mockups on laptop and mobile

🔗Dept of Spec 📜

LogN announces

🔗Is presence fixed yet?

No, but we're making progress.

Today, presence is one of Matrix’s least-deployed core features. Even with efforts to improve implementations, almost every major public Matrix deployment disables federated presence, citing privacy and performance concerns.

A group of independent community members, including maintainers of Continuwuity, have been working on a group of proposals to improve the semantics of Matrix presence.

This week we published MSC4532: Revised Social Presence, a proposal to remodel presence information to better support social use cases. This includes proper presence overrides ("appear offline"), and a busy status, alongside potential major performance improvements.

Our first proposal, MSC4495: Selective Presence, is moving along well: we have an unmerged experimental implementation in Continuwuity, now with 3 servers running it!

If you're interested in the work we're doing, take a look at ispresencefixedyet.com or join us at #presence-v2:zirco.dev!

🔗Dept of Clients 📱

🔗Element X Android (website)

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

Benoit announces

Hey TWIM! Another busy week on Element X Android — 50+ pull requests merged, an internal v26.08.2 release cut, and a remarkable amount of it coming from the community. 🎉

  • New language: Arabic: Element X Android now ships Arabic translations, synced from Localazy. Many thanks to the translators! (#7461)
  • Sign-in gets simpler: Choosing where your account lives is now much less fiddly. @jennaharris7 reworked account provider selection so it autocompletes from providers you've used before, accepts a server without typing https://, is case-insensitive, and respects the enterprise allow-list. The text field is also correctly disabled while a sign-in is in flight. (#7394, #7492). Login polish continued around it: the focused field now stays visible above the keyboard (#7455), and stray carriage returns pasted into the login and password fields are stripped out (#7439).
  • Know why a message failed. Tapping a message that failed to send now opens a dialog explaining the actual reason instead of leaving you guessing. (#7490)
  • Focused timelines stay focused until the target event has actually been rendered, fixing permalinks that used to drift away mid-pagination. (#7463)
  • Better looking photos. Image compression has been relaxed so photos and screenshots keep noticeably more detail. (#7451)
  • Opening an image that hasn't finished uploading now shows the right picture (#7359), and images shared in with a vague mime type keep their transparency (#7452).
  • Editing a caption now converts markdown to HTML like the composer does (#7441), the send button no longer vanishes when you clear the composer while editing (#7456), and starting a mention refreshes the room member list so recent joiners show up (#7438).
  • Voice messages keep playing when another app makes a short sound (notification blips no longer kill your playback). (#7454)
  • Verification unstuck: outgoing session verification no longer hangs when recovery setup is incomplete — thanks @hardcore-sushi! (#7433)
  • Deep links on cold start: an account provisioning deep link that launches the app from scratch is no longer swallowed. (#7488)
  • Resuming the app from the recents list no longer re-opens the room you had left (#7436), the app stops waiting forever on a room alias the remote server never resolves (#7446), declining an invite closes the invite screen (#7440), and leaving a room that can't be found shows an error instead of failing silently (#7437).
  • User IDs containing a slash now open the right profile (#7445).
  • Switching back to "system" theme after forcing light or dark actually applies the system theme again (#7453).
  • The sync service no longer restarts while the client is shutting down (#7472), and the applicationName in the User-Agent is normalised — HTTP headers don't allow UTF-8 (#7477).
  • Call: Picture-in-Picture now reacts to camera orientation changes on the other participant's device, so a remote rotation no longer leaves you with a sideways video (#6951). Element Call embedded also moved to 0.24.0 (#7474).
  • The notification troubleshooter now explicitly explains a rate-limiting push gateway, instead of reporting a generic failure. (#7448)

A huge shout-out to @hayaksi1, who landed 20 PRs this week alone — timeline, composer, media, notifications, login and release tooling. Thanks also to @jennaharris7, @hardcore-sushi and @bxdxnn for their contributions.

🔗Dept of SDKs and Frameworks 🧰

🔗Trixnity (website)

Multiplatform Kotlin SDK for developing Clients, Bots, Appservices and Servers.

Benedict announces

Just a quick update on Trixnity: The recent 5.8.0 release focuses on refactoring the E2EE and database transaction management to make things a bit cleaner, safer, and easier to test. We also added some media service improvements in 5.7.0, specifically around download size limits and automatic media cleanup.

🔗Dept of Interesting Projects 🛰️

blue @privacyte.ch says

🔗RemoteRails: Matrix & LiveKit Appliance with WG VPN & SSO (website)

The Matrix protocol's versatility for use cases from internal chats to globally federated OTT messaging inspired us to integrate Tuwunel, LiveKit, and Coturn into our self-hosted, zero-knowledge appliance for E2EE chats & calls.

As with the other services (Drive, Office, Mail) in the appliance, the auth and signaling endpoints of Matrix reside on a private VPN subnet managed by Defguard. The Matrix server is accessible only after a user has authenticated with their OIDC SSO credentials and 2FA (TOTP or WebAuthn) to the WireGuard tunnel. By default, the Matrix federation endpoint is also isolated from the web, but this can be relaxed to interoperate with other external homeservers, if desired.

The appliance is engineered for portability, security, and data minimization. We built a set of standardized deployment scripts that install a minimal Debian OS (with no provider telemetry), instantiate the RAID/LVM, and provision the appliance using Debootstrap and Docker Compose. Even when the appliance is hosted in a commercial datacenter, we wanted to achieve an on-premises grade of discretion using LUKS, hardware-based memory encryption (SME/TME), DMA protection, and Secure Boot with UKI. To strip out the dependency on Google Play Services, we also baked in the Ntfy.sh container for self-hosted UnifiedPush notifications on Android.

For a closer look at our defense-in-depth philosophy and threat modelling, check out our Confidential Computing & Security Model writeup.

venumonelement says

🔗Decentralizing social media using ATProto and Matrix (venoom)

Over the past two weeks, I made it possible to use ATProto and Matrix together in one cross-platform app. The goal is to combine an ATProto account and a Matrix account under one identity: ATProto provides profiles and public posts, while Matrix provides encrypted messages and calls.

The accounts are linked by storing the Matrix ID in the ATProto DID document and the ATProto DID in the Matrix extended profile. Venoom checks that both values match and can then show information from both profiles together.

I also connected MAS to an ATProto OAuth broker, so users can access a Matrix account through their ATProto identity or connect a Matrix account they already have.

Next up is refining the app and fixing bugs. I hope to release a test version soon. If you’re interested, you can join the room where I post updates:

https://matrix.to/#/!gxmZLQDhVacrWxzPiM:matrix.org The Venoom user interface A user profile in Venoom

🔗Matrix Federation Stats 📊

Aine [etke.cc] announces

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

As of today, 20162 Matrix federateable servers have been discovered by matrixrooms.info, 4140 (20.5%) of them are publishing their rooms directory over federation. The published directories contain 20658 rooms.

The most popular server software among the online servers is:

  • synapse: 15705 (77.9%)
  • continuwuity: 1775 (8.8%)
  • conduit: 533 (2.6%)
  • dendrite: 307 (1.5%)

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.

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

RankHostnameMedian MS
1vrkknn.net190
2nerdhouse.io236
3victorewik.es321
4zirco.dev365
5ed25519.uk1067.5
6poweron.dk1239
7blahaj.club1268
8matrix.org1711
9matrix.sharks.id.au2177
10tinier.town2599

🔗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.

🔲 ☆

This Week in Matrix 2026-08-21

🔗Matrix Live S13E05 - Matrix @ FrOSCon 2026

Today's Matrix Live: https://youtube.com/watch?v=n4u5GhdmOME

🔗Dept of Events and Talks 🗣️

HarHarLinks announces

🔗FrOSCon (website)

We had an awesome time representing Matrix at the Free and Open Source Software Conference! The new (as of FOSDEM) Matrix Foundation Events WG™️ Booth Kit was a great help in making our booth look much nicer and more engaging than ever, with 2 Linux laptops, a MacBook, one Android and a postmarketOS phone, various stickers, a standup about the Foundation, etc etc. For more detail, keep an eye out for Matrix Live! Here is a teaser: photo of the Matrix booth at FrOSCon

HarHarLinks reports

🔗Matrix Community Workation Krems (website)

The workation starts tomorrow! Join the Matrix Community in Krems on the Danube in Austria for up to 3 weeks of hacking and networking in the Matrix community, go on an excursion to the Hack-ma's hacker camp in the next village over, or help the German government in digitising its infrastructure with proper Matrix, proper open source, and proper security and privacy.

Come chat with us #community-events:matrix.org or follow our fedi https://mastodon.matrix.org/@community_events.

PS: anyone going to MRMCD?

andypiper reports

🔗The Matrix Conference Community Hackathon (website)

We're excited to announce that this year's Community Hackathon at The Matrix Conference is in collaboration with Dr. Carla Griggio and the mInt Research Lab on User-centered Messaging Interoperability at the Department of Computer Science, Aalborg University.

On Friday 23rd October, we'll cross the Øresund Bridge to København and spend the afternoon hacking together on a range of Matrix-related projects. We're very grateful to Carla and Aalborg University for their support of this year's Matrix Conference.

We'll be adding more information about the hackathon and logistics (including the straightforward 🇸🇪 🛤️ 🇩🇰 transport options) on the website very soon. Don't worry: we already confirmed that Club Mate is readily available in supermarkets in Copenhagen! 😉

🔗The Matrix Conference schedule (website)

We're starting to send out the first email acceptances to speakers for the Conference! This should happen over the next few days, so prospective speakers, please check the email associated with your talk submission - we need you to click a link to confirm your acceptance. We have a process to get these sent out, so please stand by! We plan to confirm the initial set of content next week, as speakers are able to accept.

🔗Dept of Clients 📱

🔗Harmony (website)

catcraft reports

Hello again everyone! It's been a bit over a month since our first TWIM entry, and since then, Harmony has had quite a few new features and fixes. If you missed the previous entry, Harmony is a JavaScript-based, modular, extensible Matrix client with an open plugin system.

Harmony v0.4.0 has just been released, with support for pinned messages, spoiler and mathematical messages, partial power level management, and a few other things. There has also been a new plugin adding support for MSC4440 biographies.

Since v0.2.0 (the last release posted here), we've also added OAuth/SSO login support, 'jump-to-message' support, and significant performance improvements (particularly for rooms with many members). You can find the full changelog here. In my own opinion, since v0.2.0, the experience has gone from 'okay' to 'quite pleasant'!

You can find the latest release on the releases page on Codeberg, and you can also join the Harmony rooms to get announcements and chat about the client:

Finally, now that the AUR situation has been mostly resolved, packages have been published for Harmony (harmony-im and harmony-im-git).

Happy hacking!

🔗FluffyChat (website)

The cutest instant messenger in the [matrix].

Krille - Christian K. announces

FluffyChat 2.9.0 has been released

After the long waiting for 2.8.0 getting reviewed in the Play Store, we now have already FluffyChat 2.9.0, featuring better notifications on iOS, http3, verification check icon for users, double tap to react and a lot of bug fixes and other improvements.

🔗iOS Notifications

We are still not completely there that we can always display the message content of encrypted messages on iOS. It is still not working when the app is not in foreground duo to the end to end encryption but the app will now display the sender and (if cached) the avatar of the sender so you will know who sent you a message.

In the next release we will aim for displaying the message content for unencrypted rooms and then for encrypted ones. Also other features like message actions will also eventually come to iOS.

🔗http3

By using the flutter packages cronet_http and cupertino_http we now support http3 on iOS and Android. This means FluffyChat will now use the system’s proxy by default and network communication speed should improve.

🔗Double Tap to React

Thanks to AndusDEV we now have double tap to react. This is enabled by default on mobile (can be disabled in the settings if you prefer message selection instead). The default emoji to be sent is of course ❤️ while this can also be configured.

🔗Verification icon

Users you have verified are now marked with a ✅ icon. If you have verified all users in a room, then the whole room is marked as verified. This should give you a better indication, which conversation is extra secure.

🔗Better Android Notifications

On Android notification processing now start a foreground service. This should make push notifications much more reliable when the app has been terminated.

🔗Others

This release does not bring translation updates as there are currently some technical problems on weblate. We are on it. All changeslogs can be found here: https://github.com/krille-chan/fluffychat/blob/main/CHANGELOG.md#v290

🔗Element X iOS (website)

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

Doug reports

This week we released 26.08.2 to the App Store (with all the changes reported last week) and made an interim RC for 26.08.3 which is a TestFlight-only build to validate some changes to our release workflows.

We continued iterating on User Status, fixing cases where changes weren’t reflected in room member profiles and where your own profile would stop updating if you removed your avatar. The surrounding UI also received tweaks, including a fix for cropped emojis and some refinements to the copy. As part of this the Chats, Search and Spaces screens received a visual tidy-up too. Navigation titles are now more compact, toolbar buttons behave better on iOS 26, and typography is a little more consistent across the app.

Under the hood, Element X should do less unnecessary work during startup, while updates to the Matrix Rust SDK improve profile handling in more homeserver configurations.

We also spent some time optimising our testing setup: flaky tests have been de-flaked, integration tests fail faster, and CI should make better use of cached compilation artefacts.

🔗Dept of VoIP 🤙

Johannes Marbach announces

We've released version 0.6.0 of lk-jwt-service (the LiveKit JWT service).

This release adds support for delegating delayed leave events to the service via the new /delegate_delayed_leave endpoint. This spares clients having to maintain their dead man's switch themselves and improves the mechanism's accuracy. Delegated events can be persisted across service restarts using a new optional storage backend based on Redis.

In a related change, the previously introduced delay_cs_api_url parameter was deprecated on all endpoints. For increased security, the service now ignores this parameter entirely and instead resolves the C-S API location using .well-known discovery. Homeserver admins should make sure to configure .well-known discovery appropriately.

Further noteworthy changes include a new health check endpoint /healthz and improved test coverage.

⚠️ Important: As we continue progressing on MSC4195, the service will undergo further breaking changes. Specifically, the endpoints the service currently provides will be integrated into the Client-Server API to be served by the home server in future. For Synapse, we're planning to run the service as a sidecar application service to which Synapse will proxy incoming requests via MSC4512. Other homeservers can choose to follow this approach if they want to reuse the service implementation.

On a related note, we also have a Rust rewrite in flight (https://github.com/element-hq/lk-jwt-service/pull/197). This won't impact the service's external interface but will change the way the service is built.

🔗Element Call (website)

Native Decentralised End-to-end Encrypted Group Calls in Matrix.

Robin announces

🔗Deprecating .well-known transport discovery

Hi from Element's VoIP team! We just released Element Call 0.24.0, which deprecates the method of discovering MatrixRTC transports that used the homeserver's /.well-known/matrix/client file. This is a PSA for admins and developers that you may need to take some actions to ensure Element Call can still find your LiveKit SFU.

For client developers using Element Call as a widget, make sure that your client supports the new get_rtc_transports action from MSC4515. If desired, you can implement this action in a way that still falls back to .well-known discovery to give your users more time to migrate to the MSC4519 endpoint.

For admins hosting a standalone Element Call instance, make sure that your homeserver supports the GET /_matrix/client/unstable/org.matrix.msc4143/rtc/transports endpoint from MSC4519. (If it doesn't, you could try "implementing" it manually with an unauthenticated reverse proxy entry.) See the updated self-hosting guide. If your server's /.well-known/matrix/client file contained an org.matrix.msc4143.rtc_foci key, you may remove it.

For other homeserver admins, no changes are required at this time because Element Web/Desktop and Element X Android/iOS are all being adapted to keep the .well-known discovery method as a fallback. We still recommend enabling the GET /_matrix/client/unstable/org.matrix.msc4143/rtc/transports endpoint from MSC4519 however to prepare for future changes. See the updated self-hosting guide.

🔗Dept of Ops 🛠

🔗Matrix Connectivity Tester (website)

A web interface to debug and troubleshoot Matrix connectivity issues.

MTRNord (they/them) says

Since the last update, a bunch of federation-check improvements landed to improve edge cases, bugs and also extending the statistics.

🔗What's Changed

  • Outgoing federation checks can now also probe over a dedicated IPv4-only and IPv6-only address, so you can see whether a server's outgoing federation actually works over each address family individually, not just whichever one its resolver happens to prefer.
  • The public opt-in Statistics page now also breaks down announced address family (IPv4-only / IPv6-only / dual-stack) and, for dual-stack servers, which family actually connects.
  • Optional MSC4524 (Federation Bidirectional Ping) support for the outgoing-federation check, as an alternative to the client-API room-alias trick.
  • Fixed a couple of real, reported false-negatives: a server whose /.well-known/matrix/client redirects elsewhere (client-server side) wasn't followed at all and got silently probed at the wrong base URL, and a well-known response missing CORS headers (including on the redirect itself) was silently treated as "absent" instead of being flagged as its own problem.
  • Optional (for the operator/hoster) OpenTelemetry tracing support added to allow for better optimizing and debugging of edge cases encountered as bugs.
  • Cleaned up the OpenAPI spec (interactive docs at /api-docs).
  • Reworked the way we do alerts instead of having a fixed number of fails before an alert. This reduces flapping spam.

Code lives on self-hosted Phorge: https://phorge.mtrnord.blog/source/mcte/repository/main/.

Find the deployed version at https://connectivity-tester.mtrnord.blog or, if you're daring, https://stage.connectivity-tester.mtrnord.blog for the staging deployment, which gets changes earlier but at less stability.

If you find issues or want to request features, please direct them at the Phorge repository or at the forum at https://forum.mtrnord.blog/c/matrix-connectivity-tester/support/6 :) Note that I am doing this in my freetime alone so it might take a few days or weeks at times for me to respond. :) I do however try to respond as early as I am able to.

🔗Dept of Videos 📹

andypiper announces

🔗Matrix Live (website)

Matrix Live is our weekly video update that spotlights different aspects of the Matrix ecosystem, from the Foundation's Working Groups, through events, the evolution of the specification, to the many different projects that build on top of the Matrix protocol.

If you'd like to join me (Andy) in a future edition of Matrix Live, get in touch! We're scheduling a number of weeks ahead, and we'd be happy to find time for an upcoming conversation.

🔗Matrix Federation Stats 📊

Aine [etke.cc] says

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

As of today, 20083 Matrix federateable servers have been discovered by matrixrooms.info, 4114 (20.5%) of them are publishing their rooms directory over federation. The published directories contain 20558 rooms.

The most popular server software among the online servers is:

  • synapse: 15647 (77.9%)
  • continuwuity: 1760 (8.8%)
  • conduit: 548 (2.7%)
  • dendrite: 305 (1.5%)

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.

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

RankHostnameMedian MS
1continuwuity.org161.5
2vrkknn.net209.5
3raccoon.cafe234
4vibb.me255
5nerdhouse.io256.5
6dykes.ca302
7worldethicaldataforum.org339
8w33b.cloud390.5
9unredacted.org421
10victorewik.es422

🔗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.

🔲 ☆

This Week in Matrix 2026-08-14

🔗Local-first Matrix

Today's Matrix Live: https://youtube.com/watch?v=n6SBxQIVsp4

🔗Dept of Events and Talks 🗣️

HarHarLinks says

🔗Matrix @ FrOSCon (website)

FrOSCon is the two-day Free and Open Source Software Conference, taking place every year in August at the University of Applied Sciences Bonn-Rhein-Sieg by Bonn, Germany. The Matrix community has long been a part of it, showing off and advertising Matrix as one of the many FLOSS projects. Drop by to say hi at our and the many other exhibitor booths, watch talks across 7 or more rooms in parallel, join one of the many workshops, chat with us, and much more. See you there this weekend!

For more Matrix Community Events, join our chat room #community-events:matrix.org, follow us on the Fediverse @community_events@mastodon.matrix.org, and check our website (we sometimes even update it).

🔗Dept of Spec 📜

TravisR reports

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:

  • No MSCs were accepted this week.

Closed MSCs:

  • No MSCs were closed/rejected this week.

🔗Spec Updates

The Spec Core Team (SCT) continues to focus on Matrix 2.0 MSCs with an aim of cutting the release soon. There's not much to report on weekly, but you can follow the SCT's progress in the SCT Office room or on our tracking board.

Other MSCs are still being accepted, though may experience process delays due to priority being given to Matrix 2.0. Let the team know if there's an MSC which could do with review through the SCT Office.

Stack Chart of MSC progress over time

🔗Dept of Servers 🏢

🔗Synapse (website)

Synapse is a Matrix homeserver implementation developed by Element.

madlittlemods (Eric Eastwood) announces

This week we have a new release candidate, Synapse v1.159.0rc1. To highlight:

  • On the user status front, we landed support for MSC4429: Profile Updates for Legacy Sync (defaults to disabled). To try this out, enable it via include_profile_updates_in_sync in your homeserver config and then use a client which also supports it. You can use the nightly version of Element Web (like https://develop.element.io) with the "User Status" labs flag enabled (visible after you enable "Developer mode" from /devtools). Pro-tip: /status <emoji> <text> ✨. More work to be done on this front like Sliding Sync support and federating all of this goodness.
  • We shipped some worker replication fixes and robustness tweaks this week (#20085, #20071). This also spawned a few more follow-ups to add some metrics so we can better notice when things are going wrong (will land in the coming weeks).
  • If you run Synapse against PostgreSQL, we now set idle_in_transaction_session_timeout (30 minutes) on new connections, so a leaked connection can no longer sit there holding locks or blocking vacuum indefinitely (#20077).
  • On the Matrix v1.16 spec-compliance front, Jason Little from Famedly has been landing fixes (#20021) as we march towards being able to update the default room version to 12.
  • To make it easier to give us useful info when reporting issues, we have new documentation on how to share a JSON snapshot of your Grafana dashboard (#20048). This is especially helpful when reporting performance problems as we can import the snapshot to dive straight into the Grafana dashboard ourselves to look for clues (way better than static screenshots).

Also for those that use our Debian/Ubuntu packages from packages.matrix.org, we've updated the signing key expiry date. This should be transparent to those that update before the previous version of the key expires (2027-03-15), but please check the relevant section in the upgrade notes.

Thank you to all our contributors for helping to make Synapse the best it can be. As always, feel free to stop by #synapse:matrix.org to join in on the discussion and if you encounter a bug make sure to report it here.

🔗continuwuity (website)

Continuwuity is a community-driven Matrix homeserver in Rust.

nex (it/she) announces

Continuwuity released v26.7.3 earlier this week. It contains two important vulnerability fixes, one of which is of a very high priority for users that have configured SMTP. There are no new features in this update, just the two bug fixes - we urge everyone to update as soon as possible.

However, worry not! I come bearing great news too! We have features in the works! And as a treat for TWIM readers (not really but pretend it is), we've gone ahead and done the unthinkable: published a pre-release! That's right, I'm not telling you to track our main branch for this one (although you have to promise to update your server when the full release is made). If you're eager to get your hands on significantly reduced resource load, faster federation, sticky events, and significant fixes to both legacy and sliding sync, you can deploy the v26.8.0-alpha.1 release! Make sure to report any issues to the issue tracker, and/or seek out support in #continuwuity:continuwuity.org!

➡️ https://continuwuity.org | #continuwuity:continuwuity.org | woof 🐾

🔗Venator (website)

Venator is an independently maintained Matrix homeserver, written from scratch in Go using the mautrix-go SDK.

nex (it/she) says

Venator v0.1.0a3 was just released, containing a healthy balance of bugfixes and new features. There's nothing too exciting in this release (oauth and federation soon I promise), but deployments of older versions may wish to update to take advantage of new security improvements like password peppering, and sweeping reductions in storage usage (with even more to come!).

Using Venator? Let me know in #venator:starstruck.systems, I am continually surprised to find people actually have long-lived deployments of this alpha project.

🔗Dept of Clients 📱

🔗Extera (website)

rustyraven[extera.xyz op] announces

Hi, federation! A lot has happened since our last TWIM post. We've rolled out a wave of updates since version 26.2.0 and we'll cover major things in this post.

  • Group calls: Added support for LiveKit group calls, should be compatible with Element Call. You can enable this under Calls -> Element Call to join group conversations.
  • Tailored message layouts: Choose from three different layouts, including a new Discord-inspired "Modern" design, updated bubbles, and the legacy bubbles layout from FluffyChat.
  • Custom fonts (experimental!): Make the app yours by setting custom fonts for the UI, messages, and code blocks individually. You need to have these fonts in your OS.
  • Interactive reactions & state events: React, redact, or reply to reactions and state events just like standard Matrix events.
  • Media spoilers: Media now can be hidden until clicked with content warnings feature (MSC3725).
  • Quick actions: Double-tap any message to instantly react or reply.
  • Timezones: Share your local time right in your profile.
  • User notes: Add notes about users for yourself.
  • Room server ACLs: Administrators can now manage room server access control lists directly.
Screenshot from Extera

Also, we updated the extera.xyz landing website and moved our development from GitHub to a self-hosted Forgejo instance at source.extera.xyz. We made sure that signing up process won't take much time, so you can authenticate using your Matrix account - pick "Matrix" auth method and join a special room or DM our bot.

Community ・ Source code ・ Website ・ Donate

🔗SchildiChat (website)

SchildiChat is a fork of Element for Android and Desktop, that used to focus on UI changes such as message bubbles and a unified chat list, but now also provides some additional tweaks and community-driven features that may not be on the roadmap for the upstream clients.

SpiritCroc reports

You may remember SchildiChat Revenge, my latest desktop client written in Kotlin & Jetpack Compose. Since the latest release, this 3rd generation SchildiChat now also supports Android!

Screenshot from SchildiChat

Initially, porting Revenge to Android was just meant as an experiment for fun, but it worked out way to well to not follow this route further. It's still missing some important features (such as notifications, integrating with Android share targets, etc.), but I've already switched to using it as my main client on Android.

Screenshot from SchildiChat

In case you're curious about what this means for SchildiChat Next, the current Android client based on Element X: it will keep receiving upstream merges and updates for the foreseeable future, but new SchildiChat features are much more likely to happen on Revenge, now that we actually have a shared codebase for both desktop and Android.

If you want to try it out, currently it's only released in my own F-Droid repo (I'll likely also put it into the Play Store at some point).

🔗Element X iOS (website)

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

Doug announces

This week we pushed the RC for version 26.08.2 to TestFlight, which will land on the App Store on Monday assuming testing goes smoothly. This release has a focus on quality-of-life improvements including a simplified login flow including auto-completion for your previously used homeservers. In addition read receipts should be sent more reliably when resuming the app, we’ve fixed a simulcast issue in Element Call and improved call behaviour during device rotation on Plus/Max sized phones.

In terms of upcoming changes we’ve made a noticeable improvement to launch performance by loading MapLibre only when a map is actually needed, improved the performance of the room list by removing some needless filter operations and fixed the iPad’s tab rail background colour not always being correct.

And the work on user status is nearing completion, with more testing against Synapse’s global profiles sliding sync extension currently underway.

🔗Element X Android (website)

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

Benoit says

Element X Android v26.08.1 is rolling out on the Play Store 🚀

Highlights of the release:

  • Push notifications for live location share starts, implementing MSC4505.
  • Active call participants are now shown in the room's people list.
  • The emoji picker expands to full height when the keyboard is shown.
  • A batch of UI and accessibility fixes, including checked/unchecked state announcements for user rows in the invite screen, and the "add reactions" menu in the threads screen.

Since then, develop has been very busy — a huge round of community bugfixes landed, many of them long-standing issues:

  • Voice messages keep playing when the screen turns off, and messages without a waveform can be seeked.
  • Enter sends a message when using a physical keyboard (Shift+Enter for a new line).
  • matrix: URIs in messages are turned into pills, IPv6 URLs are linkified properly, and the server part of a fediverse handle is no longer mistaken for an email address.
  • Notification fixes: no more duplicated messages in a room notification, no notifications for events sent by another account on the same device, and no notifications for redactions of unknown events.
  • Videos are never re-encoded at a higher bitrate than the source.
  • Bug reports no longer fail to send after the app has crashed.

...and much more. Massive thanks to @hayaksi1 for this impressive series of contributions!

Also landed: push notifications for knocks, the global account data API exposed on MatrixClient, and KDoc documentation added across all of the api modules to make the codebase friendlier to newcomers.

Still cooking behind feature flags: user status, and the QR code login / link new device flow (now with proper timeout handling).

🔗Matrix Federation Stats 📊

Aine [etke.cc] reports

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

As of today, 20123 Matrix federateable servers have been discovered by matrixrooms.info, 4160 (20.7%) of them are publishing their rooms directory over federation. The published directories contain 20397 rooms.

The most popular server software among the online servers is:

  • synapse: 15707 (78.1%)
  • continuwuity: 1766 (8.8%)
  • conduit: 549 (2.7%)
  • dendrite: 314 (1.6%)

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.

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

RankHostnameMedian MS
1vrkknn.net156.5
2continuwuity.org244
3cisnt.uk268
4vibb.me272
5pro.squarebowl.club285.5
6koenoostveen.nl341
7victorewik.es448.5
8grmml.de571.5
9lennsteenbergen.com627
10agentdid127.com697

🔗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.

🔲 ☆

This Week in Matrix 2026-08-07

🔗Matrix Live S13E04 - Continuwuity

Today's Matrix Live: https://youtube.com/watch?v=L94iervpyi0

🔗Dept of Events and Talks 🗣️

Kegan reports

🔗Local-first Conference

A few weeks ago I was at Local-first Conference in Berlin giving a talk about Local-first Matrix. The video for this is now available. I talk about some of the P2P work we've done recently as well as some Hydra work in the form of the ERA paper. It also bridges the two worlds together, since local-first problems are frequently also Matrix problems, there's a lot we can learn from each other.

HarHarLinks reports

🔗Stammtische (website)

A Stammtisch ("regular's table") is a German meetup format where those with a shared interest meet regularly for discussion, exchange, and socialising.

Find more community organised events at matrix-community.events!

Are you running a Matrix meetup? Add it to the list!

🔗Dept of Spec 📜

TravisR reports

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

The SCT is spending most of its time aiming to get Matrix 2.0 across the line ahead of the conference. Watch this space for updates, or follow along in #sct-office:matrix.org.

Stack Chart of MSC progress over time

🔗Dept of Servers 🏢

🔗Tuwunel (website)

Enterprise successor to conduwuit, the high-performance and feature-rich fork of Conduit.

june ✿ 🏳️‍⚧️ (it/she/puppy) reports

Tuwunel 1.8.3 adds QR-code login: Element Web's "Link new device" shows a QR code, Element X scans it, and the phone ends up signed in. MSC4108 carries the handshake; MSC4388 serves alongside, ahead of its clients. Tuwunel's own OIDC server approves the device authorization grant against local accounts, given oidc_native_auth = true (default off), well_known.client and a restart. rjwalters asked for it days later.

Video thumbnails ship gated: media_video_thumbnail_command is empty by default and the containers bundle none. Name one and the thumbnail endpoint serves a frame, not the whole video. az4521 asked, June built it, and lhjt's patch skips generation that only reproduces the source.

journalctl -u tuwunel -p warning returned nothing before: every line arrived as captured output at info priority. byteflavour's native journald logging submits each event at its own severity, and June's layer adds tracing fields under an F_ prefix, so journalctl F_ROOM_ID='!room:example.com' pulls one room out.

lhjt watched one receipt re-emit 2,113 times; his fix makes them monotonic. dasha-uwu reworked the HTTP security headers, unifying the CSPs and splitting out the SSO stylesheet and script so *-src 'self' is satisfiable. obodnikov fixed four non-unix build breakages (#526, #527, #528, #536). utop-top's report traced failing Matrix Authentication Service logins to the default scope; a brand = "MAS" provider now sends openid alone. Xerusion documented Traefik delegation; okias caught a dead docs link.

Upgrading: 1.8.3 refuses -O database_restore_backup= and will not start, so drop it from the launch command. A configured address that cannot bind is now fatal. LDAP login refuses accounts that did not originate in LDAP, locking out a half-finished migration.

Notes: https://github.com/matrix-construct/tuwunel/blob/27140e0a535aa9a8003e3db94f170f4320ad0ff9/RELEASE.md


💕 GitHub ✦ Releases ✦ DockerHub ✦ Playbook ✦ Containers ✦ Documentation ✦ Enterprise 🐕️ Tuwunel 💕


🔗Dept of Clients 📱

🔗Element X iOS (website)

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

Mauro says

A busy week. iPad gets a tab rail replacing the top tab bar, giving the split view a less intrusive feel on larger screens. Work on media galleries completed: gallery items now render in the media browser, the sending limit is up to 60 items, and we did an accessibility pass over the whole flow. On the calls side you can now see at a glance which room members are in a call, and clear your own call status from Settings. QR codes for linking a new device now expire correctly rather than hanging around forever. Plus fixes for the rageshake upload progress bar, for a room list that stopped updating when it wasn't scrollable, stretched avatars in the share sheet, and a rotation bug during calls on Max-sized devices. Thanks to nankeen, for the community contribution this week.

🔗Dept of Bots 🤖

🔗Reminder Bot

outarde reports

Hello everyone! I'd like to introduce a lightweight Reminder Bot written in Rust for Matrix servers. It sends reminders to users at a specified time.

Why Another Reminder Bot?

When I needed one for my server, none of the existing options worked. Most are outdated: they don't support encryption or modern authentication. In other solutions, reminders are simply an add-on to broader functionality (AI chat, bridges, etc.).

Current State

The bot can:

  • 📆 Recognize dates in messages and send reminders at a specified time.
  • ✅ Verify the bot account and enable backups for full compatibility with encrypted chats.
  • 🔤 Support multiple languages (adding new languages is a top development priority).

Starting a chat with the Reminder Bot
Asking for a reminder to look at the clouds
A reminder from the Reminder bot to look at the clouds
A list of missed reminders

Roadmap

The next feature in line is setting a custom time zone for each user. Then I'll add recurring reminders. I'm also considering integrating the bot with self-hosted task managers like Super Productivity or Mindwtr, as they store reminders in a simple .json format.

Links & More About the Project

You can read more about the bot and my journey (I'm not a professional programmer) in this Reddit post. You can also find the setup guide, provide feedback, or report an issue in the GitHub repository.

I hope this bot can make someone's Matrix server more convenient!

🔗Dept of Interesting Projects 🛰️

🔗Venoom

venumonelement announces

Decentralizing social media using Matrix and ATProto

For the past year-ish I have been working on Venoom, a cross-platform social app using Matrix and ATProto. It started as a passion project, trying to recreate a discord-like feel, but is now in a somewhat usable state!

The messaging and server part is built on Matrix. Servers are Matrix Spaces, categories are nested Spaces, and channels are Matrix rooms. It already has encrypted DMs and group chats, roles, custom emotes and reactions, member lists, and MatrixRTC calls with screen sharing. The app is built in Flutter, so it works across mobile and desktop.

Alongside that, I am also working on the social part, where people can share posts and thoughts. That side uses ATProto, although it is still much earlier than the Matrix part.

When you create a Venoom account, you get both a Matrix identity and an ATProto identity. That is the main reason I chose these two protocols. I do not want your account and everything you do to only work inside Venoom. You should be able to use your Matrix identity with other Matrix clients and use your ATProto identity with other apps in that ecosystem.

Image of a profile on Venoom

Basically, I am trying to combine Discord-style servers and messaging with a social feed, while making sure people are never completely locked into Venoom itself. The project is still early, but the Matrix side is now at a point where I would really like some people to test it and tell me what they think.

Screenshot of chats in Venoom

If you're interested, i will be posting more day to day updates here #venoom:matrix.org

🔗Matrix Federation Stats 📊

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

As of today, 19983 Matrix federateable servers have been discovered by matrixrooms.info, 4145 (20.7%) of them are publishing their rooms directory over federation. The published directories contain 20273 rooms.

The most popular server software among the online servers is:

  • synapse: 15597 (78.1%)
  • continuwuity: 1746 (8.7%)
  • conduit: 549 (2.7%)
  • dendrite: 309 (1.5%)

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.

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

RankHostnameMedian MS
1raccoon.cafe191.5
2vrkknn.net199.5
3nerdhouse.io238
4cisnt.uk272
5zirco.dev404
6gingershaped.computer412.5
7victorewik.es430
8bartoostveen.nl467
9thibaultmol.link519
10beeper.com564

🔗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.

🔲 ☆

This Week in Matrix 2026-07-31

🔗Dept of Events and Talks 🗣️

🔗Matrix Community Workation Krems 2026

Yan says

In case you haven't spent the last few years asleep under a rock, you've probably come across the Matrix Workations: get-togethers where people who work with, on and for Matrix meet up to work together and side by side (here's what the past ones looked like). The next one is coming up, back at the Schwarzes Rössl in Krems, Austria, from 22 August to 13 September 2026.

It's a workation, not a vacation. You can happily keep doing your day job. There are desks, meeting rooms, workshops and the usual infrastructure. But of course there are also topics and project groups we dig into together, so we've split Krems into three blocks:

  • Week 1 · Håck ma's (22–30 Aug) ("let's hack" in Austrian slang). Prepping for the Austrian hacker gathering, connecting to the local scene, and exploring hacks from, with and through Matrix. Bring your own Matrix open source project and run a hackathon or bug hunt while you're there.
  • Week 2 · Public Sector (31 Aug–6 Sep). Matrix in the public sector, including a project retreat for FITKO (in the NEO project a new Matrix-based fabric for citizen-to-authority communication is being laid). Plus the medical sector, education and universities, and public stuff in general. It's getting tight, but ask us anyway, we try to make things possible.
  • Week 3 · Matrix and beyond (7–13 Sep). Matrix in use cases a bit further from the chat case: Home Assistant and IoT, widgets, or whatever your project happens to be.

Grab a ticket (community prices, early-bird until 31 July) at tickets.matrix-community.events. Coming as a project or a group of four? There's a group discount, just ask us for the voucher. And we're still looking for sponsors: sponsoring keeps the community prices low and makes the whole thing possible, so if you or your org would like to support the Workation, please reach out.

Brought to you by Matrix Community Events. Come say hi in #workation-nation-general:datanauten.de.

🔗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:

Accepted MSCs:

Closed MSCs:

  • No MSCs were closed/rejected this week.

🔗Spec Updates

The spec is ticking along with new MSCs; some getting into FCP and some being accepted. The introduction of a spec registry concept (see MSC4518: Registries and MSC4519: MatrixRTC Transports Registry) is something I've personally found interesting lately. Primarily an event type registry.

Being able to take all the event types of out the (currently very large) Client-Server spec and into a dedicated page, along with the ability for people and organisations to register their own event types is a noble and long-requested effort! MSC4518: Registries specifically goes into detail about how one can propose a registry and the expected behaviour around adding/modifying entries in it.

There's no such MSC for an event registry yet, and I'm cautious about starting one until MSC4518 has some more time in the oven. But it's only a matter of time!

🔗Dept of Servers 🏢

🔗Synapse (website)

Synapse is a Matrix homeserver implementation developed by Element.

madlittlemods (Eric Eastwood) reports

Hi everyone. If you're running Synapse, please note that 11 security vulnerabilities were fixed as part of the v1.157.2 security release.

If you haven't yet updated, please consider doing so soon!

We also have a new release candidate this week, Synapse v1.158.0rc1. To highlight from the changelog:

Thank you to all our contributors for helping to make Synapse the best it can be. As always, feel free to stop by #synapse:matrix.org to join in on the discussion and if you encounter a bug make sure to report it here.

🔗continuwuity (website)

Continuwuity is a community-driven Matrix homeserver in Rust.

nex (it/she) announces

Continuwuity v26.7.1 has been released!

This update introduces some new features, such as the ability to change where continuwuity sources the connecting IP from (allowing you to use x-forwarded-for again), an admin command to issue permanent access tokens for bots even when the server is in oauth2-only mode, and device authorization grant support was added for non-web clients. There are also several bugfixes, including a fix for the infamous "room says empty client and must be upgraded from v1 after joining" bug, problems with restricted joins over federation were resolved, new registration admin room alerts were re-introduced after being erroneously dropped, appservice device registration no longer creates orphaned devices, and many fixes related to sync.

You can read the full release notes here: https://forgejo.ellis.link/continuwuation/continuwuity/releases/tag/v26.7.1. We also have deb packages for ARM64 now!

nex (it/she) [starstruck] also says

Continuwuity v26.7.2 has been released!

With new updates come new bugs. New bugs get caught and eventually squashed. In this case, we squashed two regressions introduced around v26.7.1, and fixed a low-severity vulnerability in the sliding sync implementation (particularly relevant to multi-user homeservers). I'd say it's recommended everyone upgrades as soon as possible, but I doubt anyone's hanging around on buggy versions for fun.

You can read the changelog here (it's small, you don't need subway surfers on the side for this one): https://forgejo.ellis.link/continuwuation/continuwuity/releases/tag/v26.7.2

➡️ https://continuwuity.org | #continuwuity:continuwuity.org | #space:continuwuity.org | woof

🔗Dept of Clients 📱

🔗Tesseract (website)

Marco announces

Hello again! 0.8.16 and then 0.8.17 went live, with many many goodies. The most important one is calls being enabled by default (they are still considered experimental, but they are now enabled for anyone that wants to give them a shot). Among the highlights now you can (finally) create rooms, send your location (with a chat command and proper OS support), quick-reply from notifications, and full app keyboard navigation. The app visual design got a little refresh, so it should look nicer. Hope you like it!

Feel free to drop by the official room!

🔗Nexus (website)

Matrix client made with Flutter and a Gomuks backend.

QuadRadical (Ping) says

What's new?

  • Support for encrypted media
  • Initial support for MacOS - No CI yet, you need to build manually
  • And some bug fixes, as always :)

Get involved!

If you want to help with development or simply keep up with new features, join our Matrix room at #nexus:federated.nexus or check out the Git repo at https://nexus.federated.nexus!

🔗Element X iOS (website)

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

Mauro reports

This week on Element X iOS, we wrapped up the media gallery timeline item, so you can now send multiple media files grouped into a single timeline entry. User status is nearly there too, though we're currently waiting on homeserver/Synapse support before it can go further. We've also made solid progress on cross-room search. On top of that, we squashed a good number of bugs and crashes this week, including some particularly nasty ones, which should give app stability a noticeable boost.

🔗Matrix Federation Stats 📊

Aine [etke.cc] says

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

As of today, 19935 Matrix federateable servers have been discovered by matrixrooms.info, 4151 (20.8%) of them are publishing their rooms directory over federation. The published directories contain 20258 rooms.

The most popular server software among the online servers is:

  • synapse: 15600 (78.3%)
  • continuwuity: 1707 (8.6%)
  • conduit: 552 (2.8%)
  • dendrite: 319 (1.6%)

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.

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

RankHostnameMedian MS
1im.breite.at206.5
2codestorm.net210
3starseeker.nexus225
4continuwuity.org245
5usbpc.xyz246
6cisnt.uk271
7vrkknn.net300.5
8blahaj.club711
9matrix.bochumerjunge.de799.5
10nexussfan.cz1009

🔗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.

🔲 ☆

This Week in Matrix 2026-07-24

🔗Matrix Live S13E03 – Homeserver Decentralisation Working Group

Today's Matrix Live: https://youtube.com/watch?v=l_WFYKz83-A

🔗Dept of Events and Talks 🗣️

🔗The Matrix Conference

HarHarLinks announces

🔗Last Call for The Matrix Conference Merch Preorders!

Matrix events such as the Conference are always great opportunities to do something special with merch, with exclusive designs never to return! At least for me that's one of the many parts I love about it, right next to the souvenir value of course! For 2026, we decided that last year's white on black edition conference T-shirt and zipper hoodie were plenty stylish, but we wanted more than a re-run. So we decided to expand up everyone's wardrobe opportunities and are going to have black on white (well, reasonably bright grey) this time around! The embroidering will return for the zipper hoodie because we love the quality, feel, and effect, while the T-shirt will be printed. You also might remember the baseball caps we had at FOSDEM earlier this year. Since Conf is going to be in autumn on the verge of the cold season, we are making embroidered beanies in the classic Matrix white on black to keep your ears warm when you go outside to explore Malmö in the evening. Finally we noticed there are still parts of your bodies without Matrix clothing available for them, so I'm really excited to introduce the Matrix socks in Sweden's national colours.

Matrix Conf Merchandise preview showing a grey hoodie, a black beanie, and blue and yellow coloured socks and hoodie

All of this can be preordered before the end of July since we have to make sure we keep to production deadlines. We will do our best to make some of each available for spontaneous decisions on site, but cannot guarantee availability there.

Reserve yours at https://conference.matrix.org/register/!

PS: You will need to make sure your preorder is picked up during the Conference in Malmö, but you can totally order just your merch today if you're not yet sure which ticket you are going to get!

🔗More Volunteering Slots Available

The Matrix Conference is made possible thanks to our awesome sponsors financing it just as well as our awesome volunteer team staffing the welcome desk, operating video equipment, and generally jumping in whenever an extra hand is needed. We have onboarded a lot of volunteers already and our shift booking system was totally booked out while we worked through all these applications from you amazing people, and some have already asked when more will be available. This is (as of writing) the case! If you were waiting for one to free up again, head to our volunteering system and sign up for two shifts to receive a free ticket to the Conference, the limited edition team-only zipper hoodie in special colours, and of course a lot of experience, satisfaction and fun from helping making The Matrix Conference happen!

If you've already signed up a while ago and have received neither an email nor invite on Matrix from us yet, please reach out to us over at #events-wg:matrix.org.

See you soon, your Events WG.

🔗Dept of Working Groups 💪

🔗Homeserver Decentralisation Working Group (website)

The Homeserver Decentralisation Working Group aims to promote decentralisation of the Matrix network by fostering a smoother onboarding experience (to homeservers and clients) on homeservers other than matrix.org, and might propose additional measures in the ecosystem as a whole.

Nicolas Da Mutten announces

I'm happy to report that the Homeserver Decentralisation Working Group graduated from a community group to an official foundation group! Thanks @thedarkwizard:waywardinn.com for sponsoring us and being so proactive! 🎉

Since our last report, we now finalized our policy. While it is finished in its current form, PRs are still welcome, if something needs to be changed. It's not supposed to be set in stone but rather to be a living document.

Going forward we will be focusing on the process of maintaining and automating the future server list and onboarding servers.

🔗Dept of Spec 📜

Andrew Morgan (anoa) {he/him} reports

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:

Accepted MSCs:

  • No MSCs were accepted this week.

Closed MSCs:

🔗Spec Updates

Lots of updates in spec world this week! New MSCs, MSCs being closed in favour of others or due to lack of time. Don't forget that a closed MSC can always be opened under a new MSC # if someone thinks its worth pursuing - the idea isn't dead forever!

MSC4319 entered final comment period this week. It proposes that additional m.room.member events be included when receiving room state during an invite or knock. This allows for clients (and users) to receive information about who invited them (or knocked on the room), when the invite (or knock) occurred etc.

FCP ends in 3 days, so go and check the MSC out for any last minute additions/changes if this is an area you're interested in!

🔗Dept of Clients 📱

🔗Nexus (website)

Matrix client made with Flutter and a Gomuks backend.

QuadRadical (Ping) announces

🔗What's new?

Hello TWIM! You may have been wondering what has been happening with Nexus, as there hasn't been an update in a while. Well, here it is:

  • Support for OAuth login, and removal of UIAA login

Nexus's OAuth login screen

  • Support for sending media (images, videos, files, etc)
  • Support for viewing pinned events, thanks to @istalri:federated.nexus for this!
  • A settings page

Nexus's settings page

  • Experimental support for MacOS, if you use MacOS please join our support room to help with testing, it's most appreciated!
  • And a whole lot of bug fixes and smaller features!

🔗Get involved!

If you want to help with development or simply keep up with new features, join our Matrix room at https://matrix.to/#/#nexus:federated.nexus or check out the Git repo at https://nexus.federated.nexus!

🔗Fractal (website)

Matrix messaging app for GNOME written in Rust.

Kévin Commaille says

A regression in Fractal 14 meant that display names could not be changed in account settings anymore for some servers. Fractal 14.1 was just released to address this issue. Thanks to Jack S. for discovering it soon after the 14 release!

This version is available right now on Flathub.

If you want to help us avoid regressions like that in the future, you could use Fractal Nightly. You could even get rid of our remaining bugs yourself!

🔗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 we’ve been hard at work with the 3 next features for the app:

  • We saw our first data syncing to the app from Synapse for User Status 🎉
  • We’re adding support for Media Galleries to match Element X Android. Sending is merged and we’re now iterating on the timeline rendering. 🖼️
  • Work on Message Search has resumed after some team holidays and is looking really good! 🔍

Other than that 26.07.4 landed on the App Store on Monday with all the changes mentioned last week.

🔗Element X Android (website)

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

Jorge says

This has been a quiet week, mostly focused on continuing the work on WIP features like user status, and fixing bugs and accessibility issues.

Element X Android v26.07.1 has been published and it contains all the changes we told you about in previous TWIM messages.

🔗Dept of SDKs and Frameworks 🧰

🔗matrix-nio

OdoItal reports

matrix-nio 0.26.0

This release swaps the end-to-end encryption backend from libolm to vodozemac, drops end-of-life Python versions, and modernizes the project's tooling.

This is a breaking release. Encryption now runs on vodozemac instead of libolm/python-olm, some encryption defaults have changed, and Python 3.9 and older are no longer supported.

🔗⚠️ Breaking changes

  • Encryption backend replaced: libolm/python-olm → vodozemac. The e2e extra now depends on vodozemac, and libolm is no longer required as a system dependency.
    • Store migration is automatic on first load. Stores created with a libolm pickle version older than 4 (roughly, pre-December 2021) can only be migrated if the optional python-olm >= 3.2.7 package is installed at upgrade time — otherwise those pickles cannot be read.
    • hmac-sha256 is gone for SAS verification. Only hkdf-hmac-sha256 is offered as a message authentication code, so verifying against clients that only support hmac-sha256 is no longer possible.
    • Account.remove_one_time_keys() has been removed, as it is no longer supported by the underlying library.
  • Dropped Python 3.8 and 3.9. The minimum supported version is now Python 3.10. Python 3.14 is now supported. Supported: 3.10, 3.11, 3.12, 3.13, 3.14.

🔗Additions

  • Added unread_thread_notifications to SyncResponse.

🔗Bug fixes

  • Fixed get_openid_token, which requires an empty JSON body to be sent.
  • Fixed printing of FileResponse when a download is saved to a file.

🔗Internal / maintenance

  • Adopted uv for project management, applied pyupgrade and linting, and bumped dependencies.
  • Unpinned dependencies for more flexible version resolution.
  • Upgraded the underlying vodozemac to 0.10.0.

🔗vodozemac-python (website)

Python bindings for vodozemac, the implementation of Olm and Megolm in pure Rust.

OdoItal says

vodozemac-python 0.10.0

This release upgrades the underlying vodozemac Rust library to 0.10.0. The Python package version tracks the Rust crate, so this is 0.10.0.

This is a breaking release. The public Python API is nearly unchanged, but several operations that previously always succeeded can now raise an exception, and Python 3.9 is no longer supported.

🔗⚠️ Breaking changes

  • Some operations are now fallible. As of upstream vodozemac 0.10.0, Diffie-Hellman can reject malicious/low-order keys, which makes the following methods able to raise where they previously always returned a value:
    • Account.create_outbound_session → may raise SessionCreationException
    • Session.encrypt → may raise the new OlmEncryptionException
    • PkEncryption.encrypt → may raise PkDecodeException Method signatures are unchanged; wrap these calls in error handling if you process untrusted keys.
  • Stricter Ed25519 signature verification is now mandatory. Non-strict verification has been removed upstream. Signatures that were maliciously crafted and previously accepted may now be rejected.
  • Dropped Python 3.9. The minimum supported version is now Python 3.10. Python 3.14 is now supported. Supported: 3.10, 3.11, 3.12, 3.13, 3.14.

🔗Additions

  • New OlmEncryptionException, raised on Olm encryption failures (mirrors the existing OlmDecryptionException).

🔗Internal / maintenance

  • Upgraded pyo3 0.28 → 0.29 and maturin to 1.14.
  • Bumped thiserror and refreshed transitive Rust and Python dev dependencies.
  • Session configuration continues to use protocol version 1 for all Olm/Megolm sessions; this is unchanged from 0.9.

🔗Dept of Ops 🛠

🔗Matrix Connectivity Tester (website)

A web interface to debug and troubleshoot Matrix connectivity issues.

MTRNord (they/them) reports

I just released v0.1.0 (and v0.1.1) of the elixir connectivity tester. This one's a bigger change than the last few: the Rust backend and the separate frontend are now merged into a single Elixir/Phoenix app that ships the web UI, API, alerting, and an OAuth2/OIDC provider together in one deployable unit. Development also moved off GitHub, so the old two-repo setup is gone.

🔗What's Changed

  • Unified the previously separate backend (Rust) and frontend into one Elixir/Phoenix app. All existing checks (federation, DNS/well-known, TLS, split-brain detection, MatrixRTC, the OAuth2-backed alerts) carried over
  • New federation checks along the way: an outgoing-federation self-check (does the target server actually reach us back over federation, not just the other way round) (thanks @networkexception:nwex.de for that idea!), dual-stack/protocol asymmetry detection, and signing-key-expiry warnings
  • Public opt-in statistics page now also breaks down MSC/unstable-feature adoption by server software family and timeframe, not just plain pass/fail counts
  • Permalinks: freeze and share the exact result (federation check + client-side probe) you saw, instead of asking someone to re-run the check themselves
  • Export a result as JSON, Markdown, or print/Save-as-PDF
  • Shields.io-style status badge for READMEs (/api/badge/federation.svg)
  • Batch endpoint to check several servers in one call
  • Full OpenAPI spec with an interactive Redoc UI at /api-docs
  • Uptime percentage (7d/14d/30d) per alert in the alerts overview
  • Docs search across the built-in /docs pages
  • Cookieless analytics via self-hosted Plausible (no personal data, no cookies)

Code moved to self-hosted Phorge: https://phorge.mtrnord.blog/source/mcte/repository/main/. The old GitHub repos are no longer where development happens.

Find the deployed version at https://connectivity-tester.mtrnord.blog or, if you're daring, https://stage.connectivity-tester.mtrnord.blog for the staging deployment, which gets changes earlier but at less stability.

If you find issues or want to request features, please direct them at the Phorge repository or the Forum at https://forum.mtrnord.blog/c/matrix-connectivity-tester/5 :)

Weblate has also been updated for this project pivot to elixir. You can find the components over at https://weblate.mtrnord.blog/projects/matrix-connectivity-tester-elixir/

🔗Dept of Interesting Projects 🛰️

nex [starstruck] reports

star rewrote my mxtoken tool so that it doesn't explode if you use a machine other than my own: https://starstruck.systems/mxtoken2. It additionally also properly supports SSO. The legacy mxtoken will continue to show existing sessions prior to the rewrite, but no new sessions can be created through it. Use star's rewrite for that.

I don't think I've announced mxtoken before, so for those who haven't already heard about it, mxtoken is a visual (web) interface that supports various login methods to fetch access tokens, which can safely be re-used in bots, webhooks, curl requests, etc, as they do not set up crypto and are not bound to a browser. It stores all sessions in localstorage, and has a couple management options for refreshing tokens and logging out devices.

🔗Matrix Federation Stats 📊

Aine [etke.cc] says

TWIM

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

As of today, 19800 Matrix federateable servers have been discovered by matrixrooms.info, 4163 (21.0%) of them are publishing their rooms directory over federation. The published directories contain 20314 rooms.

The most popular server software among the online servers is:

  • synapse: 15528 (78.4%)
  • continuwuity: 1669 (8.4%)
  • conduit: 559 (2.8%)
  • dendrite: 322 (1.6%)

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.

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

RankHostnameMedian MS
1nerdhouse.io268
2cisnt.uk338.5
3ncat.cafe383
4ellis.link435
5victorewik.es458
6matrix.maciej.cloud469
7feralfox.net559
8blahaj.club881
9beeper.com1248
10cwt.grin.hu2706.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.

🔲 ☆

This Week in Matrix 2026-07-17

🔗Matrix Live S13E02 - Amandine talks Foundation Mission & Funding and Matthew talks about P2P

Today's Matrix Live: https://youtube.com/watch?v=27C5RjRVXzI

🔗Dept of Spec 📜

uhoreg 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:

  • No MSCs were closed/rejected this week.

🔗Dept of Servers 🏢

🔗Tuwunel (website)

Enterprise successor to conduwuit, the high-performance and feature-rich fork of Conduit.

june ✿ 🏳️‍⚧️ (it/she/puppy) announces

Tuwunel 1.8.2 brings richer, more private link previews: preview media now covers video and audio as well as images, relayed through the server so the previewed site sees Tuwunel rather than the person who shared the link. az4521's contribution added the proxying, separate page and media user-agents, and the video previews they had requested.

Packaging expanded on several fronts, all from June: RPM and COPR builds, a SELinux policy module, an apt repository published from CI, and Debian packaging that adopts an existing conduwuit or Conduit database in place.

Appservices now receive more in every transaction: device-list changes and one-time-key counts via MSC3202 and to-device events via MSC4203, both opened by dark-collective. The Synapse-compatible admin API added server-notice, redaction, login-as, federation-destination and media endpoints, and operators can cap forward extremities and list or prune a room's leaves from the admin console.

Federation delivery no longer runs hot against a server that keeps failing: the per-server backoff now reads a server's full failure history rather than one time bucket. Tuwunel also refuses to open over database remnants without a readable manifest, after ItsLiyua reported and diagnosed a wipe-on-open, and native OIDC login completes again after failing mid-redirect.

On spec: v1.18 and v1.19 are declared, basnijholt got MatrixRTC transport discovery working for Element Call without a token, and one-time-key counts match Synapse so a drained client replenishes its keys instead of starving. obodnikov repaired non-unix and macOS builds.

Full release notes: https://github.com/matrix-construct/tuwunel/blob/9099defe5ee340140ca0d56e478751637f34354d/RELEASE.md


💕 GitHub ✦ Releases ✦ DockerHub ✦ Playbook ✦ Containers ✦ Documentation 🐕️ Tuwunel 💕


🔗Synapse (website)

Synapse is a Matrix homeserver implementation developed by Element.

madlittlemods (Eric Eastwood) says

This week we have a new release candidate, Synapse v1.157.0rc1. To highlight:

  • As part of the 'Synapse rustification' work, we ported the synchronous core of client event serialization to Rust (#19837), and Rust code can now make database calls through the same connection pool as Python (#19878). This unlocks being able to write more endpoints in Rust (/versions is backed by Rust now). To keep all this new async Rust testable, our test utilities now drive the Tokio runtime in Rust just as well as the Twisted reactor in Python (#19871, #19879).
  • Sliding Sync picked up several database fixes: a deadlock fix (#19826) and new indexes that should smooth out some inconsistent performance (#19912, #19923).
  • Presence got a few minor performance improvements and tuning options (#19939, #19941, #19942, #19948, #19935) but we still recommend keeping it disabled for any large deployment as the current paradigm doesn't really scale.
  • The war against test flakes continues. We tracked down and fixed a few more this week (#19890, #19929). Some of this work manifests as fixing flawed tests in other repos (like Complement) but we also merged a fix in our workerized Docker image to prevent nginx from temporarily marking workers as unavailable when a test restarts a server (#19936). See #18537 for a loose list of flakes we experience often.
  • Support for the deprecated MSC3861 Auth Delegation (experimental_features.msc3861) has been dropped in this version, in favour of the stable Matrix Authentication Service integration. This was deprecated last August but is finally being removed now.
  • On the experimental side: new support for MSC4446 to allow moving fully read markers backwards (#19663 thanks @SpiritCroc @ Beeper!), and the MSC4140 delayed events implementation now limits the number of delayed events a user can have scheduled at once (#19539).

... and a whole lot more!

Thank you to all our contributors for helping to make Synapse the best it can be. As always, feel free to stop by #synapse:matrix.org to join in on the discussion and if you encounter a bug make sure to report it here.

🔗continuwuity (website)

Continuwuity is a community-driven Matrix homeserver in Rust.

nex [starstruck] reports

Continuwuity v26.6.0 has been released! This major release is packed full to the brim with new features and bug fixes, to the point that it makes you wonder "how much of the codebase can be replaced before it's a new project".

This is a landmark milestone for the project. With over 700 commits since our last feature release, ~65,000 lines of code have been changed across >500 files. In the past year alone, we've changed >180,000 lines of code across >900 files. That's an incredible amount of code to have written since the April of 2025, but we didn't do it alone; 80+ contributors have helped us build this software, and that's not even including the hundreds more that have reported bugs and helped out in our thriving community.

I've been saying for a long time now that there's big things on the horizon - this is the horizon! This huge release includes long awaited and highly demanded features, including (but absolutely not limited to): Native OAuth2 and OIDC support, static musl binaries, room upgrade overhauls, improvements to federation catch-up and state resolution, and many fixes to sync.

But TWIM isn't for changelogs, the release notes are! Go read them!

All Continuwuity deployments are encouraged to upgrade as soon as possible - there are hundreds of internal changes that improve the performance and reliability of the server, not to mention a bunch of new features everyone has been practically begging for in the past 3 months. If you run into any trouble, don't hesitate to reach out!

A keen eye may have also noticed we changed our version scheme! Instead of using "zerover", we're now using "calver", which means our versions are now based on the date in which they enter the release cycle. This should more accurately reflect our development cycle, and allows us to build things even faster than before.


There's still even more to come, so stay tuned (perhaps by joining our announcements room). If you have any questions or concerns, you can reach out in our support room, and even if you don't have a reason to, you should check out the rest of our rooms in our space. The general rooms continue to be more active than your local town square, I bet.

If you like the work we're doing, please consider giving us a star on GitHub: https://github.com/continuwuity/continuwuity. While we don't primarily host there, leaving a star boosts our visibility! Also recommend the project to your friends, if they aren't already using it.

Anyway, enough yammering. I've got more code to write.

➡️ https://continuwuity.org

nex [starstruck] reports

Continuwuity v26.6.2 has been released, which fixes several bugs uncovered shortly after v26.6.0 started being adopted. It is recommended you skip v26.6.0 and upgrade to v26.6.2. If you find any new bugs, please let us know by opening an issue on our forge. The team is very busy now but we're working as fast as we can to smooth over the teething pains of a major release, and reporting issues will allow us to prioritise work more efficiently. Otherwise, questions and concerns can be raised in #continuwuity:continuwuity.org as usual!

Breaking change notice: some bugs fixed in this version have created an incompatibility with Synapse and as such you will be unable to receive invites from Synapse servers if you update to this version. Do not upgrade if this is something you require, and perhaps subscribe to the relevant issue to be notified when the problem is resolved.

➡️ https://continuwuity.org

🔗Dept of Clients 📱

🔗Tesseract

Marco says

Hello again! 0.8.14 and 0.8.15 went out since the last post!

  • Due to popular demand (one github issue), Tesseract now supports legacy non-MAS username/password login. Only existing accounts, creating accounts is not supported.
  • Now you can edit your emoji & sticker packs! During the transition to the stable MSC2545 names, packs will be read from both unstable and stable room state names, and NEW packs will also be saved on both (existing packs will be updated as they are). AND the personal sticker pack is still supported, even if it fell off the spec. So every pack created with other apps should be there! A checkbox in the new advanced settings tab (via the 'advanced' button in the about tab) allows you to only use the stable names, if that's your thing. Choices for everyone :)
  • Custom emojis now work everywhere, via shortcodes, emoji picker, rendered in the composer and in the timeline.
  • You can also see all the room media with the new room media gallery available from the room info panel.

Calls are still under a compile flag, but they will probably be enabled by default in the next release. Stay tuned.

Check it out while it's hot!

🔗Harmony

catcraft reports

Hello everyone! Reset the counter, because another matrix client has been released!

Harmony is different from most other clients in that it supports loading user-provided plugins at runtime. In fact, the entire client is built on top of this plugin system. This means that everyone can develop features for it, without needing to maintain a fork and go through the pull request process. It also allows for a more modular approach to how you use your client (you can turn off support for most features).

Harmony was designed from the start to be easily extensible, so anyone with some JavaScript knowledge can make plugins! We even have documentation!

Even if you don't plan on developing plugins, Harmony currently supports most features required for daily use, such as

  • End-to-end encryption and device verification
  • Spaces (+ nested subspaces)
  • Attachments
  • Custom emoji
  • Reactions
  • Rich replies
  • Link previews
  • and more!

You can find more information and pre-built releases on Codeberg here. You can also join our matrix rooms using the links below:

Happy hacking!

🔗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 we made the RC for version 26.07.4, which is available on TestFlight and will land on the App Store on Monday. This release consists of minor changes: calls are always displayed in dark mode and we’ve fixed an issue that could occur when opening rooms whilst your device was offline along with a crash in the Sentry crate that’s bundled within the SDK.

The work on User Status continued this week and is progressing well. We hope to test the new Sliding Sync extension against a live server next week.

Separately we’ve been iterating on our test suite to fix some long-standing issues with flakiness and in the process have added a test parameter that simulates running on a heavily overloaded CI runner (by spawning 20× yes > /dev/null, if you're interested 😄).

🔗Element X Android (website)

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

Benoit announces

Hey all! 👋 A quick look at what landed in Element X Android this last week.

  • Content scanner integration — initial support for server-side content/antivirus scanning of media in Element Pro, so attachments can be checked before you view them.
  • Media & gallery polish — your in-progress caption is now kept when you attach media, and replies to galleries show a handy item-count placeholder in the reply box.
  • Onboarding refresh — the onboarding screens were reworked to match the latest Figma designs.

Jorge says

Hi everyone, this week is a quiet one, since we've been working mainly on:

  • Improving accessibility in the app.
  • Bug fixing, including the issue with access to homeservers in local networks in Android 17 and some live location ones.
  • UX tweaks in the app and Element Call.
  • Starting to build a new user status feature.
  • Building some Element Pro features for parity with the classic Element Android app.

A new v26.07.1 release candidate should be available soon for beta users too with most of these changes.

That's all for now, enjoy the summer, avoid the heat and stay hydrated!

🔗Matrix Federation Stats 📊

Aine [etke.cc] announces

TWIM

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

As of today, 19723 Matrix federateable servers have been discovered by matrixrooms.info, 4155 (21.1%) of them are publishing their rooms directory over federation. The published directories contain 20416 rooms.

The most popular server software among the online servers is:

  • synapse: 15508 (78.6%)
  • continuwuity: 1633 (8.3%)
  • conduit: 567 (2.9%)
  • dendrite: 323 (1.6%)

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.

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

RankHostnameMedian MS
1vrkknn.net184
2continuwuity.org185
3sp5mi.eu230
4starseeker.nexus237
5raccoon.cafe264
6zirco.dev269
7nerdhouse.io273
8piros.pitty.hu317
9waywardinn.com335
10awesomesheep48.ca336

🔗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.

🔲 ☆

This Week in Matrix 2026-07-10

🔗Matrix Live S13E01 - Image Packs

Today's Matrix Live: https://youtube.com/watch?v=JWfFhhRFhs8

🔗Dept of Spec 📜

Andrew Morgan (anoa) {he/him} reports

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:

Accepted MSCs:

Closed MSCs:

  • No MSCs were closed/rejected this week.

🔗Spec Updates

Matrix v1.19 released this week! Check out the release blog post for the full details. Exciting improvements include allowing clients to look up and display rooms you have in common with another user, custom emoji and sticker packs and proper history sharing when joining encrypted rooms.

Otherwise the spec process is red hot with many new MSCs opened this week. Remember that anyone can contribute a review to an MSC, so why not take a look at the list of open proposals and weigh in on any that strike your fancy?

🔗Dept of Events and Talks 🗣️

HarHarLinks announces

🔗Stammtische (website)

A Stammtisch ("regular's table") is a German meetup format where those with a shared interest meet regularly for discussion, exchange, and socialising. Find more community organised events at https://matrix-community.events!

🔗Dept of Working Groups 💪

🔗Website & Content Working Group (website)

The Website and Content Working Group is responsible for the editorial and technical oversight of the main Matrix websites and social media channels.

MTRNord (they/them) reports

The Website & Content WG has some new and hopefully exciting updates for the website to share!

  • Andy Piper joined the Working Group in his position as the new Thib and has started to take over the TWIM duties as part of this.
  • There has been a major overhaul of the try-matrix page in April
  • We added a new TWIM and Blog post section to the frontpage
  • The ecosystem pages have got an overhaul which should make them more consistent and fixes various longstanding issues with the layout of the cards
  • The client feature list has got an overhaul which now splits stable and experimental features, adds descriptions to them, added support for unknown and partial support of a feature and also adds new features to the list. If you are a client developer, it might be a good time to check if your client entry can be updated to reflect these new features. This project is a bigger ongoing project still. If you are interesting in learning more about whats yet to come have a look at the epic.
  • We also decided to drop the "latest_release" field on the clients since currently it was very difficult to keep it updated, which caused more issues than it actually ended up solving.
  • The Getting Started docs have been extended to also explain the MXID
  • Various clients and servers have been added and updated
  • We did various updates to dependencies and general documentation maintenance within the repository
  • Published a poster for anyone to print if they would like to advertise matrix

Additionally, there is movement again on the issue regarding auto refreshing client data. It would be appreciated if Client developers and server developers could have a read and share their opinion on the proposal made as it not only affects us but also you as the community.

🔗Dept of P2P 👥

Matthew announces

P2P Matrix is back. It's early days and we haven't had a chance to do a proper blog post yet, but we debuted it at DWebCamp yesterday and https://arewep2pyet.com got a quick update. The current approach is Element X Android talking to a new tiny embedded server called Neutrino, which in turn talks mesh Matrix via CoAP over Iroh over Bluetooth Low Energy. It's explicitly not yet secure and ready for use on untrusted networks, but it's fun for demos (highly experimental armv8 apk here) and gives an idea of where the new work is headed! Huge thanks to the Dutch Government for funding Element to resume work on P2P Matrix again \o/

🔗Dept of Servers 🏢

🔗Tuwunel (website)

Enterprise successor to conduwuit, the high-performance and feature-rich fork of Conduit.

june ✿ 🏳️‍⚧️ (it/she/puppy) announces

Tuwunel 1.8.1 teaches the homeserver to speak the Synapse admin API. Point existing admin tooling at a Tuwunel server and the user, room, media, device, and token endpoints answer, plus room deletion, purge, and background-task tracking. iwalkalone69 asked for this, and the user endpoints now include listing a user's joined rooms, raised by ngophuocloi-miracle-aavn.

Threads got a real workout. The threads list (MSC3856) now orders by latest activity, honors an include=participated filter, serves per-requester views that respect ignored users, and carries each thread's newest edit on its latest_event. Threading itself is stable now, advertised in /versions with related-by filters and nested relations refused at send.

Spaces got two fixes people will feel. sdenike reported that spaces silently vanished from sliding sync where Synapse showed them (MSC4186), and Lazalatin noticed space-visible rooms missing from the overview for new members. Both are back. balintbarna caught OIDC and LDAP registration breaking when configured together, syobocat got Tuwunel building on FreeBSD again, and Wanja-L flagged the missing MatrixRTC Docker docs.

basnijholt landed a configurable default power level for new rooms and taught OAuth to fall back to Apple id_token claims when userinfo fails. dasha-uwu enforced user suspension at the API boundary and closed an unauthenticated TURN path. Tuwunel can now act as its own identity provider through native OIDC registration and login, requested by temp1403-oss. June made the startup database migrations faster and kept long ones from tripping systemd's start timeout, and shipped a signed SECURITY.md. Federation delivery is steadier too, with EDUs that persist until acknowledged.

Full release notes: https://github.com/matrix-construct/tuwunel/blob/af3b4ad4c/RELEASE.md


💕 GitHub ✦ Releases ✦ DockerHub ✦ Playbook ✦ Containers ✦ Documentation 🐕️ Tuwunel 💕


🔗Dept of Clients 📱

🔗Tesseract (website)

Marco says

First things first: CALLS! This was the very first question asked in Tesseract's room so I couldn't resist. It's not enabled by default yet (it needs a lot of testing), so the installers don't have it. But if you build from source, you can try it if you run cmake with -DTESSERACT_ENABLE_CALLS=ON. So, anyone with a running MatrixRTC/LiveKit setup is welcome to help with the testing :)

These are fully native calls, tested in all three platforms, against Element Web and Element X. But there is only so much testing one can do talking to oneself. Screen sharing is also there, but that was a whole different beast, so YMMV.

The video capture code allowed adding a nice /selfie command (which does not require a build flag)

Besides that, other highlights are:

  • Initial version of room settings.
  • Lots of performance fixes and optimizations
  • Detect bridged rooms (shown in the room info panel) via MSC2346
  • Show room join/leave events
  • Space root summaries.
  • Properly linkify media captions.

🔗Element X Android (website)

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

Benoit announces

v26.07.0 is out this week!

Highlights:

  • Mark all as read: a new button lets you instantly mark all messages in a room as read, contributed by a new community contributor (@hghgrtut — welcome! 🎉)
  • RTL text support: the app now detects right-to-left text in messages and adjusts rendering accordingly, improving the experience for Arabic, Hebrew, and other RTL languages
  • Notification privacy: message content is now hidden in notifications when the app is locked by a PIN code
  • Accessibility improvements: several fixes landed for TalkBack users, covering the chat search field, message composer, and video/image previews

In development, we're working on media gallery Event to send several attachments at once and for viewing them, and a "scroll to unread messages" feature.

🔗Dept of Interesting Projects 🛰️

🔗matrix-jukebox (website)

bgt lover reports

Matrix-jukebox is a matrix RTC compatible application which playes music inside calls, for example as started by element call

This is a long time coming, so a relatively large feature was packed in this one

🔗A web interface

For a long time, the jukebox bot wasn't a jukebox in fact, because all it did is play noise in a call. With the recent commit, this is no longer the case. Now, we have a web interface which allows people to upload songs to the jukebox, which will then be played in the matrix RTC call instead of just noise.

warning: because as of now there's no authentication, anyone with access to the webpage can upload songs, so treat this as a proof of concept while I try to not reinvent authentication and yet another user account system.

🔗How it works

You go to the address specified in your configuration file with your web browser of choice, for example http://localhost:5555, then type a name and select an audio file, then click upload to queue. A progress bar will indicate the upload progress, so if it gets stuck for example, you know. Once you uploaded a track, you will be given the opportunity to upload another.

You can add more than one song in the queue, and the bot will automatically play the next track after the previous one finishes. Also, the bot will periodically announce in the room which track is playing as the transition happens.

🔗Commands

To make proper jukebox functionality possible, the following commands were added:

  • play: will start playing the current track, or resume it after it was paused. The bot will reply with the result upon completing the command, and if there's nothing in the queue to play, it will say so
  • stop: pauses playback, use play to resume. Likewise, the bot will announce when playback stopped
  • skip: if there are more tracks in the queue, the bot picks the next track, announcing its name as a reply to the command issuer
  • quit: if the bot is joined to a matrix RTC session, this command leaves the call

warning: the exact format of the commands depends on the prefix variable in the bot section, so check your configuration files. In the example config file, it's set to !

🔗New config section

This update comes with some updates to the configuration file, check the example file for details. The section that was added is called web, which will host more web configuration in the future. For now, it only contains a variable called bind, which is a string made of the address and port the bot should listen on, example value is 0.0.0.0:5555

🔗Testing

Unfortunately, there's no tag yet, because this is very alpha software. Therefore, clone the repository at the latest commit, that way you will get the most recent changes. After you compiled the project and made sure it runs, you should see an error about the lack of a config file. Copy the example file from docs/config.example.yaml into config.yaml, make the necessary changes, then run it.

For more information about matrix-jukebox, the repository is at

https://codeberg.org/esoteric_programmer/matrix-jukebox

Happy hacking!

🔗Matrix in the News 📰

networkException says

Connected Places wrote an interesting article about Matrix, rooms and the social web (as part of a series about Matrix): https://connectedplaces.online/decrypting-matrix-where-rooms-go/

🔗Matrix Federation Stats 📊

Aine [etke.cc] says

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

As of today, 19634 Matrix federateable servers have been discovered by matrixrooms.info, 4178 (21.3%) of them are publishing their rooms directory over federation. The published directories contain 20301 rooms.

The most popular server software among the online servers is:

  • synapse: 15465 (78.8%)
  • continuwuity: 1610 (8.2%)
  • conduit: 575 (2.9%)
  • dendrite: 320 (1.6%)

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.

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

RankHostnameMedian MS
1continuwuity.org159
2prisma.moe220
3nerdhouse.io230.5
4vrkknn.net241
5raccoon.cafe269
6zirco.dev279
7ellis.link293
831a05b.net303
9cisnt.uk306
10nhjkl.com316

🔗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.

🔲 ☆

Call for Proposals for the Matrix Conference

The Matrix.org Foundation is happy to launch the first Matrix Conference, this September 19th to 22nd in Berlin, Germany, at Mitosis Labs!

Building on the success of the Matrix Community Summit, the Foundation is joining forces with the Summit team to open the conference to wider audiences. This is the event that policy makers, public and private sector leaders, open source enthusiasts, and technologists attend to share knowledge and learn what’s next in the decentralised and secure communications sector.

This is THE gathering place for hackers, project managers, digital sovereignty leaders and innovators. With several tracks covering everything from sovereignty & collaboration in the public sector to digital rights and advocacy, all profiles will find content for their interest. Outside of the tracks there will be plenty of time and space to get to know others from the ecosystem and exchange ideas.

The conference will happen from September 19th to 22nd at Mitosis Labs, in Berlin.

  • Thursday 19 will be a BarCamp: an informal workshop-like day where attendees can join, pitch a topic they want to discuss, and vote for topics they have an interest in. This event, taken from and organised by the Community Summit team, is the ideal place to warm up for the conference and meet others in the ecosystem.
  • Friday 20 and Saturday 21 will be the two core conference days. With several tracks on a variety of topics like Matrix in the public sector, Trust & Safety, interoperability, data sovereignty, performance, and new use cases… Everyone will find a talk they want to attend.
  • Sunday 22 will be dedicated to sprints. Those are sessions where the various attendees can gather to start working together on ideas that emerged during the conference in a more relaxed atmosphere.

We are doing our best to make the event as inclusive as possible. The ticket price is kept as low as possible, and we will rely on an honour system to allow people who can’t afford it to get a free ticket. Regular tickets will start at €50, a €100 premium ticket will get you limited edition merch, and we plan €350 business tickets for organisations willing to support us.

Further, we are taking care to make sure the event venue is accessible, dietary requirements are satisfied, and to implement a robust Health & Safety policy alongside our Code of Conduct.

We will post more about booths, and sponsorship packages both on our blog and on socials soon. We need a little time to put the final touches on the conference website and sponsor brochure!

In the meantime, you can submit your talk, workshop and sprint proposals on cfp.matrix.org. We’re interested in short (20min + 10min Q&A) or long (45min + 10min Q&A) talks on all the topics related to Matrix. Please submit your proposals before Wednesday 26 June 2024 09:59 AM AOE, 23:59 CEST (Berlin time).

🔲 ⭐

This Week in Matrix 2024-06-07

Matrix Live S09E30 — The Account Migrator

The Foundation is hard at work to let you move your Matrix account around. Tadzik walks us through a pragmatic solution to several problems we have.

Today's Matrix Live: https://youtube.com/watch?v=fuOfN4q5mmE

Foundation

Policy and Regulations blog series

Denise [away] says

we're starting a policy and regulation blog series over on the Foundation's blog. Over the next few months I'll be covering various pieces of legislation that are already in place, as well as incoming regulation, and what it all means for Matrix.

https://matrix.org/blog/2024/06/regulatory-update/

Dept of elections 🗳️

Josh Simmons (he/they) says

The votes have been counted! Introducing the first elected Governing Board of the Matrix.org Foundation 🎉

Thanks to everyone who ran and everyone who voted, and congratulations to those who have been elected!

This is a huge milestone for Matrix, and now we can tackle the challenges we face with greater community involvement: https://matrix.org/blog/2024/06/election-results/

Dept of Clients 📱

Kazv (website)

nannanko announces

kazv v0.3.0 has been released.

Added

Fixed

Internal changes

FluffyChat (website)

Krille-chan reports

🥳 FluffyChat v1.21.0 has been released 🥳

The new FluffyChat has several performance improvements, including a fix which should speed up the whole app if you have a lot of megolm sessions.

Also FluffyChat v1.21.0 includes a new search and gallery feature for chats. You can now search for specific messages or browse the shared photos in a conversation.

Also please note that the default network request timeout has been changed. Before FluffyChat ran into a timeout if the server needed more than 30 seconds to send the initial sync. This was probably too optimistic so the timeout has now been set to 30 minutes. This should allow much more users with very large accounts to log in. Feel free to share your feedback.

All Changes

  • feat: Enable download images on iOS, not only share images (krille-chan)
  • feat: Search feature (krille-chan)
  • build: Update record package (krille-chan)
  • build: Use correct pubspec.yaml format for hosted dependency (krille-chan)
  • build: Use matrix sdk main branch (krille-chan)
  • chore: Change default timeout to 30 min (krille-chan)
  • chore: Go back to pub.dev matrix sdk (Krille)
  • chore: Hotfix create missing objectbox (Krille)
  • chore: Increase default network request timeout (Krille)
  • chore: Make bottomnavbar labels always visible (krille-chan)
  • chore: Nicer message animation (krille-chan)
  • chore: Only load last event sender if necessary (Krille)
  • chore: Set a maxsize for textfields (Krille)
  • chore: upgrade flutter to 3.22.0 (lauren n. liberda)
  • chore: upgrade flutter to 3.22.1 (lauren n. liberda)
  • ci: run flutter gen-l10n on code_tests (lauren n. liberda)
  • design: Improve design of Voice Messages and add 1.25 as speed (Krille)
  • fastlane: i18n ru (Yurt Page)
  • fastlane: improve full_description.txt (Yurt Page)
  • fix: Broken localization with empty strings in it (krille-chan)
  • fix: FakeMatrixApi check (krille-chan)
  • fix: mxc reactions not rendered correctly (krille-chan)
  • fix: Stickers from gboard have black background (Krille)
  • fix: voip code breaking from 0.28 (td)
  • refactor: Delete database file on failed app start (krille-chan)
  • refactor: Display better command hints (Krille)
  • refactor: Improve performance of chat list (krille-chan)
  • refactor: Precache theme and directchatmatrixid to improve performance in chat list item (krille-chan)
  • refactor: Update to Matrix Dart SDK 0.29.9 (Krille)
  • Translated using Weblate (Croatian) (Milo Ivir)
  • Translated using Weblate (Czech) (Jozef Mlich)
  • Translated using Weblate (Georgian) (Nicholas Winterhalter)
  • Translated using Weblate (German) (Gian Klug)
  • Translated using Weblate (Korean) (kdh8219)
  • Translated using Weblate (Latvian) (Edgars Andersons)
  • Translated using Weblate (Norwegian Bokmål) (sunniva)
  • Translated using Weblate (Turkish) (Oğuz Ersen)

Element X iOS (website)

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

Mauro Romito announces

  • QR Code login works is completed we are just waiting for matrix server to fully support native OIDC login, before rolling out the feature
  • Message queue work is also almost completed, now messages will be automatically queued for resending when internet connection comes back, without the need of taking any manual action
  • We are also working on storing and restoring composer drafts for each room, so no need to worry about losing anything that has not been sent yet if you browse another room or close your app
  • Great news also for element call integration, we are implementing native call notifications (with ringing), and a call log for DMs. Also starting a call will also be displayed as an event in the timeline.

Element X Android (website)

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

ganfra reports

  • Release 0.4.14 is available here https://github.com/element-hq/element-x-android/releases/tag/v0.4.14. Will be on the store soon.
  • We have added a quick implementation of sharing, so you can now send text and media from other applications.
  • QR Code login works is completed we are just waiting for matrix server to fully support native OIDC login, before rolling out the feature
  • Message queue work has been started, messages will be automatically queued for resending when internet connection comes back, without the need of taking any manual action.
  • Great news also for element call integration, we are implementing native call notifications (with ringing). Also starting a call will also be displayed as an event in the timeline.

Dept of Encryption 🔐

Complement Crypto (website)

Kegan reports

Way back in December I TWIM'd I was working on a new project called complement-crypto which aims to write an extenstive, exhaustive set of end-to-end E2EE tests for Matrix clients. The aim of this work is to ensure encryption in Matrix Rust SDK in particular is robust to all kinds of failure modes: from connectivity blips over federation, server restarts and corrupted data, to actively malicious homeservers. Work has progressed significantly in the intervening 6 months:

  • The test suite runs in both Rust SDK and JS SDK CI pipelines to detect regressions. This required a lot of work enabling conditional compilation (so you don't need to run JS code in rust SDK) and improving test reliability to a sufficient standard that it can be relied upon.
  • It now has full federation support, spinning up sliding sync proxies for both homeservers if needed.
  • It has a comprehensive RPC client process to test ungraceful shutdowns (e.g what happens if your client gets SIGKILL'd?)
  • When things do go wrong, you have powerful debugging tools thanks to using mitmproxy for all communications, in addition to client log files and container logs. The use of mitmproxy is not only useful for debugging, but is also used as a test synchronisation primitive to reduce flakiness (e.g do X when you see the HTTP response to Y), as an assertion tool (e.g ensure the client has uploaded one-time keys by looking for the request), and as an adversarial tool (e.g modify the response returned to the client).

The overall architecture looks like:

     Host        |       dockerd           
                 |                          +-----------+      
                 |                     .--> | ss proxy1 | <------.
 +----------+    |    +-----------+    |    +-----+-----+        V
 | Go tests | <--|--> | mitmproxy | <--+--> | hs1 |          +----------+
 +----------+    |    +-----------+    |    +-----+          | postgres |
                 |                     +--> | hs2 |          +----------+
                 |                     |    +-----+-----+        ^
                 |                     `--> | ss proxy2 | <------`
                 |                          +-----------+      
Debugging a test run in `mitmweb`

Debugging a test run in mitmweb

In terms of the impact this project has had:

There's still more work to be done, including:

  • finishing off the test hitlist,
  • supporting device verification tests,
  • adding adversarial tests (e.g malicious homeserver tests),
  • adding targets beyond rust/JS SDK (matrix-bot-sdk, mautrix, and others). A perfect client can still receive UTDs if the sending client didn't encrypt correctly, and the sender may be on a different codebase.

This has been just one part of our work reducing UTD errors. Another significant part has been aggressively analysing bug reports in the wild to identify common failure modes. To that end, please report any 'unable to decrypt' messages you see and include log files with your report. Please also try to get the sender to submit a bug report. I may reach out to you if I need additional information. These bug reports not only guide our priorities, but have also helped us identify obscure failure modes which we cannot reproduce via complement-crypto.

Dept of SDKs and Frameworks 🧰

Rory&::LibMatrix (.NET 8 matrix bot/client library/SDK)

Emma [it/its] announces

Some minor changes, this week's update will be mostly project/management updates!

Call for help! (Update)

It's been decided to split the event rewrite up into multiple phases/parts. The original vision of the changes turned out to be far too optimistic, and we've run into some language-related challenges trying to implement them. We'll still try to implement those changes, but this might depend on compile-time source generation or similar endeavours.

If this sounds like a fun challenge to you, or want to discuss and shape the semantics of these changes, feel free to join in!

Changes (Projects & Policies)

Some policy changes, and some new projects have been started within the LibMatrix source tree:

  • New workflow: Use of feature branches

Keeping up to date with LibMatrix is hard, because the chance of updating to a partially finished commit is too high. To address this, we're moving to a "main branch is stable" model, with partial implementations on deciated branches so developers can keep up and prepare for those changes.

  • New subproject: Writing of full documentation

We want to improve the developer experience by offering documentation of features right in your editor, without having to reference the backing source. This should enable users who are less familiar with Matrix' internal structures to still be able to implement their deepest wishes.

  • New subproject: Workspace and structural cleanup

The LibMatrix source tree became a mess as the project grew. We want to restructure it to be maintainable, and also far more friendly to those who might want to contribute. If this sounds like something you'd like to help with or would love to offer feedback on, please do feel free to reach out at #libmatrix:rory.gay!

  • Splitting up of subproject: Event handling rewrite

Due to the large amount of complexity and work, we've decided to first start rewriting the inner implementations of events. This should massively improve the end user experience, as custom event content is no longer lost if edited, as well as no longer having to worry about desyncs between actual event content and what you might see in an editor! Next to this, you will likely see performance improvements when dealing with accessing the contents of events! Longer-term changes still include static typing of event collections, especially around single content type collections such as fetching a room's member list, which should also see a large performance uplift when fetching!

Changes (Main release)

  • All dependencies have been updated. End users should not notice any differences as this is a maintenance task, but this does potentially enable some new usecases and squashes some bugs and security risks originating from outdated dependencies.

And, as always:

  • The code is available at cgit.rory.gay!
    • All contributions are more than welcome, be it documentation, code, anything! Perhaps, example usecases, bots, ...?
  • Discussion, suggestions and ideas are welcome in #libmatrix:rory.gay (Space: #mru-space:rory.gay)
  • Got a cool project that you're working on and want to share, using LibMatrix? Be sure to let us know, we'd love to hear all about it!

Libkazv (website)

nannanko announces

libkazv v0.5.0 has been released.

Added

Internal changes

Dept of Built on Matrix 🏗️

Acter

ben announces

It's been a while since our last blog post of updates in Acter and, oh boy, a lot has happened. Just to scratch the surface here, we have:

  • Totally redesigned the Invite flows, including easier "all from spaces" and using super invites to allow external invitations
  • Upgraded the registration wizard to include a default registration token and recommendation to link an email address for better recovery options
  • A new flow for observing and managing the join rules of spaces and chats
  • we took a fresh look at the chat and cleaned up the design, including some nice new messages at the start of the chat
  • you can not only bookmark chats, but also spaces now, to keep things more organized
  • we added a few more labs: chat read markers & end-to-end-encryption-backup
  • and we are seeing the finishing line for the task lists features to leave the labs section

More details and video screens on today's blog post.

We have also expanded our team, in particular on the community growth side, and are about to open another position for a product designer ... if that's you or someone you know, stay tuned!

Matrix in the News 📰

Comments on Canonical JSON in Matrix

Matthew reports

Neilalexander has written an interesting analysis of Canonical JSON and how to improve it at https://neilalexander.dev/2024/06/05/canonical-json

Matrix Federation Stats

Slavi says

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

As of today, 9397 Matrix federateable servers have been discovered by matrixrooms.info, 2860 (30.4%) of them are publishing their rooms directory over federation. The published directories contain 160776 rooms.

Stats timeline is available on MatrixRooms.info/stats

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
1doctoruwu.uk207.5
24d2.org208
3awawawawawawawawawawawawawawawawawawawawawawawawawawawawawawaw.gay215
4girlboss.ceo222.5
5uwu.sulian.eu258.5
6nerdhouse.io271
7aguiarvieira.pt289
8maunium.net307.5
9matrix.jayryn.de343
10productionservers.net354

#ping-no-synapse:maunium.net

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

RankHostnameMedian MS
1conduwuit.daedric.net78
2doctoruwu.uk88
3matrix.jayryn.de91
4girlboss.ceo111
5awawawawawawawawawawawawawawawawawawawawawawawawawawawawawawaw.gay119
6nerdhouse.io140
7craftingcomrades.net170
8matrix.its-tps.fr190.5
9aguiarvieira.pt218
10spritsail.io219

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.

🔲 ⭐

Policy and regulation update 2024: Matrix and the GDPR

If you have been following the matrix.org blog for some time, you will know that we’ve never been ones to shy away from complex topics like public policy and its impacts on Matrix. With this blog post series, our aim is to introduce a more regular cadence to our regulatory updates and to be more transparent about where we are focusing our efforts in this area.

Each blog post in the series will focus on a given theme or piece of law, as well as its relevant jurisdiction. We will start this series by taking a deep dive into EU regulation, starting with the General Data Protection Regulation (GDPR). Future blog posts in the series will cover the digital services package (DMA and DSA), the incoming CRA and the highly controversial CSAM regulation. These will be followed by a series dedicated to the UK, particularly UK applications of European law such as the GDPR and ePrivacy directive, as well as the Online Safety Act and the IPA amendment bill. Finally, we will conclude the series by looking across the pond and diving into the Cloud Act, as well as KOSA and other existing proposals.

The big one

Over the last decade the most impactful - in terms of grassroots led change, not necessarily enforcement - piece of legislation was probably the GDPR. Although its initial enforcement date (May 2018) was a couple of years before I joined Element and the Matrix.org Foundation, I know that preparing for GDPR was a huge effort that led to a lot of deep thinking about the ins and outs of Matrix.

These have been certainly years of learning, iterating and evolving our approach to this fascinating piece of law, and just like 6 years ago, we keep receiving questions and feedback about how the GDPR applies to the Matrix protocol and how server administrators can remain compliant.

We maintain the view that the GDPR was not built for a decentralised digital world, after all we are (for now!) the exception, not the rule. This does not mean, however, that we don’t make every effort possible to comply with the spirit and the letter of the law. Most organisations using the Matrix protocol will be running strictly closed federations or single servers in closed federation, which they fully control (or appoint others to support them with that control). Compliance is a lot more straightforward in this sense, so for now we will focus on those using Matrix to interact with open federation.

The most difficult part of GDPR compliance for Matrix has always been article 17, right to erasure, or ‘right to be forgotten’ as it is usually known. Our view has always been that this is a relative right, which needs to take into account available technology and other applicable laws in order to be enacted. For example, if an employee leaves a company and asks for all of their data to be erased, in practice not all of that data will actually be erased, due to constraints put in place by other legal instruments (i.e. tax and fraud prevention regulations, employment law, etc.).

Considering this relativity, we looked at what other ubiquitous product offerings already exist in the decentralised space, and how they address erasure. Using email as an analogy was a no-brainer in this regard: one understands that deleting an email account will delete everything from their inbox and sent folders, whilst also understanding that is impossible and not expectable to have the same data deleted from the recipients’ inbox (or the inboxes of those that might have had the same message forwarded to them).

Use of technology is always associated with constant give and take and risk based decisions. Whilst we make every effort to minimise risks for the people using the Matrix protocol, the reality is that one of the main purposes of the protocol is integrity of communications and decentralisation of communications data. This is directly at odds with absolute deletion of communications.

So how do we come to terms with this conflict? Following the email analogy, we address right to erasure from two different standpoints: account data and communications data. As part of the protocol, everyone is able to automatically delete their accounts and select an option to delete all of their data. First, this deletes all ‘external’ data associated with the account, such as e-mail addresses, phone numbers, IP addresses and device identifiers - effectively pseudonymising this data, aside from Matrix IDs which we will address later on. This measure follows recital 28 of the GDPR, which mentions pseudonymisation as a risk reducing measure for data subjects, which helps controllers and processors meet their data protection obligations.

Now, the thornier issue of communications data. How can we apply erasure whilst maintaining the integrity of the service for remaining users? Keeping on with the email analogy, if someone deletes their sent email from their own account, you would still expect an existing thread with multiple users to work and be visible. You just would not expect the same message to leave the original account to new individuals.

That is precisely how the issue is addressed in Matrix - upon deletion of an account, and request for deletion of messages, a flag is applied to the original messages which prevents it from ever being displayed to any new people. This, of course, requires cooperation from the other server administrators who might also have copies of the same message in their server instance. We make this decision by referring to recital 66 of the GDPR, which requires controllers take reasonable steps, taking into account available technology, to inform other controllers of the data subject’s request to have their data erased.

One issue still remains unresolved - Matrix IDs (MXIDs) are always associated with state events (data sent by a user to modify the attributes of a given room - eg its name, its members, its avatar), which means those IDs could still leak over federation. That is a particular concern when one uses their legal name as their MXID. The solution for this is to replace the MXID with a pseudonym, maintaining the integrity of communications and fully removing any last remains of identifiable information in the system.

The Synapse team has also made a lot of progress on message retention policies and media retention, both huge strides to continuously improve the privacy of Matrix users, whilst also helping server administrators comply with their legal obligations.

Things have definitely progressed in the portability space, and chat export is now implemented in multiple Matrix clients, having been first implemented on Element Web in October 2021, in version 1.9.2. We look forward to seeing what the next year brings us in terms of privacy improvements.

For the next post in this series we will continue discussing the EU policy landscape, although from a different perspective. We will be going through the digital services package (which includes the DSA and DMA) and what does it all mean for Matrix now that we have reached implementation stage.

As always, we remain open to your feedback and thoughts. If there is anything you would like to hear more about or have a suggestion for a future blog in this series please feel free to reach out to dpo@matrix.org via email, DM to @gpdr:matrix.org or chat to us in the Office of the Matrix.org Foundation room.

🔲 ☆

Introducing our first elected Governing Board

It is an honor and a pleasure to unveil the election results and introduce the first elected Governing Board for the Matrix.org Foundation!

Congratulations to the winning candidates, we thank you for your willingness to serve the community. We’re also grateful to everyone who threw their hat in the ring, and hope that the candidates who did not get elected consider running again in the future – noting that we have an election of Gold, Silver, Individual, and Associate Members scheduled for next year.

Thanks also to all of the people who cast ballots in the election, and to everyone who asked questions along the way! We learned a lot in this first election process that we look forward to incorporating into the next one.

The level of engagement with the process was a very encouraging sign for the health of the Matrix ecosystem, and we’re proud to have had 100% voter turnout in all but one constituency.

Read on to see who is on the Governing Board, a brief discussion of next steps, and reflections on some of the work that remains to improve representation.

The Governing Board

Representing Individual Members, we have:

  • Andy Balaam (he/him)
  • Greg Sutcliffe (he/him)
  • J.B. Crawford (they/them)
  • Sumner Evans

Representing Ecosystem Members, we have:

  • Bram van den Heuvel (he/they), Elm SDK
  • Kim Brose (he/him), Matrix Community Events
  • Nicolas Werner (he/him), Nheko-Reborn

Representing Associate Members, we have

  • Cleo Menenez Jr. (he/him), GNOME Foundation
  • Tobias Fella (he/him), KDE e.V.

Representing Platinum Members, we have:

  • Neil Johnson (he/him), Element

Representing Gold Members, we have:

  • Brad Murray (he/him), Beeper
  • Kevin Boos (he/him), Futurewei Technologies

Representing Silver Members, we have:

  • Jan Kohnert (he/him), Gematik GmbH
  • Thor Arne Johansen, Verji Tech AS

Representing Guardians, we have:

  • Amandine Le Pape (she/her)
  • Matthew Hodgson (he/him)
  • Ross Schulman

Representing Spec Core Team members, we have:

  • Richard van der Hoff (he/him)
  • Travis Ralston (he/him)

And, lastly, representing Foundation staff in an ex officio capacity, we have:

  • Josh Simmons (he/they)

Next steps

All of the elected representatives will soon receive a welcome email and details about onboarding which will take place over the next two months, with our first official meeting being in August or September. That first meeting will include chartering committees, establishing initial committee assignments, and other agenda items within the Governing Board’s remit.

All Governing Board members will soon be added to a private Matrix room and mailing list. We also hope to hold informal gatherings before that first meeting, so that Governing Board members can get to know each other before we dig into business.

We will continue to use the 2024 elections page as a place to aggregate information about the current Governing Board, and our About page will soon be updated. Before next year’s election we will establish a more general landing page for the Governing Board that is not specific to any one year.

Reflecting on representation

Our mission is to bring secure, private, free and open, unencumbered communication to everyone. In order to succeed in that, we need to bring a representative cross-section of perspectives to bear on our governance and development.

And while we haven’t yet conducted formal surveys of demographics, such that we can be confident about the baseline we’re working from, it’s plain to see that our contributor communities are not yet as representative as we need them to be. This isn’t news to anyone, but the election results make it all the more obvious.

The issue of representation is something we must tackle across the whole of the Matrix ecosystem, and we intend for the Foundation to play a leading role in addressing this internally and externally. We can learn from other successful initiatives, and I myself have been successful in tackling these challenges in partnership with other communities, so I know we can get to where we need to be.

In electing our first Governing Board, we have dramatically expanded the number of perspectives and lived experiences that are directly engaged in the evolution and direction of Matrix. Coming from a place where the majority of decisions were being made by people associated with one company, this is a huge improvement. This is something we should be proud of!

But to be extremely clear: we need to drastically increase the representation of women and people outside of Europe and North America. There may be other lived experiences we are short on, but these two stand out.

I’m eager to dig into this work with everyone here around Matrix. Please stay tuned for a follow up blog post specifically on this subject.

Onwards and upwards 🚀

❌