πŸ”—Matrix Live S11E21 live from the Matrix Hackathon at FOSDEM 2026

Last week at FOSDEM 2026 we hosted our very first Matrix Hackathon with the community. The results were amazing and presented in this Matrix Live Edition.

You can find out more about Matrix at FOSDEM 2026 in the FOSDEM Wrap Up.

πŸ”—Dept of Public Sector

πŸ”—πŸ‡ΈπŸ‡ͺ Sweden’s Public Sector (eSam) Proposes Open Federation Protocol

Kenneth Edwall announces

We are excited to see a major strategic shift proposed in Sweden! eSam, a collaboration program consisting of 41 Swedish government agencies, has released a new report: "Common Federation Protocol for Chat in the Public Sector" (ES2025-20).

The report explicitly recommends moving away from fragmented, proprietary silos towards a common, open federation protocol.

Key highlights from the report:

Protocol over Product: The working group stresses that the public sector needs to agree on a "common language" (protocol) rather than a single product. This allows agencies to choose different clients or hosting providers while maintaining interoperability.

Digital Sovereignty & Security: The report highlights the risks of depending on global tech giants for business critical communication between authorities and the "lock-in" effects of proprietary communication protocols.

Matrix as the Prime Example: The report references the success of Matrix in other nations. It cites the French government's Tchap, Germany’s BwMessenger and openDesk, and Luxembourg's Luxchat among others as proof that open federation works at scale.

The Recommendation: The working group proposes that eSam formally decides to establish a joint collaboration to start implement an open federation protocol.

The report concludes that sticking to open standards is a strategic investment in "digital autonomy" and allows Sweden to avoid the fragmentation seen in the post-Skype for Business era.

It’s fantastic to see Sweden taking steps to join the growing federated public sector network in Europe! You can read the full report via eSam.

Official homepage https://www.esamverka.se/aktuellt/nyheter/nyheter/2026-01-30-ny-rapport---gemensamt-federationsprotokoll-for-chatt-i-offentlig-sektor.html

Report https://www.esamverka.se/download/18.2eb33fa919b2c04ecba7dcb/1769777961813/ES2025-20%20Common%20Federation%20Protocol%20for%20Chat%20in%20the%20Public%20Sector.pdf

Appendices https://www.esamverka.se/download/18.2eb33fa919b2c04ecba7dcd/1769777982072/dSam%20All%20appendices%20A-J%20ES2025-20.pdf

πŸ”—Dept of Spec πŸ“œ

Kegan says

As part of the Hydra work, I've written a paper on how group management CRDTs like Matrix can achieve stronger consistency guarantees to prevent backdating and other forms of state rollbacks. I've also published MSC4242: State DAGs after much talk about it over the past few months, which aligns the federated room synchronisation mechanism more with academic literature on eventually consistent access control. Should this MSC be accepted, this would mark the first major change in the synchronisation mechanism since Matrix was established. These changes only affect federation and do not affect clients, bots or application services. If you're curious (and especially if you are a server developer!) please do take a look at the MSC and provide feedback.

πŸ”—Dept of Servers 🏒

πŸ”—Tuwunel (website)

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

Jason πŸ’• announces

πŸ”—βœ¨οΈ New Features & Enhancements

  • SSO/OIDC support. This feature allows users to register and login via authorizations from OIDC Identity Providers. For example, you can now use your GitHub account to register on the server.
  • MSC2815 has been implemented, allowing configurable redacted event retention and retrieval by room admins. Redacted events can be viewed using Gomuks for up to 60 days.
  • Secure limited-use registration token support was implemented by dasha-uwu building off earlier work by gingershaped. Use this feature with the new !admin token set of commands.
  • An outstanding major rework of the presence system by lhjt coordinates conflicting updates from multiple devices and further builds on push suppression features first introduced by tototomate123.
  • MSC3706 has been implemented, improving the performance and reliability of joining rooms over federation.
  • VlaDexa implemented reading the client_secret configuration for an SSO Identity Provider from a separate file; a recommended secure practice.
  • Special thanks to winyadepla for adding highly sought Matrix RTC (Element Call) documentation for Tuwunel and for having a kind heart to follow up with maintenance.
  • Thank you Xerusion for documenting Traefik for deploying Tuwunel in. This will save a lot of time and headache for many new users!
  • At the request of ChronosXYZ, dasha-uwu implemented a configurable feature to include all local users in search results, rather than limiting to those in public or shared rooms.
  • Thanks to a collaboration by June and VlaDexa working through Nix maintenance we can now upgrade the MSRV to 1.91.1.
  • Thank you scvalex for updating the README indicating Tuwunel is in stable NixOS.
  • Thank you divideableZero for bringing great news about an Alpine Package.
  • Storage hardware characteristics for mdraid devices on Linux are now detected increase performance above defaults.
  • EdDSA is now a supported algorithm for JWT logins.

