π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
π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 tokenset 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_secretconfiguration 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 theCache-Controlheader to cache media asprivatewhich 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 assumeddevice_idfrom 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 Junejoin_ruleis now properly defaulted in/publicRoomsresponses; additional compliance tests now pass! The timezone and extended profilem.tzfield was incorrectly labeledtz. 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._tcpSRV 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
mainfunction.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:
- Widget Server, part of the Matrix Widget Toolkit, version 1.2.1
- NeoDateFix Widget, the Matrix-based meeting planner, version 1.7.3
- NeoDateFix Bot, companion for the widget, version 2.8.6
- NeoChoice Widget, the widget for advanced polls in Matrix, version 1.6.1
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)
LinkedChunkfor 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
LinkedChunkdata 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
RoomInfocould 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.memberwithjoin!- #6056 It's the second part for supporting invite rooms with the Latest Event: Adding
LatestEventValue::RemoteInvite. Why does it need a different variant thanLatestEventValue::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 syncto 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 bymatrix-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_adminwas 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
Clientis 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 ondeadpool(the library we use to manage a pool of connections) is waiting for a review (deadpool#461). Meanwhile, we are removing a couple ofunwraps on our side, which will be triggered oncedeadpoolis fixed. The hope is to get zero crash when aClientis 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,
13810Matrix federateable servers have been discovered by matrixrooms.info,3452(25.0%) of them are publishing their rooms directory over federation. The published directories contain16920rooms.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.
| Rank | Hostname | Median MS |
|---|---|---|
| 1 | vibb.me | 229 |
| 2 | usbpc.xyz | 256 |
| 3 | vrkknn.net | 306 |
| 4 | the-lamp.net | 361 |
| 5 | muoi.me | 394 |
| 6 | mustelid.chat | 403 |
| 7 | littlevortex.net | 451 |
| 8 | federated.nexus | 493 |
| 9 | calitabby.net | 563 |
| 10 | jeroenhd.nl | 571 |
π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