πMatrix Live S13E13 - Amandine & Matthew brace for the conference
πDept of The Matrix Conference ποΈ
Andy announces
As you can see in Matrix Live this week, we are into the final few days before the Conference!
The event is a team effort, and we're very appreciative of the help of our volunteers (40 of you!). We have a couple of slots (and hoodies!) left if you're willing to help out - just take a look at the volunteer schedule. Maybe there is a free shift during a talk you want to see? How about you help film or record it! If you are willing and able to help out, book a slot!
We are also grateful to our sponsors - their contribution plays a critical role in the Foundationβs ability to run the Conference and progress towards sustainability in general. Thank you!
- β Anchor sponsor: Element
- π Champion sponsors: Connect2x, Famedly and Rocket.Chat
- πͺ Sustaining sponsors: DINUM, ERCOM and Nordeck
- π» Welcome party sponsors: Famedly and CGM
- πΉ Video sponsor: Element
- π Community attendance sponsor: Famedly
- π Track sponsors: CGM (Healthcare) and Element (Public sector)
- π» Hackathon sponsors: Futurewei and the University of Aalborg
We're looking forward to seeing many of you in MalmΓΆ and Copenhagen! If you're not able to join us in person, we hope you'll be following along online.
See you soon!
Your Events WG
πDept of Social Good π
Amandine says
πͺπΊ Europe is working towards more Digital Sovereignty, and as such taking open source and digital commons at the forefront of regulation and political discourse.
From Tchap in France π«π· to BundesMessenger and openDesk in Germany π©πͺ, via BEAM in Belgium π§πͺ, LuxChat in Luxembourg π±πΊ, and many more, Matrix underpins government communications across Europe: it makes it an obvious case study of how to scale digital commons. However, despite the popularity of Matrix, only one government agency, France's DINUM, commits to support the open standard they all rely on by being a member.
π‘ That gap is exactly one of those the new Digital Commons EDIC (DC-EDIC) could close and with this truly impact Europeβs implementation of digital commons. Drawing on 12 years of building Matrix, we've set out how the DC-EDIC can make the most of its five goals, taking a leaf out of the World Health Organization's book. Our suggestions include:
- Build a trusted index of open source projects and vendors
- Pool funding across Member States
- Fund the guardians of open standards, not just new code
- Give policymakers real evidence on costs, privacy and security β¦ and more!
Europe doesn't lack open source builders. What it needs is a body that does the unglamorous work that keeps everyone's lights on.
Read our recommendations in this blog post.
π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:
- MSC4564: Agent status in room messages
- MSC4563:
direct_messagepush rule- MSC4560: Stripped state requests over federation
MSCs in Final Comment Period:
- MSC4551: Sliding Sync Extensions: Receipts (merge)
- MSC4548: Sliding Sync Extensions: Account data (merge)
- MSC4543: Sliding Sync Extensions: End-to-end encryption (merge)
- MSC4538: Sliding Sync Extensions: To-Device messages (merge)
- MSC4354: Sticky Events (merge)
- MSC4196: Voice and video calling application for MatrixRTC (merge)
- MSC4195: LiveKit transport for MatrixRTC (merge)
- MSC4143: MatrixRTC β Real-time communication over Matrix (merge)
Accepted MSCs:
- No MSCs were accepted this week.
Closed MSCs:
- MSC4076: Let E2EE clients calculate app badge counts themselves (disable_badge_count)
- Ended up becoming a Sygnal config option.
- [WIP] MSC3898: Native Matrix VoIP signalling for cascaded foci (SFUs, MCUs...)
- Superseded by the MatrixRTC sphere of MSCs (MSC4143)
πSpec Updates
There's been a huge push in the last week to get Matrix 2.0 ready. A total of 187 comments across all Matrix 2.0 MSCs in the last week alone! A massive thanks to the authors and all of the reviewers for their work here.
The result is that 8 more Matrix 2.0 MSCs entered FCP this week! Sticky Events has received the most scrutiny, but both it and the implementation are now in a good place in the SCT's eyes.
- π’ MSC4140: Cancellable delayed events β Merged.
- π’ Clarifications for MSC4140: Cancellable delayed events β Merged.
- π’ MSC4354: Sticky Events β Entered FCP on 15 October, up from 2 / 8 approvals. Earlier implementation/testing, expiry and visibility concerns are cleared. Federation catch-up flicker and stale notifications are an explicitly accepted remaining risk, not a solved problem or outstanding blocker. Latest visible follow-up is an RTC example correction.
- π’ MSC4551: Sliding Sync Extensions: Receipts β Entered FCP on 13 October. Replaces the closed MSC3960.
- π’ MSC4538: Sliding Sync Extensions: To-Device messages β Entered FCP on 13 October.
- π’ MSC4543: Sliding Sync Extensions: End-to-end encryption β Entered FCP on 13 October. The token-acceptance feasibility question has been answered.
- π’ MSC4548: Sliding Sync Extensions: Account data β Entered FCP on 13 October. Discussion about implementation coverage for enabling/re-enabling and whether Synapse actually differs from the proposal remains open.
- π’ MSC4143: MatrixRTC β Real-time communication over Matrix β Entered FCP on 15 October. Implementation/migration discussion is now resolved. This weekβs slot-ID versus event-ID concern was closed by reverting the proposed slot-event-ID addition. Sticky Events is no longer an outstanding dependency concern.
- π’ MSC4195: LiveKit transport for MatrixRTC β Entered FCP on 15 October. Abuse-mitigation discussion is resolved. A new mandatory-multi-SFU objection was addressed by allowing publishing to a remote SFU.
- π’ MSC4196: Voice and video calling application for MatrixRTC β Entered FCP on 15 October. The server-presets discussion is resolved in favour of client-managed slot creation.
- π‘ MSC4480: Sliding Sync Extension: Sticky Events β Now proposed for FCP, 1 / 8 approvals. Blockers remain around room-scope transitions, enable/disable behaviour, long-poll wakeups and lazy-loaded membership for rooms leaving scope. Global
posis now incorporated, but how clients detect backlog exhaustion remains under discussion. Implementation also needs checking by the SCT.- π΄ MSC4075: MatrixRTC invites and notifications β Still in proposal review. Earlier invalid-event and slot-lifecycle questions have been addressed; cross-device ringing is now documented as a limitation, but not fixed. A new potentially blocking session-identity/simultaneous-invite question remains open. Sticky-object validation has an author response awaiting closure, and the PR still carries
needs-implementation.Given the 5-day FCP timer, we should see the majority of these actually become accepted by the conference π A couple MSCs are still outstanding (SS extension: sticky events and MRTC invites/notifications) but the core of everything is there, and those MSCs won't be left out of the 2.0 release.
For now, we can celebrate how much work has been put in to bring these exciting additions to the spec π₯
πDept of Servers π’
πZendrite (website)
pat-s says
Zendrite, the Dendrite fork written in Go, released v3.5.0. This release focuses on Element Call and on catching up with the spec.
Element Call
- MSC4140 delayed events, which Element Call uses to remove crashed clients from calls, including delayed sticky events.
- MSC4354 sticky events in sync v2 and sliding sync, which Element Call's
matrix_2_0MatrixRTC mode needs.- MSC4222
state_afterin sync v2.- Optional call guest accounts, so people without a Matrix account can join a call by link without open registration; they can only take part in calls and expire after a configurable lifetime.
- An end-to-end deployment guide covering LiveKit, lk-jwt-service, the standalone Element Call app and the Helm chart.
Spec support
/versionsnow advertises Matrix v1.3 through v1.6, which also unblocks bridges such as mautrix-telegram that refused to start against v1.2.- Jump to date (MSC3030) now asks other servers when local history may hide a closer event.
- Custom profile fields (MSC4133), refresh tokens (MSC2918), room type filters for the public room directory (MSC3827), leave reasons (MSC2367), key backup deletion (MSC1219), and the remaining Matrix v1.2 MSCs.
- Application services now receive redactions.
Fixes
- Sliding sync timelines now apply history visibility, so users can no longer read messages from before they were allowed to see them.
- Server ACL globs match against the whole server name.
- Redacting v11+ member events keeps
third_party_invite.signed.- The built-in NATS server is now 2.15.1, which fixes a broker replica that stopped catching up after rejoining on its old storage; HA deployments running their own brokers should upgrade them to 2.15.1 too, and the HA guide explains how to spot and recover a stuck replica.
Release notes: https://codefloe.com/pat-s/zendrite/releases/tag/v3.5.0
Chat: #dendrite:matrix.org
πTuwunel (website)
Enterprise successor to conduwuit, the high-performance and feature-rich fork of Conduit.
june βΏ π³οΈββ§οΈ (it/she/puppy) announces
Tuwunel 1.9.4 stores media in Google Cloud Storage through asafarian's native media provider. On GCE or GKE, Tuwunel can get credentials from the metadata server instead of an exported key (setup).
With
oidc_native_authenabled, the Native OIDC authorization, account and device-login pages offer a choice of local password or configured SSO providers. tototomate123 built the provider choice at utop-top's request. Account pages gained the choice after utop-top's report that Element X's Manage Account jumped straight to SSO.arnolicious added controls to limit profile reads to people sharing a room and prevent regular users from setting display names or creating room aliases.
obodnikov added per-account password limits, got JWT
B64HMACworking, and ensured JWT login rejects deactivated accounts. The last admin can no longer be deactivated, and removingemergency_passwordclears the server user's sessions at next startup.basnijholt fixed thread counts, root bundles and latest replies after redactions. MindRoom Chat kept fetching 13 pages for a thread of roughly 1,000 events because the count still included a redacted reply.
Federated key answers now keep only the answering server's users, and Sliding Sync withholds invited and knocked rooms' timelines.
Startup now repairs the short-id residue behind the repair refusal dogarrowtype reported. mav96 supplied a second log. Uncertain data is preserved.
az4521 fixed URL previews of kkinstagram.com links, and reported the room version 12 create events that caused problems for
force-set-room-state-from-server. Thanks to morteng's report, a mistyped!admin users reset-passwordno longer creates state.SatvikMishra08 fixed the
federate_created_roomsdocumentation issue edenworky reported. June refreshed dependencies and moved OpenTelemetry to 0.33.Notes: https://github.com/matrix-construct/tuwunel/blob/f473d9a4a8342514302884041e0ccfea1ad503fc/RELEASE.md
π GitHub β¦ Releases β¦ DockerHub β¦ Playbook β¦ Containers β¦ Documentation β¦ Enterprise ποΈ Tuwunel π
πSynapse (website)
Synapse is a Matrix homeserver implementation developed by Element.
madlittlemods (Eric Eastwood) says
This week we have a new release, Synapse 1.163.0. To highlight:
- We can finally see light at the end of the tunnel with our Matrix v1.17 project. Synapse now advertises support for Matrix v1.14 and v1.15 (#20137, #20286), and Matrix v1.16 and v1.17 will come as part of the next release (already merged). Of course, the spec keeps evolving, so the march isn't over, but we've accomplished the concrete goal we set out for this quarter! π
- The experimental MSC4354 Sticky Events implementation got a number of updates to improve robustness. Synapse now catches up remote homeservers with any sticky events they may have missed (#20165), handles sticky events being redacted (#20232), makes sure new joiners know about all sticky events in the room (#20233), and uses sharded tokens to prevent race conditions when using workers (#20186).
- Fixed an edge case where the push badge count could undercount. Because it needs specific conditions and because most clients calculate the badge count themselves, this might not be a very commonly visible problem in the wild, but it fixed a Complement test flake that has been plaguing us π (#20237).
- On the Rust side, we reduced contention on the Python GIL (global interpreter lock), and the need to block waiting for it, when handing off data from async Rust to Python (#20252, #20267).
- While it's "just" a dependency swap, URL previews now parse HTML with
beautifulsoup4instead oflxml, moving us offlibxml2, which is no longer maintained. It's a nice bit of maintenance work that even lets us remove some of our own code, sincebeautifulsoup4handles charset detection for us (a rare PR that removes more code than it adds π₯) (#19301, thanks to @clokep).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 π±
πVommet (website)
Dark Collective announces
A Discord-like Matrix client that doesn't suck.
Vommet is an LLM-assisted fork of the excellent Commet Matrix client. I run a large Discord community I've been trying to move to Matrix for years, but no matter what client we tried, people kept bouncing off it. Everyone had a missing feature (Telegram sticker packs, screen sharing with audio on Linux, UI friction, etc.) that sent them back to Discord, even as recent policy changes have left many of our members wishing for a real alternative. So I've been working with community members one by one, finding every missing feature, bug or UI wart that makes Matrix hard to use, and fixing it.
Commet doesn't accept LLM contributions, which we respect, so nothing goes upstream. The name is a joke about AI slop and our rapid release cadence. But like the title says, it doesn't suck. Actually, we think it's really, really good.
Voice and calls
- Discord-like voice rooms with a "Voice Connected" card, mute and deafen next to your name, and volume sliders
- Push to talk, with a key that works while you're in a game (Windows and X11) and a hold-to-talk button on phones
- Watch streams like Discord, plus screen sharing with audio: on Linux, pick any app's audio or everything except voice chat apps
- Noise suppression in calls (RNNoise or DeepFilterNet3)
- Calls in any room or DM, not just voice rooms
- Voice chat with your Discord friends using Nether Voice Bridge
Chat
- Mass-import your favorite sticker packs from Telegram (and Signal), right in the app, into shareable sticker rooms
- Several pictures posted together show up as one Telegram-style mosaic, and you can flip through a room's pictures like a gallery
- Send messages while offline, like Telegram: they go out when you're back, even after a restart
- Better thread support, with several display modes for thread cards
- Voice messages, and (just landed, desktop only so far) on-device transcription like in Telegram
- Spoilers on pictures, bridged GIFs that actually play as GIFs, and plain
example.comtext turned into links like on Telegram- Forwarding, drafts, multi-select, a formatting bar, and Discord-style
<t:timestamp>times shown in everyone's own time zonePeople and spaces
- Explore: browse any homeserver's public room directory, and peek inside a space before you join it
- See which spaces and rooms you share with someone on their profile
- Block people, with a clear "You blocked" notice in the DM
- Get banned from a room and it stays in your list, greyed, with the mod's reason, so you can keep reading until you choose to leave
- Banners for spaces and rooms, and better nested subspaces
- When joining a space, pick which of its rooms and subspaces you join
Look and feel
- Lots of UI improvements (see the screenshots on the website). When in doubt I rip off Discord, the good parts at least.
- Tons of extra themes and a Telegram-style theme editor, plus a font picker with dyslexia-friendly options
Encryption and onboarding
- A first-time setup that explains cross-signing and recovery keys in plain language, plus many new and fixed settings around cross-signing
- Share history when inviting someone to an encrypted room, and receive it when you're invited (MSC4268)
- Preview an invite before accepting, and decline and block in one go
Under the hood
- Lots of fixes for upstream bugs in Commet and the Famedly Matrix Dart SDK fork it uses
- Aggressive performance work and sliding sync. Cold start on my phone is three seconds vs thirty-plus on Commet.
- Notification and UnifiedPush fixes on Android
Widgets
- Widget support with an in-app picker, our own widgets like Park Chess, and Watch Together, which we're testing in our rooms, keeping a video in sync for everyone
And lots more!
The project is moving fast and we have a ton of features planned. It's still very early, so there are bugs to squash every day. We'd love for experienced Dart and Flutter developers to check out the codebase. Even if you're not a programmer, using the app, turning on the opt-in telemetry and reporting bugs in our developer channel helps immensely.
There are testing builds for Linux (Flatpak), Android and Windows. Nothing for Mac or iPhone yet; if you have Apple hardware, I'd love help testing iPhone builds.
Releases: https://nether.codes/nether/vommet/releases
Source (AGPL-3.0): https://nether.codes/nether/vommet
Chat: #vommet:nether.im
πeM Client (website)
eM Client is an email client for Windows, macOS, Android and iOS.
Use your favorite openβsource, decentralized and secure chat service with eM Client 11. Just add your Matrix account and view all your chats in the Chats section β whether itβs a private or public room β with messages and files protected by endβtoβend encryption (E2EE).
Official blog post: eM Client 11 has been released
πSable (website)
F0rest says
After two months, 3050 commits, and a lot of hard work, Sable has been fully rewritten and is releasing v2.0! Our new client is now based on Matrix Rust SDK and uses a Rust backend and Svelte frontend. Our rewrite allows us to shed lots of technical debt and (finally!) publish apps for mobile devices. Come check out our new Forgejo repository and try out the web version.
Updating/obtaining:
- For Windows, Mac, or manually downloaded linux builds, download here: https://git.sable.moe/SableClient/sable-next/releases/tag/v2.0.0
- For Obtainium, Sidestore/Altstore, or other mobile updaters, please check the new readme for updated urls: https://git.sable.moe/SableClient/sable-next/src/branch/main/README.md
- For Docker hosts, please point to the new container. Your users' sessions will migrate automatically. https://git.sable.moe/SableClient/-/packages/container/sable-next/latest
- For AUR, Flathub, and web users, update as usual.
- For IzzyOnDroid users, coming soon...
- Finally, Play Store and App Store are coming soon...
(and if everything breaks, https://legacy.sable.moe now exists, but is no longer supported.)
πNexus (website)
Matrix client made with Flutter and a Gomuks backend.
QuadRadical (Ping) reports
Hello TWIM! Big news this week: Nexus v1.0.0-alpha1 is out! π π π π π
You can grab it from the release page. If you use the Flatpak repo, the nightly builds, or the NixOS module, you're already set up, just update. As this is an alpha, expect some bugs. If you run into anything, please let me know in #nexus:federated.nexus so we can squash them before 1.0.0.
Here's what changed since the last TWIM:
- Creating rooms and spaces: You can now create rooms and spaces right from the sidebar, with options for a canonical alias, publishing to the room directory, and encryption.
- Starting DMs: Start a DM from the sidebar, or from anyone's profile. You can include an invite reason using MSC4491.
- Invites: Send and receive invites, with the new invites tab of the sidebar, and invite button of room menus.
- Browsing spaces: A new "Browse space" button lets you see and join every room from a space's hierarchy.
- Adaptive dialogs: Dialogs show as bottom sheets on mobile, and user profiles show as popovers on desktop.
- A sync status indicator, so you can tell when Nexus is waiting on or failing to sync.
- You can now pick your UnifiedPush distributor, instead of using the default on your OS.
- New settings for room ordering, and for showing all rooms in Home.
- Support for pasting attachments from your keyboard.
- A new custom video player, fixing issues with the last one on Linux touchscreen devices.
- And, as always, a whole lot of bug fixes π
What's next?
Now that the alpha is out, the focus is on fixing whatever bugs you all find, and then releasing 1.0.0 stable.
Get involved!
If you want to help with development, report bugs, ask questions, 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.
πDept of Non Chat Clients ποΈ
πDrupal Meets Matrix
John reports
Two new episodes of Drupal Meets Matrix explore how Matrix rooms and Drupal comment threads can share a conversation:
- Episode 2: Live Comments with ECA and HTMX builds a no-custom-code polling setup that pulls new messages from Matrix into Drupal and refreshes comments without reloading the page.
- Episode 3: Better Conversations with Advanced Comment Threads introduces my new Advanced Comment Threads module, with live updates, inline replies, Drupal Canvas support, and a demo of Matrix and Drupal sharing a discussion.
This work supports the Drupal Groups initiative, letting people participate in the same conversation from a website or their favorite Matrix client.
I'm also presenting this work on Saturday, October 17. There won't be a livestream, but we expect a group chatting in Matrix alongside the presentationβa chance to try the shared Drupal/Matrix conversation in practice. Interested in joining the chat remotely? Message me, and I'll share details when they're ready.
πDept of VoIP π€
πElement Call
Timo K. announces
A very short announcement from the ElementCall Team: v0.28.0 has been released. The most visible change is a new audio device picker with volume preview. There are lots of other things happening; spec work, new implementations. This TWIM post is just about the new release however.
πDept of Ops π
πHumatrix
Hannes says
One-Command Installer for Matrix in Debian with a more human control
What I wanted to solve
As I want to use Matrix with others, it's essential that the setup is as easy as possible for starters, all other everyday tasks should be possible without the terminal.
Since I, as an admin want full control but don't want to be asked for everything, it's possible to give users the right to invite other users β to the server or directly to a group of it. So I can adjust if one user is allowed to invite others generally, allowed to invite X others or isnt allowed β by that I can see branches, who invited whom and so on; I can also "ban" a user which aborts all their pending invites to others.
My Installation mostly brings as new feature the "Human-Interface" (WebGui), so I thought Humatrix is a fitting name :D
Features
- One-Command installation including everything you need for a Matrix server (Synapse, Element Web, coturn (calls), nginx, Let's Encrypt, PostgreSQL, and a Backup-Plan)
- The installer checks the DNS and gets the SSL certificate; if a proxy is running, it leaves TLS to the proxy
- in the WebGui you'll get informed if updates are available and to start the updates.
- Everything is available in German and English
- After the installation, a User-Guide is created including How-To Screenshots and the generated first time password
- The settings (Language, Proxy yes/no, Adminname, Domain and mail) are part of the Install-command and described in the Github Readme.
About the Code
My Job isn't writing Code, but setting up systems and checking Code β so I can read it and know what is essential for avoiding security-issues - but I can't write (that fast). So yes, for the writing I used AI β but I read over all and check all functions.
Contact
Questions and bugs: GitHub Issues or Discussions.
Humatrix on GitHub
πMatrix Federation Stats π
Aine [etke.cc] reports
collected by MatrixRooms.info - an MRS instance by etke.cc
As of today,
20518Matrix federateable servers have been discovered by matrixrooms.info,4088(19.9%) of them are publishing their rooms directory over federation. The published directories contain19710rooms.The most popular server software among the online servers is:
- synapse:
15780(76.9%)- continuwuity:
1936(9.4%)- conduit:
526(2.6%)- dendrite:
282(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.
| Rank | Hostname | Median MS |
|---|---|---|
| 1 | raccoon.cafe | 180.5 |
| 2 | bartoostveen.nl | 199 |
| 3 | codestorm.net | 217 |
| 4 | vrkknn.net | 230 |
| 5 | kanp.ai | 266 |
| 6 | awesomesheep48.ca | 314 |
| 7 | poweron.dk | 321 |
| 8 | anglebrackets.club | 342 |
| 9 | victorewik.es | 356 |
| 10 | libds.com | 366 |
πThat's all I know
See you soon (maybe not next week, but picking up right after the Conference), 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