πŸ”—πŸž Bug Fixes

  • LDAP users are now auto-joined to configured rooms upon creation. Thank you yefimg for contributing, we especially appreciate help from domain-experts on these features.
  • A surgical fix by kuhnchris addressed a pesky bug where LDAP logins would result in admin privileges being removed for the user. Thank you foxing-quietly for reporting.
  • OptimoSupreme fixed issues with unread notification counting, including eliminating one of the last remaining non-async database calls in the codebase.

June fixed linker issues for platforms without static builds of io_uring. June fixed compatibility for our optimized jemalloc build on macOS. dasha-uwu made Livekit operate properly even when federation is disabled. Thank you VlaDexa for updating the Cache-Control header to cache media as private which is more appropriate now in the Authenticated Media era. Appservices now receive events properly matching on the sender MXID's localpart thanks to dasha-uwu. Additional PDU format and compliance checks were added by dasha-uwu. Codepaths in sync systems which assumed device_id from appservices were fixed by dasha-uwu. Auto-joining version 12 rooms was inhibited from a bug fixed by dasha-uwu. Thank you June for updating our ldap3 dependency with SSL/TLS enhancements and fixing errors reported by fruzitent. Thanks to June join_rule is now properly defaulted in /publicRooms responses; additional compliance tests now pass! The timezone and extended profile m.tz field was incorrectly labeled tz. dasha-uwu fixed git tags not being pulled and applied to CI builds. dasha-uwu fixed a bug in sliding-sync which may result in lost invites. Media deletion commands which are time-based suffered a bug from incorrect creation timestamps on some filesystems. Queries for the deprecated _matrix._tcp SRV record have been reactivated due to an ineffective and unenforced sunset by the specification and other implementations.

πŸ”—Honorable Mentions

  • Please take a moment to recognize how lucky we are to have scvalex as our NixOS package maintainer. From having the wherewithal to rise above the noise and lend this project trust from the very first days, time and again this gentleman has gone above and beyond on our behalf. Thank you symphorien at NixOS as well for the patch applied surgically in nixpkgs.

πŸ’• GitHub ✦ Releases ✦ Containers ✦ DockerHub ✦ Tuwunel πŸ’•


πŸ”—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.

GaΓ«l G. says

ESS Community 26.2.0 and ESS Pro 26.2.0 have been released.

  • Set default permissions on Hookshot so that local users only have permissions to manage integrations and connections.
  • Fix Hookshot widgets not being available when using the Synapse ingress.

In addition to this, ESS Pro got...

  • Advanced Access Identity Management: directly support SCIM configuration in the chart.
  • Synapse: Add support for S3 Server Side Encryption.
  • Mark the chart created Admin User as a support user so that it is hidden from the user directory.
  • Updates to the Authentication features supported by the chart.
  • Minor fixes to multi-tenancy deployment mode.

πŸ”—Dept of Clients πŸ“±

πŸ”—Nexus Client

QuadRadical (Ping) says

Hello, it's been a while since the last update about Nexus Client, and a lot has happened! One of the biggest changes has been a rewrite of our entire backend to use the Gomuks RPC interface through FFI, instead of the Matrix Dart SDK. A huge thanks to Tulir for helping out with this!

This has simplified development a lot, and has allowed us to implement new features like restoring crypto from a recovery passphrase or key. Also, a lot of improvements surrounding the viewing and downloading of media will follow soon.

Whilst Nexus isn't yet usable by most users, I think it will be soon enough!

You may have also seen me hacking away on Nexus at the Matrix hackathon in Brussels: https://mastodon.matrix.org/@matrix/115984678549548096

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://git.federated.nexus/henry-hiles/nexus!

πŸ”—Element X iOS (website)

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

Ștefan says

Busy week on Element X iOS with a mix of notification reliability work, Spaces polish and stability fixes.

