Since the last few official Matrix holiday updates didn’t mention as many of the cool community projects as I would have liked, I tried to work with the community to publish a community side review of 2022 as well as possibly some small teasers of what 2023 will bring. There are a lot of very varied updates, since everyone seems to have tackled the challenge differently, but I hope you you enjoy the result as much as I did: https://blog.neko.dev/posts/matrix-year-in-review-2022.html
This was a bit shot notice, so I would like to extend my gratitude to everyone who contributed and took some time in probably one of the busiest periods in a year! For the same reason, I hope you can excuse if one of your favourite projects is missing. If you have anything that is sorely missing, feel free to reach out in #year-in-2022:neko.dev and maybe I can amend the blog post.
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://matrix.org/docs/spec/proposals.
After a lull from the holiday period, work has continued on different parts of the spec. MSC3706 has merged, which furthers the spec side of the work to make joining rooms faster in Matrix (see MSC3902 for the overview).
MSC3938 has also been merged to the spec. The proposal removes a deprecated keyId field and cleans up the endpoint by disallowing trailing slashes.
Sliding Sync (MSC3575) is the next generation of sync - how Matrix clients receive new data from their homeserver. The spec side of the feature has been designed to be modular, with different extensions of spec provided different functionality. MSC3885 is one of those extensions, and defines how To-Device Messages (how different user devices talk directly to each other) would be requested by a Matrix client from the homeserver.
This proposal doesn’t appear to have had too much review from the community yet - so feel free to check it out if faster Matrix clients appeal to you!
So the big new this week is that Neochat is now available on the Microsoft store! This version also has the new end-to-end encryption activated for anyone who wants to try it out.
Searching for messages in rooms was added and the room settings also gained missing features including modifying user permissions, setting the join rule to knock and upgrading the room version.
There was also a ton of smaller improvements to the UI including improving the room information drawer layout and a compact mode for the room list view.
We started working on group call support again this week! Here’s a little preview of a call between Element Call and Hydrogen on desktop and Android, hoping we can release it soon.
It has been a while since last time anyone announced their effort to host (and keep up to date) Element-web on IPFS.
Since Element-web is a client-side static web application, it works just fine when accessed through local IPFS gateway (like kubo/go-ipfs, ipfs-companion browser addon makes it almost seamless).
Latest version (updated within 2 days of the release):
/ipns/element.sibnsk.net (/ipns/k51qzi5uqu5dj43aqkofq4ggbd7nnpvg8j1ia79deab41bfe4zrp86xoht5w2j)
Note: those are unpacked release archives from github with config.json being a copy of config.sample.json.
Files stored on IPFS benefit greatly from more people accessing, storing and sharing them, so everyone is invited to use and pin (periodically, as new versions are released).
Note: Fеnикs’s efforts to host Element-web on IPFS are community efforts, this is not an official deployment of Element.
We’re now back in full force, squashing bugs and taking names. We have fixed problems in voice messages, navigation from replies, voice broadcasting, the new device manager, live location sharing and more
ElementX is also quickly moving ahead:
Instantly loading timelines through the power of sliding sync
Better backpagination support
A new session verification flow
Support for stickers, invalid messages and in-timeline loading indicators
And of course, tweaks here, tweaks there, tweaks everywhere
There is now a per-post view that displays the post, replies, and a placeholder for sending replies.
Bulma has been completely replaced by TailwindCSS, allowing greater flexibility with styling. This involved a rewrite of the navbar, post, login, and other components of the UI.
Posts now display a comment count. There is also a “score”, which can be incremented/decremented by thumbsup/thumbsdown reactions. There is currently progress on reacting from matrix-social.
Earlier this week, we merged the core API for Tasks / ToDoList and Todos using matrix events into main. While connecting the flutter UI is ongoing (which has reverently been revamped to be more streamline and intuitive to use) this marks a major milestone in getting the proof of concept done. It shows that using stateful objects inside matrix spaces that can be collaborated upon with simple matrix events is feasible for regular end-user-style applications. The PR also brings with it integration tests and a TUI app show-casing live-updating tasks lists and tasks.
Meanwhile many issues have been fixed around chat, the code has been updated to latest matrix-sdk and we are working hard on reactivating the integration test suite for better quality assurance. Which is increasingly important as we are sketching out the other generic stateful objects - like the comments system, news, pins and reactions.
Lastly, we have received a lot of positive feedback about the whitepaper we launched last month outlining what we are after when building this and how we intend this all to move forward. If you haven’t read it yet, we are still curious to know what you think of it.
Dept of SDKs and Frameworks 🧰
Trinity
Matrix bots in Rust and WebAssembly. If you’re interested to follow the project, feel free to join #trinity:delire.party or get the code on Github.
Since the last time in November, there’s been a bit of activity on Trinity:
Support for end-to-end encryption has been fixed, so that the bots can now reliably answer in private chats and encrypted rooms. Thanks to the kind folks in the Matrix Rust SDK channel for the provided help! Hopefully next time we demo Trinity live, we won’t embarrass ourselves with that bug ever again 😊
The admin command is now always aware of the room it’s applied to, thanks to a contribution by @ahal:mozilla.org.
There’s now an experimental OpenAI chatbot, that you can enable in conversation mode in a room (i.e. it’ll answer every single message), or that you can trigger with a prefix !ai.
As my first real project written in Rust, I present a translation bot that uses the DeepL translation API to easily translate conversations between participants in a room.
The bot has source language detection, so you can type in your native language and it’ll translate to anything you’d like right inside of your Matrix client.
I’ve released the source code under the MIT license, so feel free to expand and improve on it: https://github.com/du64/scripts/tree/main/matrix-translation-bot
Meet Sumner Evans, who talked to Yan about his way into the Matrix community and career as a developer. Alongside other wisdoms, he recommends newcomers to run their own home server to get familiar with Matrix.
In general, this episode contains a lot of tips for people who want to get started and more involved with Matrix.
Next week marks the end of the Matrix Community Summit 2022 series. We’re planning on continuing the podcast feed in the future. Stay tuned for a final (German) episode next Friday!
Meet Janonym, who describes how Matrix is used at the University of Graz.
He and I talked about how Matrix, Etherpad and Jitsi allow students to collaborate, how Moodle has become an important tool in digital education and how the Maths faculty enjoys Element’s Labs feature for LaTeX messages.
Meet Alex and Valentin who compete for the lowest ping statistics with their Matrix server.
We talked about their ideas for Matrix, university and more.
While this concludes the 8 podcast episodes we recorded at the Matrix Community Summit in Berlin, I did another recording with Kim (HarHarLinks) this week, so there will be a 9th episode next Friday.
There is a large interest in FOSDEM from the Matrix community, and we are very excited to see not just a stand, not just an online track, but the first ever in person Matrix devroom happening this year! The officially allotted time for the Matrix devroom at FOSDEM however is only half a day.
Some friends and matrix enthusiasts who met at the first Matrix Community Summit Berlin in 2022 feel there is more to discuss and want more time to meet more of this amazing community we are part of, without taking away from the FOSDEM experience itself.
We are happy to announce the FOSDEM23 Matrix Community Meetup at Hackerspace Brussels (HSBXL)!
The meetup is set to begin on Friday 03 February around 13:00 local time (CET) and will go into the evening. See https://hsbxl.be/contact/ for multiple well documented ways how to find us. Thank you HSBXL for providing a location for this!
There is no definite schedule, instead we want to give the space for discussions to develop organically BarCamp style. If you have a certain interest to learn about something or you want to present something in particular, we want to hear about it!
Furthermore, be aware that HSBXL is hosting more events in the FOSDEM “fringe”, such as a beer tasting on Friday right after our Matrix Meetup, and also the bytenight party on Saturday.
Find us at #fosdem23-community-meetup:matrix.org for more info, program suggestions, to follow the process, and general discussion.
Yes, you are reading correct. This is about Matrix Art ^^
After quite some while, I started to work on it again. I merged the new design into main, updated the UI, and it is available at https://art.midnightthoughts.space/ again.
Current goals are to add the User and Post pages again and implement of the new storage system. The new system uses Spaces as FS at its core for the timeline.
Specifically, Matrix Art is basically a big Space containing a Folder for each User, similar to a Room Directory. In that, there are Timeline spaces which act as the Public Feed. This allows Matrix Art to provide a way of having invite only feeds as well, using normal room permissions.
In practice, the tree is like this (thanks to Travis for designing this many months ago):
Quick update on the matrix.directory website: we’ve added the custom event type io.element.functional_members. As you may know, many projects within Matrix don’t use any custom event types at all. This can make it difficult to find custom event types, which is (ironically) why I created the matrix.directory website in the first place.
You can find the source code for the website on GitHub. I encourage you to check it out and contribute any custom event types you may have. Your contributions will help make the website a valuable resource for the Matrix community.
Thanks for your support!
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-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
Rank
Hostname
Median MS
1
babel.sh
156
2
dendrite.babel.sh
182
3
wcore.org
238
4
kumma.juttu.asia
245
5
rustybever.be
293.5
6
matrix.org
439.5
7
anontier.nl
501
8
dendrite.kootstra.frl
527
9
cringe.chat
567
10
grin.hu
1197
That’s all I know
See you next week, and be sure to stop by #twim:matrix.org with your updates!
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.