๐Ÿ”—Matrix Live - New Features for FluffyChat

๐Ÿ”—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 reduces 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 dont 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 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.

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