We've significantly improved push notification behaviour after a device reboot. The Notification Service Extension now detects when the device has just been powered on and can't yet decrypt messages, and instead of crashing it delivers a heads-up notification letting you know there may be unread messages waiting (#5035, #5054). Calls also no longer risk being killed by the system thanks to a fix in PushKit VoIP completion handling (#5026).

On the Spaces front: the filter screen now has a search bar (#5024), the filter button hides itself when you're not part of any spaces (#5052), and we fixed crashes when rapidly tapping space children (#5044).

Other notable changes:

  • Rooms with shared history now display an indicator icon in the header (#5016) β€” part of our push for better history-sharing UX.
  • You can once again redact the other person's messages in DMs, aligning behaviour with our other clients (#5025).
  • Fixed the app getting stuck and unable to open rooms after submitting a bug report (#5038).
  • Server rate-limit responses are now properly retried instead of surfacing as errors (#5022).
  • ListRow icons updated to match iOS 26 design guidelines (#5029).

πŸ”—Element X Android (website)

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

Benoit announces

We're currently adding the latest missing features around spaces: it's now possible to manage rooms of a space, or create new child rooms directly from the space. As usual, we're trying to fix as many issues as possible and are always trying to improve the user experience and the application performance.

On the release side of thing, Element X 26.01.2 is available on the open testing, Element Android Pro 26.01.2 will be available very soon. The release note can be read here: https://github.com/element-hq/element-x-android/releases/tag/v26.01.2.

Last but not least, we are seeing more and more pull requests coming from external contributors, and this is really exciting! As a reminder though, please first open an issue to confirm with the team that your work will not be rejected by the product people, or for missing parity reason with the iOS application (this point may still be discussed, but rather discuss it in an issue than on a big PR, after the hard work has been done).

Many thanks from the Element Android team!

πŸ”—Commet v0.4.0 β˜„οΈ (website)

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

airyz reports

This week we released v0.4.0 of Commet, bringing a bunch of new features, interface improvements and bug fixes.

πŸ”—πŸš€ New Features

  • Partial support for Element Call. You can now participate in unencrypted group calls between Element and Commet!
  • Rich profile customization. Add a custom color scheme, banner, bio and more to your Matrix profile.
  • Calendar rooms. Create a shared calendar to help plan your group's schedule and events. This one is also available as a widget which can be used in Element!
  • User presence. Show users online status on supported servers
  • Photo Album Rooms. Create an album for you and your friends to share the photos of that event you planned over in the calendar room!

There's a whole lot more to cover, so be sure to check out the Release Notes for more info!

Feel free to stop by #commet:matrix.org and let us know what you think of the update!

πŸ”—Tammy (website)

Multiplatform messenger built on top of Trixnity Messenger.

Benedict says

It’s been a while since the last Tammy release, but the wait is over. Tammy 2.0 is out, bringing major upgrades across crypto, authentication, notifications, and platform support.

πŸ”—πŸ” Next-generation crypto

Tammy now uses vodozemac by default.

All existing keys are automatically migrated, so this upgrade is seamless. No manual steps and no user-visible changes, just a more modern and robust crypto foundation.

πŸ”—πŸ”‘ Next-generation authentication

Tammy can now natively log in to modern homeserver deployments, including setups using MAS. This makes Tammy compatible with current and future authentication flows without workarounds.

πŸ”—πŸ”” Next-generation notifications

Notifications have been completely reworked to behave the way users expect:

  • Reading a message on one device clears the notification on your other devices
  • Notifications are updated when events are replaced, or removed when redacted
  • Notification counts in encrypted rooms now behave correctly
  • Still-valid notifications are restored when logging in
  • Rooms are highlighted when unread

On top of that, notification providers are now configurable. On Android, you can choose between Play Services and UnifiedPush. This flexibility finally opens the door to releasing Tammy on F-Droid. If you’d like to help make that happen, please reach out!

πŸ”—πŸ‘©β€πŸ¦―β€βž‘οΈ Accessibility

We have worked hard on accessibility issues. Specifically, the web version now supports screen readers and keyboard navigation. Checkout #tammy-a11y:imbitbu.de and leave some feedback.

πŸ”—πŸŽ iOS on the horizon

We already have a commercially used iOS version of Trixnity Messenger (the foundation of Tammy) for a while. But now, we’ve successfully started Trixnity Messenger on iOS in the most minimal form: just a main function.

This is a key milestone and means that Tammy for iOS is finally within reach.

πŸ”—Dept of Widgets 🧩

πŸ”—Nordeck Widgets Roundup

Kim Brose (n.io) reports

We have released NeoBoard version 2.4.0!

If you follow Nordeck's Matrix projects, for example at The Matrix Conference, you will be familiar with our real-time collaborative whiteboard application NeoBoard, built on Matrix (including experimental Matrix RTC) and available as a widget and recently also bleeding edge standalone app.

Besides the usual improvements and bug fixesℒ️, the highlight of version 2.4.0 is the new "frames" feature to NeoBoard's WIP "infinite canvas" mode. It allows you to group objects both logically and visually, so you can move things together or arrange them like a more flexible version of slides for a presentation. Like Matrix RTC, infinite canvas is currently behind a feature flag, so if you want to try it out, clone the repo, flip the switch, and let us know how it goes at #nordeck:nordeck.io!

We also released the following updates to squash any CVEs that cropped up in the meantime:

Stay tuned for updates and we always welcome feedback from businesses, individuals and the community! The easiest way to find us is visiting our public room at #nordeck:nordeck.io.

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—matrix-ui-serializable

A new way to build Matrix clients on top of the Rust SDK ! πŸ¦€

Alexis says

I'm excited to present you a new kind of wrapper that abstracts a lot of things that a Matrix client needs : matrix-ui-serializable. This project takes some good bits from Robrix (thanks to Kevin Boos and his team !), and exposes two main structs RoomsList and RoomScreen, that contains almost everything you need to display a list of rooms or a room timeline. Those structs are serializable, so they can easily be used by other languages / frameworks such as...

... Tauri ! Thanks to the tauri-plugin-matrix-svelte, that syncs every change to these structs in a Svelte 5 reactive store. No need to handle complex logic on the frontend, just implement a nice View that will be automatically updated.

Last but not least, I built a demo Matrix client that uses this plugin, matrix-svelte-client ! Available on desktop and mobile, it has all basic features a Matrix client could have, plus a few nice additions like (basic) thread support, media messages, audio recording, or push notifications. It is built for showcasing purpose, not for production though. But I'm sure it could be a great starting point for anyone who dreams to build its own Matrix client with Svelte ! I released binaries for every supported platform for you to try, please give a look ! So not one, not two, but three new projects ! Each project is independent, and should easily be forkable, especially matrix-ui-serializable. Every kind of feedback or contribution is welcomed, please join this room if you're interested in this project ! πŸ˜€

πŸ”—Trixnity (website)

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

Benedict says

Say hello to Trixnity 5.0 πŸ‘‹

This major release isn’t about chasing buzzwords. It’s about giving developers more freedom, fewer sharp edges, and a solid foundation that’s ready for where Matrix is heading next.

πŸ”—πŸ” Crypto with choice

One of the biggest themes of this release is crypto modularity. With Trixnity 5.0, cryptography is no longer a fixed choice but a pluggable driver you can swap and evolve over time.

Stick with the deprecated but familiar libolm, or move forward with the modern vodozemac stack. Trixnity supports both, and even lets you upgrade safely between them. This is powered by a new migration system designed to keep your crypto keys as crypto implementations change.

On top of that, dehydrated devices (MSC3814) are now fully supported, alongside the compatibility mode introduced last year for libolm.

πŸ”—πŸ”‘ Authentication that fits modern apps

Matrix authentication has changed a lot over the last year and Trixnity keeps up. This release introduces extensible authentication, including OAuth2 support, making it much easier to integrate Matrix into modern login and identity setups.

Whether you’re building a consumer app, an enterprise client, or something experimental, Trixnity no longer assumes a single authentication flow for everyone.

πŸ”—πŸ”” Notifications that behave like users expect

Notifications are tricky and Trixnity 5.0 gives them a proper rethink. A completely new notification calculation provides a solid, testable foundation for notification handling across platforms.

That means things like:

  • Reading a message on one device clears the notification on your other devices
  • Notifications are updated when replaced or removed when redacted
  • Notification counts in encrypted rooms finally behave correctly
  • Receive still valid notifications when logging in

Not flashy features, but the kind that make an app feel right.

πŸ”—πŸ“ Keeping up with the Matrix spec

Trixnity 5.0 supports Matrix 1.14 through 1.17. One of these releases quietly introduced extensible events (via room topics), and Trixnity is ready: you can now read and create extensible events out of the box.

πŸ”—πŸ§Ή A cleaner, sharper core

This release also brings a lot of under-the-hood polish. There’s a new API for creating a MatrixClient, making entry points clearer and intent more explicit. To make debugging life easier, Lognity is used for logging now. It allows to configure logging unified on all platforms. The small high level implementation trixnity-applicationservice have been retired, allowing the project to focus on what’s actively used and maintained. As usually, a plenty of refactorings and cleanups were done to make the codebase easier to read and nicer to contribute to.

πŸ”—πŸ  Same Trixnity, new address

Trixnity has officially moved to connect2x. Nothing changes about how the project is developed or maintained, and the license remains Apache 2.0.

This move simply reflects reality: connect2x is currently the sole maintainer, and keeping Trixnity separate from our other projects added unnecessary overhead. Now Trixnity lives under de.connect2x. Same project, same goals, just a home that fits better.

πŸ”—matrix-rust-sdk (website)

Your all-in-one toolkit for creating Matrix clients with Rust, from simple bots to full-featured apps, with bindings to Swift, Kotlin, WebAssembly, Go and more, sponsored by Element.

Ivan πŸ¦€ reports

Bonjour tout le mondeΒ ! Let's get rusty.

πŸ”—Event Cache

Preparing the work to persist thread events, and a bug fix!

  • #6065 The SQLite schema has been update to allow storing the same event in multiple (persisted) LinkedChunk for the same room. This is necessary for storing the thread events in the persistent storage of the Event Cache.
  • #6057 We've noticed an off-by-one access, which resulted in a panic, in the LinkedChunk data structure. This is now fixed, but we still don't know what triggers this. We are investigating.

πŸ”—Latest Event

Been busy supporting invite rooms, and a couple of bug fixes.

  • #6068 A race-condition has been found where a RoomInfo could be β€œrolled back” to an older version in the Latest Event flow.
  • #6038 It's the first part for supporting invite rooms with the Latest Event: New state event candidate for LatestEventValue, m.room.member with join!
  • #6056 It's the second part for supporting invite rooms with the Latest Event: Adding LatestEventValue::RemoteInvite. Why does it need a different variant than LatestEventValue::Remote? Because an invite room only receives stripped state-events, while a joined room receives (unstripped) state-event, and this is very different. Anyway, one will see its invite in the Room List at the correct position.

πŸ”—Send Queue

Improving the support of already sent thumbnails!

  • #6052 Save an actual thumbnail in the Media Cache for a media we just uploaded.

πŸ”—Logs

Let's find the needles in the haystack, with better tools.

  • #6080 Introduce cargo xtask log sync to visualise logs about sync, with a table and a duration graph. This is pretty helpful if one needs to debug the app via the logs generated by matrix-sdk-ffi.

πŸ”—Timeline

Improving thread support, and a couple of bug fixes.

  • #6050 Enable focusing a thread root using TimelineFocus::Event.
  • #6048 Add a filter for membership and profile changes.
  • #6031 Expose the user's threaded receipt on each thread summary.

πŸ”—Spaces

Let's go to space, but not without filters…!

  • #6025 New API to filter spaces! This is a mechanism very similar to RoomListService, but tailored for Spaces.
  • #6043 Add a method to reset a SpaceRoomList.
  • #6033 Allow removing unknown child rooms from spaces.
  • #6032 LeaveSpaceRoom::is_last_admin was incorrectly computed.

πŸ”—SQLite

Tracking a panic in the pool manager.

  • #6091 We are trying to fix a panic when the SQLite connection is aborted, usually when the Client is closing. It happens pretty often and could make apps to crash (if multi-accounts is supported), or silently crash when an app is closing. The patch on deadpool (the library we use to manage a pool of connections) is waiting for a review (deadpool#461). Meanwhile, we are removing a couple of unwraps on our side, which will be triggered once deadpool is fixed. The hope is to get zero crash when a Client is dropping normally.

πŸ”—Others

Better resiliency against weird behaviours.

  • #6055 Handle sync state events that fail to deserialize.
  • #6079 Attempt to export the secrets bundle sooner in the QRCode login process.

Thank you for your reading!

πŸ”—Matrix Federation Stats

Aine [etke.cc] reports

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

As of today, 13810 Matrix federateable servers have been discovered by matrixrooms.info, 3452 (25.0%) of them are publishing their rooms directory over federation. The published directories contain 16920 rooms.

The most popular server software among the online servers is:

  • synapse: 11679 (84.6%)
  • conduit: 507 (3.7%)
  • continuwuity: 450 (3.3%)
  • dendrite: 380 (2.8%)

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

🧩 Integrations with apps and servers | πŸ‘‰ 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
1vibb.me229
2usbpc.xyz256
3vrkknn.net306
4the-lamp.net361
5muoi.me394
6mustelid.chat403
7littlevortex.net451
8federated.nexus493
9calitabby.net563
10jeroenhd.nl571

πŸ”—That's all I know

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

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

The Foundation needs you

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

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

Support us