Matrix.orgThe Matrix.org FoundationZola2024-03-15T19:30:00+00:00https://matrix.org/atom.xmlThis Week in Matrix 2024-03-152024-03-15T19:30:00+00:002024-03-15T19:30:00+00:00Thibhttps://matrix.org/blog/2024/03/15/this-week-in-matrix-2024-03-15/<h2 id="matrix-live">Matrix Live</h2>
<noscript>Today's Matrix Live: <a href="https://youtube.com/watch?v=HbzMofPhX0Y">https://youtube.com/watch?v=HbzMofPhX0Y</a></noscript>
<youtube-player video-id="HbzMofPhX0Y"></youtube-player>
<h2 id="dept-of-status-of-matrix-face-with-th">Dept of <em>Status of Matrix</em> 🌡️</h2>
<p><a href="https://matrix.to/#/@josh:josh.tel">Josh Simmons</a> reports</p>
<blockquote>
<p>The wait is over! We are <a href="https://cryptpad.fr/form/#/2/form/view/j1+wOJVZWyrDKvGP-G1r-zEOI3a52j5Y22brxhrdcmM/">now accepting applications</a> from projects and organizations that want to join the Foundation as Ecosystem and Associate Members.</p>
<p>You may recall that in December <a href="https://matrix.org/blog/2023/12/electing-our-first-governing-board/">we announced two new membership tiers</a> to ensure we have healthy community representation as we introduce more open governance for Matrix. Specifically, we created Ecosystem and Associate Member tiers. Ecosystem Members are open source projects that speak Matrix, and Associate Members are FOSS foundations, nonprofits, and academic institutions.</p>
<p>We’re excited to bring more folks into the fold, and thrilled to welcome <a href="https://thunderbird.net/">Thunderbird</a>, <a href="https://github.com/the-draupnir-project/Draupnir">Draupnir</a>, and <a href="https://conduit.rs/">Conduit</a> as our first Ecosystem Members 🎉 Curious who else has joined as a member recently? <a href="https://matrix.org/support/#supporters">Check out our Supporters</a>.</p>
<p>We’d also like to recognize Thunderbird for sponsoring the Foundation, which helps us get a little bit closer to making the Foundation’s activities sustainable 🚀</p>
</blockquote>
<p><a href="https://matrix.to/#/@thib:ergaster.org">Thib</a> announces</p>
<blockquote>
<p>There is a question we often get asked: why do you operate the Matrix.org homeserver, and why do you keep registrations open? We don't want to become the gmail.com of Matrix after all. We covered those in this post.</p>
<p><a href="https://matrix.org/blog/2024/03/why-matrix-org/">https://matrix.org/blog/2024/03/why-matrix-org/</a></p>
</blockquote>
<span id="continue-reading"></span><h2 id="dept-of-spec-scroll">Dept of Spec 📜</h2>
<p><a href="https://matrix.to/#/@andrewm:element.io">Andrew Morgan (anoa)</a> says</p>
<blockquote>
<p>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 <a href="https://spec.matrix.org/proposals">https://spec.matrix.org/proposals</a>.</p>
<h3 id="msc-status">MSC Status</h3>
<p><strong>New MSCs:</strong></p>
<ul>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4119">MSC4119: Voluntary content flagging</a></li>
</ul>
<p><strong>MSCs in Final Comment Period:</strong></p>
<ul>
<li><em>No MSCs are in FCP.</em></li>
</ul>
<p><strong>Accepted MSCs:</strong></p>
<ul>
<li><em>No MSCs were accepted this week.</em></li>
</ul>
<p><strong>Closed MSCs:</strong></p>
<ul>
<li><em>No MSCs were closed/rejected this week.</em></li>
</ul>
<h3 id="spec-updates">Spec Updates</h3>
<p>Next Friday, March 22nd, is the release date of Matrix v1.10! Watch this space for when the blog post goes live.</p>
<p>A new release of the spec means it's planning time for the subsequent one. For v1.11 we're looking to focus on Trust & Safety, authenticated media and Extensible Events. See <a href="https://matrix.to/#/!ewdjhNcPcEmYNKzlWp:t2l.io/$56qea_7yK40nVVu-PH_hxkLmyBO9YXaQtCmd-UIt_YQ?via=matrix.org&via=element.io&via=envs.net">this message</a> in the Office of the Matrix Spec Core Team room for further details. If you have something that you'd like to suggest that isn't already on that list, please do so in that room!</p>
<p>Otherwise there has been lots of activity in the spec-writing side of things this week. 5 new PRs and 2 merged during <a href="https://github.com/matrix-org/matrix-spec/pulse#proposed-pull-requests">this week alone</a>! A mix of spec PRs and general fixes/improvements to the spec itself. Thank you to everyone who's pitching in!</p>
<h3 id="random-msc-of-the-week">Random MSC of the Week</h3>
<p>The random MSC of the week is... <a href="https://github.com/matrix-org/matrix-spec-proposals/pull/3999">MSC3999: Add causal parameter to <code>/timestamp_to_event</code></a>!</p>
<p>The gist of this proposal is that the existing <a href="https://spec.matrix.org/v1.9/client-server-api/#get_matrixclientv1roomsroomidtimestamp_to_event"><code>GET /_matrix/client/v1/rooms/{roomId}/timestamp_to_event</code></a> endpoint (which allows you to jump to a point in a room based on a given date and time), could suffer from some edge cases. Particularly if you're heavily using <code>/timestamp_to_event</code> to form your room timeline (which the <a href="https://github.com/matrix-org/matrix-viewer">Matrix Viewer</a> does).</p>
</blockquote>
<h2 id="dept-of-servers-europea">Dept of Servers 🏢</h2>
<h3 id="synapse-website">Synapse (<a href="https://github.com/element-hq/synapse/">website</a>)</h3>
<p>Synapse is a Matrix homeserver implementation developed by Element</p>
<p><a href="https://matrix.to/#/@andrewm:element.io">Andrew Morgan (anoa)</a> announces</p>
<blockquote>
<p>Synapse v1.103.0 is due out next week, carrying with it some upcoming features and bug fixes:</p>
<ul>
<li>Stabilise, and enable by default, support for <a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4041">MSC4041</a> (<code>Retry-After</code> header).</li>
<li>Fix performance issues when joining very large rooms that can cause the server to lock up (thanks to <a href="https://github.com/ggogel">@ggogel</a> for their persistence on this one!)</li>
<li>Fix a bug introduced in v1.76.0 that prevented joining remote rooms when a module uses the <code>on_new_event</code> callback.</li>
</ul>
<p>...and more!</p>
<p>We have a release candidate out (<a href="https://github.com/element-hq/synapse/releases/tag/v1.103.0rc1">v1.103.0rc1</a>) if you would like to help test early and shake out any bugs before the full release. Otherwise, expect v1.103.0 to land next week. Thanks!</p>
</blockquote>
<h2 id="dept-of-clients-iphone">Dept of Clients 📱</h2>
<h3 id="element-x-ios-website">Element X iOS (<a href="https://github.com/vector-im/element-x-ios">website</a>)</h3>
<p>A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.</p>
<p><a href="https://matrix.to/#/@mauro.romito:element.io">Mauro Romito</a> announces</p>
<blockquote>
<ul>
<li>Release candidate 1.5.13 to be released soon! it will include filters and mark as read/unread/favourite</li>
<li>We improved our testing by having all of our views preview tested on both iPhone and iPad and multiple languages</li>
<li>A lot of progress has been done on moderation management in rooms.</li>
<li>We improved our logging for UTD events, this will help us improve the quality of decryption over time.</li>
</ul>
</blockquote>
<h3 id="element-x-android-website">Element X Android (<a href="https://github.com/vector-im/element-x-android">website</a>)</h3>
<p>Android Matrix messenger application using the Matrix Rust Sdk and Jetpack Compose </p>
<p><a href="https://matrix.to/#/@benoit.marty:matrix.org">benoit</a> announces</p>
<blockquote>
<ul>
<li>Element X Android 0.4.5 is now in production. It adds the ability to mark a room as favourite and adds some action regarding moderation (moderation is still under a disabled feature flag).</li>
<li>The next release candidate (0.4.6) can already be downloaded from GitHub here: <a href="https://github.com/element-hq/element-x-android/releases/tag/v0.4.6">https://github.com/element-hq/element-x-android/releases/tag/v0.4.6</a> and will soon be available on the PlayStore if you’re a tester. The loading of the room members is much faster, especially in crowded rooms, and the UX has been tweaked too. </li>
<li>We are working on room filtering, but the feature is not enabled yet on production. You can use the nightly build to be able to enable it from the settings, Developer options.</li>
<li>The room moderation feature is now closer to completion: if you are an admin you can now change the roles of other users, the default power levels for some actions. If you are either an admin or a moderator you can now remove, ban or unban users.</li>
<li>We are also working on a tool to be able to check the quality of Element X Android translations. It is available at <a href="https://element-hq.github.io/element-x-android/">https://element-hq.github.io/element-x-android/</a> If you spot any mistakes / typo / inconsistency in any languages, feel free to reach us! You can help translate the application at <a href="https://localazy.com/p/element">https://localazy.com/p/element</a>. We manage the translations in French and German, but other languages are provided by the community. Also, we enable the language only if the translation progress is close to 100%. For layout issues, please report an issue using <a href="https://github.com/element-hq/element-x-android/issues/new/choose">https://github.com/element-hq/element-x-android/issues/new/choose</a>. Thanks!</li>
</ul>
</blockquote>
<h3 id="beeper-website">Beeper (<a href="https://www.beeper.com">website</a>)</h3>
<p>All you chats in one app.</p>
<p><a href="https://matrix.to/#/@tulir:maunium.net">tulir</a> says</p>
<blockquote>
<p>We've released a new Android app that's awesome and rebuilt from the ground up instead of being an Element fork. It uses Kotlin and Jetpack Compose for the UI and mautrix-go for all the Matrix things. For more details, check out our blog post: <a href="https://blog.beeper.com/p/new-beeper-android-app-open-beta">https://blog.beeper.com/p/new-beeper-android-app-open-beta</a></p>
<p><img src="/blog/img/20240315-beeper.webp" alt="" /></p>
</blockquote>
<h2 id="dept-of-sdks-and-frameworks">Dept of SDKs and Frameworks 🧰</h2>
<h3 id="matrix-rust-sdk">Matrix Rust SDK</h3>
<p><a href="https://matrix.to/#/@benjib:element.io">bnjbvr</a> announces</p>
<blockquote>
<ul>
<li>More logging has been added to the crypto crate, to better understand unable-to-decrypt (UTD) events. In particular, it's possible to listen to the UI timeline's UTDs events, using a special dedicated hook</li>
<li>Back-pagination has been added to the Event Cache, and the UI timeline now makes use of that, in place of its own code.</li>
<li>The event cache now has an experimental fancy data structure to represent events, implemented as a linked list of chunks. It's not used yet, but it's being integrated.</li>
<li>A filter to show only invites has been added to the Room List service. </li>
<li>When fetching all the room members, the computation for disambiguating names has been optimized, resulting in much smaller run times for <code>Room::sync_members()</code> et al. (And a benchmark has been added to prove it!)</li>
<li>And your usual load of refactorings and smaller bugfixes and improvements.</li>
</ul>
</blockquote>
<h3 id="rory-libmatrix-net-8-matrix-bot-client-library-sdk">Rory&::LibMatrix (.NET 8 matrix bot/client library/SDK)</h3>
<p><a href="https://matrix.to/#/@emma:rory.gay">Emma [it/its]</a> reports</p>
<blockquote>
<p>Working on some scope cleanup, moving utilities into subclasses in order to make extensions more cleanly separated, along with some nice bot changes, in order to allow more versatility and customisation.</p>
<h2 id="changes">Changes</h2>
<ul>
<li>Moved named filters to <code>hs.NamedCaches.FilterCache</code>
<ul>
<li>This also means that any named filter handling functions have been removed from <code>AuthenticatedHomeserverGeneric</code></li>
</ul>
</li>
<li>Bot utils: <code>AddMatrixBot</code> no longer adds default commands (see additions)</li>
</ul>
<h2 id="additions">Additions</h2>
<ul>
<li>Added <code>BodyWithoutReplyFallback</code> to <code>RoomMessageEventContent</code></li>
<li>Added file/media cache at hs.NamedCaches.FileCache
<ul>
<li>This allows avoiding reuploads of files that are commonly reused, such as reaction images</li>
</ul>
</li>
<li>Added <code>WithCustomEmoji(string mxcUri, string name)</code> to <code>MessageBuilder</code>
<ul>
<li>You can now add custom emojis to messages, whether you're using a custom emoji pack or not</li>
</ul>
</li>
<li>Added <code>WithCodeBlock(string code, string language = "")</code> to <code>MessageBuilder</code></li>
<li>Added <code>WithCollapsibleSection</code> to <code>MessageBuilder</code> - sometimes a code blocks or details can get very long :)</li>
<li>Added generic named cache implementation (<code>NamedCache<T>(string name)</code>)
<ul>
<li>You can now easily implement your own caches mapped to account data as <code>Dictionary<string, T></code></li>
<li>Language is optional but can be omitted for clients that don't support it</li>
</ul>
</li>
<li>Added <code>hs.NamedCaches</code> in order to group named caches for different data types</li>
<li>Bot utils: Added extended bot configuration support:
<ul>
<li>AddMatrixBot no longer adds command support or default commands</li>
<li>There's a configuration option (<code>MentionPrefix</code>), to allow mentioning the bot directly, as prefix</li>
<li>Added methods to <code>services.AddMatrixBot()</code>:
<ul>
<li><code>AddCommandHandler()</code> - Adds command handler</li>
<li><code>AddCommands(Type[] commandClasses)</code> - Allows adding a list of command classes, without necessarily including builtins like !help</li>
<li><code>DiscoverAllCommands()</code> - Registers all commands that can be found, including builtins such as !help</li>
<li><code>WithInviteHandler(Func<InviteEvent, Task> handler)</code> - Allows easy addition of invite handling with custom logic (eg. must be in x room)</li>
<li><code>WithCommandResultHandler(Func<CommandResult, Task> handler)</code> - Allows overriding command/permission error handling in order to add custom messages, or extra logging</li>
</ul>
</li>
</ul>
</li>
<li>Bot utils: Added <code>Aliases</code> and <code>Unlisted</code> to ICommand, allowing bots to add aliases and hide commands from !help</li>
<li>Bot utils: Added support for multiple prefixes, and prefixes with spaces (needs more testing)</li>
<li>Bot utils: Added support for command names with spaces (needs more testing)</li>
</ul>
<p><em><strong>And, as always:</strong></em></p>
<ul>
<li>The code is available at <a href="https://cgit.rory.gay/matrix/LibMatrix.git">cgit.rory.gay</a>!
<ul>
<li>All contributions are more than welcome, be it documentation, code, anything! Perhaps, example usecases, bots, ...?</li>
</ul>
</li>
<li>Discussion, suggestions and ideas are welcome in <a href="https://matrix.to/#/#libmatrix:rory.gay">#libmatrix:rory.gay</a> (Space: <a href="https://matrix.to/#/#mru-space:rory.gay">#mru-space:rory.gay</a>)</li>
<li>Got a cool project that you're working on and want to share, using LibMatrix? Be sure to let me know, I'd love to hear all about it!
<img src="/blog/img/ETxZosOAWjHKcMvyNEQrCFoQ.png" alt="" /></li>
</ul>
</blockquote>
<h2 id="dept-of-events-and-talks">Dept of Events and Talks 🗣️</h2>
<h3 id="netzpolitischer-abend">Netzpolitischer Abend</h3>
<p><a href="https://matrix.to/#/@kim:sosnowkadub.de">HarHarLinks</a> reports</p>
<blockquote>
<p>Every first Tuesday of the month, the <a href="https://digitalegesellschaft.de/">Digitale Gesellschaft e.V.</a> ("digital society") hosts the <a href="https://digitalegesellschaft.de/netzpolitischer-abend/">Netzpolitischer Abend</a> ("internet politics evening") at <a href="https://c-base.org/">c-base</a> Berlin, Germany, with - you may have guessed it already - talks covering digital and internet politics (usually in German). I hope that does not stop you, because <a href="https://digitalegesellschaft.de/2024/02/134-netzpolitischer-abend/">the 134th edition</a> from <del><code>1709665200</code></del> 2024-03-05 20:00 CET featured talks on some great topics ranging from <em>Feminist Internet Politics</em> over <em>Freedom of Press</em> to the <em>Latest News on Chat Control</em>. The most interesting topics to you, dear TWIM reader, might be Nadine's <a href="https://youtu.be/USRaJIutiwc">upd</a><a href="https://vimeo.com/922052289">ate</a> on her <a href="https://polychat.de/"><em>Polychat</em> project</a> (#polychat-ambassadors:datanauten.de) and Yan (aka <a href="https://github.com/yncyrydybyl">yncyrydybyl</a> aka t) giving a brief introduction on the Matrix protocol and Foundation, an overview how Matrix is being implemented in the German public administration, and answering questions from the in-person attendees. View Yan's talk on <a href="https://youtu.be/c3ghbKpgnCY">YouTube</a>, <a href="https://vimeo.com/922038111">Vimeo</a>, or watch the live stream of the whole evening <a href="https://youtu.be/sneDXwGfw70">here</a>. Here are some links to the things Yan shows in his presentation, I tried to also include links to the English versions where available:</p>
<ul>
<li>Matrix <a href="https://matrix.org/about/">Manifesto</a> and <a href="https://matrix.org/ecosystem/">ecosystem</a></li>
<li><a href="https://element.io/matrix-in-germany">Matrix in Germany</a>/<a href="https://element.io/de/matrix-in-deutschland">Matrix in Deutschland</a> on Element's website</li>
<li><a href="https://fachportal.gematik.de/anwendungen/ti-messenger">TI-Messenger</a></li>
<li><a href="https://messenger.bwi.de/bwmessenger">BwMessenger</a> and <a href="https://gitlab.opencode.de/bwi/bundesmessenger/info">BundesMessenger</a></li>
<li><a href="https://www.cio.bund.de/Webs/CIO/DE/digitale-loesungen/digitale-souveraenitaet/souveraener-arbeitsplatz/souverarner-arbeitsplatz-node.html">openDesk</a> (previously "sovereign workplace"), <a href="https://gitlab.opencode.de/bmi/opendesk/info">more openDesk</a>, <a href="https://gitlab.opencode.de/bmi/opendesk/info/-/blob/main/README_EN.md">openDesk in English</a></li>
<li>Map of (mostly German and German language) <a href="https://doc.matrix.tu-dresden.de/en/why/">Universities</a></li>
</ul>
<p><sub>Tip: If you'd like to follow Digitale Gesellschaft/Netzpolitischer Abend, you can subscribe to their <a href="https://chaos.social/@digiges">social media</a> or their <a href="https://digitalegesellschaft.de/feed/">website feed</a>/<a href="https://www.youtube.com/feeds/videos.xml?channel_id=UCvMIa4wxtS8FR239VDuUhXA">youtube feed</a> using your favorite tool; mine is called <a href="https://github.com/matrix-org/matrix-hookshot/">hookshot</a>.</sub></p>
</blockquote>
<h3 id="andy-s-matrix-bot-live-stream">Andy's Matrix bot live stream</h3>
<p><a href="https://matrix.to/#/@andybalaam:matrix.org">andybalaam</a> announces</p>
<blockquote>
<p>I'm still live-streaming hacking on a Matrix bot in Rust every week, Thursdays at 15:00 UK time. Watch the streams live on <a href="https://andybalaam.uk.to/">https://andybalaam.uk.to/</a> and find the recordings at <a href="https://diode.zone/c/andybalaam_programming/videos">https://diode.zone/c/andybalaam_programming/videos</a></p>
</blockquote>
<h2 id="dept-of-interesting-projects">Dept of Interesting Projects 🛰️</h2>
<p><a href="https://matrix.to/#/@Gregor:matrix.org">Gregor</a> announces</p>
<blockquote>
<p>External videos & posts, reaction images, polls… There are many things I like to see inline in conversations without having to follow a link. <a href="https://dflate.io/emweb">emweb</a> is a prototype for a lightweight protocol to solve for all of these and more, while keeping implementation burden low.</p>
<p>I am looking for interested parties that want to help refine the idea, especially with regard to security and UX. There is also a lot more prototypes to build and spread inspiration. A few from the top of my mind: coin flips, games likes tic tac toe or chess, live location sharing…</p>
<p>So far I have two scrappy host implementations: one for the Matrix client <a href="https://github.com/Gregoor/cinny/tree/emweb">Cinny</a> (hosted <a href="https://cinny-emweb.vercel.app/">here</a>) and one for the Mastodon client <a href="https://github.com/Gregoor/elk/tree/emweb">Elk</a> (hosted <a href="https://elk-emweb.vercel.app/">here</a>).
The Elk fork is not just an emweb-host but also a guest, so you can send links to Mastodon posts on it within the emweb fork of Cinny, and they will be directly embedded into your chat.</p>
<p>If this piqued your interest, talk to me @Gregor:matrix.org</p>
</blockquote>
<h2 id="matrix-federation-stats">Matrix Federation Stats</h2>
<p><a href="https://matrix.to/#/@aine:etke.cc">Aine</a> announces</p>
<blockquote>
<p>collected by <a href="https://matrixrooms.info/?utm_source=twim&utm_medium=matrix&utm_campaign=federation-stats">MatrixRooms.info</a> - an <a href="https://gitlab.com/etke.cc/mrs/api">MRS</a> instance by <a href="https://etke.cc/?utm_source=twim&utm_medium=matrix&utm_campaign=federation-stats">etke.cc</a></p>
<p>As of today, <code>9473</code> Matrix federateable servers have been discovered by matrixrooms.info, <code>2816</code> (<code>29.7%</code>) of them are publishing their rooms directory over federation.
The published directories contain <code>20025</code> rooms.</p>
<p>Stats timeline is available on <a href="https://matrixrooms.info/stats?utm_source=twim&utm_medium=matrix&utm_campaign=federation-stats">MatrixRooms.info/stats</a></p>
<p><a href="https://matrixrooms.info/indexing/?utm_source=twim&utm_medium=matrix&utm_campaign=federation-statsix&utm_campaign=federation-stats">How to add your server</a> | <a href="https://matrixrooms.info/deindexing/?utm_source=twim&utm_medium=matrix&utm_campaign=federation-stats">How to remove your server</a></p>
</blockquote>
<h2 id="dept-of-ping">Dept of Ping</h2>
<p>Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by <a href="https://github.com/maubot/echo">pingbot</a>, a <a href="https://github.com/maubot/maubot">maubot</a> that you can host on your own server.</p>
<h3 id="ping-maunium-net"><a href="https://matrix.to/#/#ping:maunium.net">#ping:maunium.net</a></h3>
<p>Join <a href="https://matrix.to/#/#ping:maunium.net">#ping:maunium.net</a> to experience the fun live, and to find out how to add YOUR server to the game.</p>
<table><thead><tr><th style="text-align: center">Rank</th><th style="text-align: center">Hostname</th><th style="text-align: center">Median MS</th></tr></thead><tbody>
<tr><td style="text-align: center">1</td><td style="text-align: center">maunium.net</td><td style="text-align: center">247</td></tr>
<tr><td style="text-align: center">2</td><td style="text-align: center">nerdhouse.io</td><td style="text-align: center">291</td></tr>
<tr><td style="text-align: center">3</td><td style="text-align: center">075-141-169-120.res.spectrum.com:8447</td><td style="text-align: center">343</td></tr>
<tr><td style="text-align: center">4</td><td style="text-align: center">aguiarvieira.pt</td><td style="text-align: center">346</td></tr>
<tr><td style="text-align: center">5</td><td style="text-align: center">plocki.org</td><td style="text-align: center">420</td></tr>
<tr><td style="text-align: center">6</td><td style="text-align: center">chatinamatrix.xyz</td><td style="text-align: center">474</td></tr>
<tr><td style="text-align: center">7</td><td style="text-align: center">ilmari.org</td><td style="text-align: center">476</td></tr>
<tr><td style="text-align: center">8</td><td style="text-align: center">matrix.netho.tk</td><td style="text-align: center">537</td></tr>
<tr><td style="text-align: center">9</td><td style="text-align: center">littlevortex.net</td><td style="text-align: center">646</td></tr>
<tr><td style="text-align: center">10</td><td style="text-align: center">rom4nik.pl</td><td style="text-align: center">678.5</td></tr>
</tbody></table>
<h3 id="ping-no-synapse-maunium-net"><a href="https://matrix.to/#/#ping-no-synapse:maunium.net">#ping-no-synapse:maunium.net</a></h3>
<p>Join <a href="https://matrix.to/#/#ping-no-synapse:maunium.net">#ping-no-synapse:maunium.net</a> to experience the fun live, and to find out how to add YOUR server to the game.</p>
<table><thead><tr><th style="text-align: center">Rank</th><th style="text-align: center">Hostname</th><th style="text-align: center">Median MS</th></tr></thead><tbody>
<tr><td style="text-align: center">1</td><td style="text-align: center">dendrite.s3cr3t.me</td><td style="text-align: center">154</td></tr>
<tr><td style="text-align: center">2</td><td style="text-align: center">aguiarvieira.pt</td><td style="text-align: center">182</td></tr>
<tr><td style="text-align: center">3</td><td style="text-align: center">pain.agency</td><td style="text-align: center">204.5</td></tr>
<tr><td style="text-align: center">4</td><td style="text-align: center">matrix.its-tps.fr</td><td style="text-align: center">216</td></tr>
<tr><td style="text-align: center">5</td><td style="text-align: center">spritsail.io</td><td style="text-align: center">235</td></tr>
<tr><td style="text-align: center">6</td><td style="text-align: center">transfem.dev</td><td style="text-align: center">367</td></tr>
<tr><td style="text-align: center">7</td><td style="text-align: center">inu.is</td><td style="text-align: center">439.5</td></tr>
<tr><td style="text-align: center">8</td><td style="text-align: center">matrix.org</td><td style="text-align: center">524.5</td></tr>
<tr><td style="text-align: center">9</td><td style="text-align: center">herkinf.de</td><td style="text-align: center">601</td></tr>
<tr><td style="text-align: center">10</td><td style="text-align: center">doctoruwu.uk</td><td style="text-align: center">672</td></tr>
</tbody></table>
<h2 id="that-s-all-i-know">That's all I know</h2>
<p>See you next week, and be sure to stop by <a href="https://matrix.to/#/#twim:matrix.org">#twim:matrix.org</a> with your updates!</p>
Why the Matrix.org Homeserver Exists?2024-03-14T15:30:00+00:002024-03-14T15:30:00+00:00Thibhttps://matrix.org/blog/2024/03/why-matrix-org/<p>Matrix self-defines as the go-to protocol for "open, secure, decentralised communications". The Matrix.org Foundation defines "maximising […] the number of online servers in the open federation" as <a href="/about/#mission">a key objective in its mission</a>. So why is the Matrix.org homeserver, probably the largest homeserver in the whole federation, still in open registration mode?</p>
<p>Let's dive into the technical, and user experience choices behind it.</p>
<span id="continue-reading"></span><h2 id="a-point-of-centralisation">A point of centralisation</h2>
<p>The Matrix protocol is heavily decentralised. It goes beyond just federation: every single server in a room maintains a local copy of that room in sync with all the other servers participating in the conversation.</p>
<p>Matrix is often compared to email but for instant messaging. The first thing that comes to mind is that email might be federated, but it's no longer <em>that</em> decentralised. According to <a href="https://www.sellcell.com/blog/most-popular-email-provider-by-number-of-users/">this article on sellcell.com</a>, Gmail.com provides nearly 50% of the active email accounts in 2023, iCloud follows with 27.8%, and Outlook.com owns 13.1% of them.</p>
<p>The Matrix.org Foundation doesn't want to become the Gmail.com or Outlook.com of Matrix. It doesn't generate any revenue from its users and runs on <a href="/support">donations</a>. The costs of hosting, maintenance and support of the Matrix.org homeserver grow with the number of people using it.</p>
<p>A steep and steady growth comes with three significant issues:</p>
<ol>
<li>
<p>The technical maintenance costs do not grow linearly with the number of users. The infrastructure itself costs more, but more time needs to be spent on research and development to make the backend scale.</p>
</li>
<li>
<p>Moderation becomes more difficult. The more reports the Trust & Safety team has to handle, the less time it can spend on tools to improve the moderation experience.</p>
</li>
<li>
<p>Support can't be automated and is very costly to scale. The more users on Matrix.org, the less responsive the support team can be (unless we find resources to hire more support team members) and the more frustrating it is for everyone involved.</p>
</li>
</ol>
<p>In short: everyone stands to benefit from Matrix.org not being a supermassive homeserver that is difficult to leave.</p>
<h2 id="mindfulness-of-others">Mindfulness of others</h2>
<p>One of the goals of the Matrix.org Foundation is to maximise the number of Matrix users in the open federation. Another goal is to make sure Matrix remains decentralised by increasing the number of servers in that same open federation.</p>
<p>One of the fundamental aspects that makes Matrix appealing is decentralisation and (open) federation. Those concepts are not as difficult for the general public to understand as some claim. But we must acknowledge the general public is not regularly confronted with them and their implications when trying new apps.</p>
<p>For Matrix to gain traction outside of technical circles, it needs to be mindful of the time and habits of the general public. Whether we like it or not, people are used to trying apps, not protocols or providers. It is not reasonable to ask a user to pick a homeserver before they even know what a homeserver is, nor what this decision entails. People need to be able to download an app, try it right away, and get some (potential) value from it before making more advanced decisions.</p>
<p>We have made Matrix.org one of the most prominent entry points for people discovering Matrix because we believe inclusivity is one of the fundamental premises of Matrix's global success.</p>
<p>So then, how do we reconcile the need for ease of adoption with the goal of decentralisation?</p>
<h2 id="a-way-in-and-a-way-out">A way in and a way out</h2>
<p>Creating an account on Matrix.org is a typical first step in the Matrix user journey. Since agglomeration around a single instance is against the goals of Matrix and its Foundation, users need to have a way out and incentives to move.</p>
<p>To move to another homeserver, a user needs to be able to pick a homeserver and move there.</p>
<h3 id="picking-a-homeserver">Picking a homeserver</h3>
<p>Matrix community member Austin Huang created <a href="https://servers.joinmatrix.org">servers.joinmatrix.org</a> to list all the servers with open registrations where people could find a new home. I am working on creating an official and curated version. We need the instance picker to work on Matrix.org's website, and provide data that the client apps can reuse and present to users who want to move away from Matrix.org.</p>
<h3 id="moving-to-the-new-homeserver">Moving to the new homeserver</h3>
<p>The Foundation will implement an account migration tool to allow people to migrate to another server. A proper portable identity mechanism would be better,however, the Foundation had to pause its development due to a lack of funding. Such a mechanism would also rely on a new room version. It would only allow migrating conversations that happened after a room upgrade to that hypothetical new version, which results in data loss.</p>
<h2 id="the-most-reasonable-solution">The most reasonable solution</h2>
<p>There are alternatives to a prominent onboarding homeserver like the Matrix.org homeserver. We don't find any of them satisfactory:</p>
<ul>
<li>Picking a server randomly when a user wants to sign up in the app is confusing and has a lot of security implications. This is not acceptable.</li>
<li>Forcing the user to choose a server when they sign up is a highly cumbersome process that does not respect the user's time and resources.</li>
<li>Portable identities are very desirable but will take time to materialise.</li>
<li>P2P Matrix depends on a portable identity mechanism and is further away in the future.</li>
</ul>
<p>As you can see, we at the Foundation need to strike a balance as we pursue goals that are occasionally in tension with one another, and the Matrix.org homeserver is a prime example. We are committed both to making Matrix more accessible, and to doing the work to de-center the Matrix.org homeserver.</p>
<p>You can help us achieve both: the Foundation needs your support! If you can afford to, please consider <a href="/support/">supporting us financially</a>. If you want to contribute to the Foundation’s governance, consider <a href="/membership/">becoming a member</a>.</p>
This Week in Matrix 2024-03-082024-03-08T00:00:00+00:002024-03-08T00:00:00+00:00Hubert Chathihttps://matrix.org/blog/2024/03/08/this-week-in-matrix-2024-03-08/<h2 id="matrix-live">Matrix Live</h2>
<noscript>Today's Matrix Live: <a href="https://youtube.com/watch?v=jN0AobAzeak">https://youtube.com/watch?v=jN0AobAzeak</a></noscript>
<youtube-player video-id="jN0AobAzeak"></youtube-player>
<h2 id="dept-of-status-of-matrix-face-with-th">Dept of <em>Status of Matrix</em> 🌡️</h2>
<h3 id="digital-markets-act-eu">Digital Markets Act (EU)</h3>
<p><a href="https://matrix.to/#/@matthew:matrix.org">Matthew</a> reports</p>
<blockquote>
<p>Happy DMA day everyone - here's our analysis of where messaging interoperability is at today, and where it might go in future: <a href="https://element.io/blog/the-eu-digital-markets-act-is-here/">https://element.io/blog/the-eu-digital-markets-act-is-here/</a></p>
</blockquote>
<h3 id="online-harms-act-canada">Online Harms Act (Canada)</h3>
<p><a href="https://matrix.to/#/@matthew:matrix.org">Matthew</a> announces</p>
<blockquote>
<p>more good crypto news this week from Canada: the Online Harms Act looks to be explicitly protecting end-to-end encryption and private communications - in contrast to the UK Online Safety Bill/Act. Looks like all attempts to educate around the UK OSB might have not been entirely in vain. You can see it direct from Justice Minister Arif Virani here: <a href="https://youtu.be/TjDrAlfhNAA?t=1766">https://youtu.be/TjDrAlfhNAA?t=1766</a></p>
</blockquote>
<span id="continue-reading"></span><h2 id="dept-of-spec-scroll">Dept of Spec 📜</h2>
<p><a href="https://matrix.to/#/@andrewm:element.io">Andrew Morgan (anoa)</a> announces</p>
<blockquote>
<p>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 <a href="https://spec.matrix.org/proposals">https://spec.matrix.org/proposals</a>.</p>
<h3 id="msc-status">MSC Status</h3>
<p><strong>New MSCs:</strong></p>
<ul>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4117">MSC4117: Reinstating Events (Reversible Redactions)</a></li>
</ul>
<p><strong>MSCs in Final Comment Period:</strong></p>
<ul>
<li><em>No MSCs are in FCP.</em></li>
</ul>
<p><strong>Accepted MSCs:</strong></p>
<ul>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4010">MSC4010: Push rules and account data</a></li>
</ul>
<p><strong>Closed MSCs:</strong></p>
<ul>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/1920">MSC1920: Alternative texts for stickers</a></li>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/3270">MSC3270: Symmetric megolm backup</a></li>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/2638">MSC2638: Ability for clients to request homeservers to resync device lists</a></li>
</ul>
<h3 id="spec-updates">Spec Updates</h3>
<p>Along with the typical rounds of review this week, there was a request on <a href="https://github.com/matrix-org/matrix-spec/pull/1739">https://github.com/matrix-org/matrix-spec/pull/1739</a> for client authors to voice their opinion on whether they'd be happy with deprecating the <code><font></code> tag in the spec. The tag has been dropped from the WHATWG HTML standard, and replaced by <code><span></code>. We'd like to follow this standard where possible in Matrix, though understand that many clients have not made the switch yet.</p>
<p>If you're a client developer that's particularly interested in this bit of the spec, please do join in the conversation!</p>
<h3 id="random-msc-of-the-week">Random MSC of the Week</h3>
<p>The random MSC of the week is... <a href="https://github.com/matrix-org/matrix-spec-proposals/pull/3741">MSC3741: Revealing the useful login flows to clients after a soft logout</a>!</p>
<p>This one is a real "how did we not think of that" moment. If you aren't familiar with <a href="https://spec.matrix.org/v1.9/client-server-api/#soft-logout">soft logout</a>, it's the mechanism by which the homeserver can sign out a client while hinting that it should NOT destroy the local client state (like encryption keys). This is useful for situations such as resetting your password, where you want your other devices to have to put in the password again, but don't necessary want to have to do an initial sync.</p>
<p>This MSC aims to address <a href="https://github.com/matrix-org/matrix-doc/issues/2853">this issue</a>, where upon being soft-logged out, the homeserver doesn't tell the client <em>how</em> to log in again. A homeserver can have multiple methods of logging in (via a password, SSO, etc.). Yet a user is typically only tied to one of them. Thus, if you logged in via password login, then were soft-logged out, and tried to log in again via SSO... well you'd end up with a very confused client indeed!</p>
<p>The solution is to allow access tokens that have been soft-logged out (but not yet deleted) to be provided to the <a href="https://spec.matrix.org/v1.9/client-server-api/#login">/login</a> endpoint. When the server recognises that this is a soft-logged out client, it will tell that client only the one flow that it used to login. Thus there can be no confusion.</p>
</blockquote>
<h2 id="dept-of-servers-europea">Dept of Servers 🏢</h2>
<h3 id="synapse-website">Synapse (<a href="https://github.com/matrix-org/synapse/">website</a>)</h3>
<p>Synapse is a Matrix homeserver implementation developed by Element</p>
<p><a href="https://matrix.to/#/@andrewm:element.io">Andrew Morgan (anoa)</a> says</p>
<blockquote>
<p>This week we released <a href="https://github.com/element-hq/synapse/releases/tag/v1.102.0">Synapse v1.102.0</a>. This release fixes <a href="https://github.com/element-hq/synapse/issues/16904#issuecomment-1977055249">a fairly annoying bug</a> introduced in Synapse v1.100.0 for mobile users (particularly iOS) in which notification counts were incorrect. Thanks for your patience there!</p>
<p>Other bug fixes and performance improvements as well of course. See the link above for the full changelog.</p>
</blockquote>
<h2 id="dept-of-clients-iphone">Dept of Clients 📱</h2>
<h3 id="kazv">kazv</h3>
<p><a href="https://matrix.to/#/@nannanko:tusooa.xyz">nannanko</a> announces</p>
<blockquote>
<p>kazv v0.1.1 has been released.</p>
<h3 id="full-changelog">Full Changelog</h3>
<h4 id="fixed">Fixed</h4>
<ul>
<li>Make kazv run under Windows. <a href="https://lily-is.land/kazv/kazv/-/merge%5C_requests/68">https://lily-is.land/kazv/kazv/-/merge\_requests/68</a></li>
</ul>
</blockquote>
<h3 id="schildichat-website">SchildiChat (<a href="https://schildi.chat">website</a>)</h3>
<p>SchildiChat is a fork of Element that focuses on UI changes such as message bubbles and a unified chat list for both direct messages and groups, which is a more familiar approach to users of other popular instant messengers.</p>
<p><a href="https://matrix.to/#/@spiritcroc:spiritcroc.de">SpiritCroc</a> announces</p>
<blockquote>
<p>This week, we published the first actual release of <a href="https://schildi.chat/android/next/">SchildiChat Next</a>, our fork of Element X for Android. While previously, you could already download bleeding-edge beta releases from my <a href="https://s2.spiritcroc.de/testing/fdroid/repo/">testing F-Droid repository</a>, this means we're now additionally starting to provide "stable" builds, that you can currently get either from <a href="https://schildi.chat/android/next/install-from-sc-fdroid/">my main F-Droid repository</a> or from <a href="https://play.google.com/store/apps/details?id=chat.schildi.android">Google Play</a>. (Of course, even with the introduction of "stable releases", SchildiChat Next should still be regarded as some kind of preview, while we're still missing functionality from the old client, just like Element X has not replaced the old Element client yet.) So if you prefer less frequently updated but more thoroughly tested builds, or were waiting for a Play Store release, feel free to give it a try!</p>
</blockquote>
<h3 id="nheko-website">Nheko (<a href="https://nheko-reborn.github.io">website</a>)</h3>
<p>Desktop client for Matrix using Qt and C++17.</p>
<p><a href="https://matrix.to/#/@deepbluev7:neko.dev">Nico</a> says</p>
<blockquote>
<p>While there have been lots of theming fixes with the new plasma6 themes, I guess the most interesting change is that Nheko supports intentional mentions now. This means you can explicitly select who you want to notify and who not, when sending a message. This has a lot of weird interactions with the text input, so if you find any, please report how to reproduce them, so that we can fix them!</p>
<p>With this change we should be compatible with Matrix 1.9 now, which means we bumped our maximum supported version appropriately. Before that we were stuck on 1.5, so this is basically a jump forward by a whole year! Such a small change and such a big step, one could probably make a good quote out of that one...</p>
<p>Oh, and there is a new command to make your text glitch... Don't use it... it makes you text look bad!</p>
<p>Anyway, a bit of offtopic in the end: I have seen surprisingly many mentions of people being happy with Nheko recently. I always appreciate those, so thank you for saying that out loud for me to notice!</p>
<p>Have a nice day and I hope your cake will be plentiful!</p>
</blockquote>
<h3 id="moment-website">Moment (<a href="https://mx-moment.xyz">website</a>)</h3>
<p>A Matrix client; forked from Mirage.</p>
<p><a href="https://matrix.to/#/@maze:mazie.rocks">Maze</a> says</p>
<blockquote>
<p>Release <a href="https://gitlab.com/mx-moment/moment/-/releases/v0.7.5">0.7.5</a> of the <a href="https://mx-moment.xyz/">Moment</a> client!</p>
<p>Moment gains the ability to author spoilers add reactions to messages! As usual, we are focusing on keyboard-use, so in Moment, you add reactions by replying to a message with the <code>/react</code> command. A great idea, contributed by Tim Clifford!</p>
<p>We have also finally fixed those crazy graphical glitches, previously seen in many menu/settings screens!</p>
<p>Other than that, we're just keeping up with our dependencies, so you shouldn't get compatibility issues when installing Moment on an up-to-date system.</p>
</blockquote>
<h3 id="element-x-ios-website">Element X iOS (<a href="https://github.com/vector-im/element-x-ios">website</a>)</h3>
<p>A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.</p>
<p><a href="https://matrix.to/#/@douge:matrix.org">Doug</a> announces</p>
<blockquote>
<ul>
<li>Room Filters, Mark as Favourite and Mark as Unread are finished and will be available in the next release.</li>
<li>Room Moderation features are nearing completion.</li>
<li>Auto-completion is being disabled in the message composer until we can fix the “death by scrabble“ bugs in the Rich Text Editor.</li>
<li>Legacy calls are now shown in the timeline and generate notifications.</li>
</ul>
</blockquote>
<h3 id="element-x-android-website">Element X Android (<a href="https://github.com/vector-im/element-x-android">website</a>)</h3>
<p>Android Matrix messenger application using the Matrix Rust Sdk and Jetpack Compose </p>
<p><a href="https://matrix.to/#/@jorgem:element.io">Jorge</a> reports</p>
<blockquote>
<p>Following last week's RC, version <code>0.4.5</code> of the app has been publicly released on the Play Store.</p>
<p>This week has been a really quiet one, focused on progressing through our ongoing work in several features that you can already test in the nightly version of the app:</p>
<ul>
<li>Room moderation: you should now be able to change the roles of room members and promote and demote them as needed, from a new 'Roles and permissions' section in the room details screen. Note this is behind a feature flag you'll probably have to enable.</li>
<li>It's also possible to kick, ban and unban users from a room as long as you have the right power level.</li>
<li>The work on room filters continues, and we've been focused on tweaking the performance and UX for them.</li>
<li>We're also focusing on improving the localisation of the app: we've been working <a href="https://element-hq.github.io/element-x-android/">on an tool</a> to quickly identify UI issues by comparing screenshots of the app in several languages. Please note it's under heavy development, so some parts of it may not be fully functional.</li>
</ul>
</blockquote>
<h2 id="dept-of-sdks-and-frameworks">Dept of SDKs and Frameworks 🧰</h2>
<h3 id="libkazv">Libkazv</h3>
<p><a href="https://matrix.to/#/@nannanko:tusooa.xyz">nannanko</a> reports</p>
<blockquote>
<p>libkazv v0.3.1 has been released.</p>
<h3 id="full-changelog-1">Full Changelog</h3>
<h4 id="fixed-1">Fixed</h4>
<ul>
<li>Make it build under windows. <a href="https://lily-is.land/kazv/libkazv/-/merge%5C_requests/68">https://lily-is.land/kazv/libkazv/-/merge\_requests/68</a></li>
</ul>
</blockquote>
<h3 id="matrix-rust-sdk">Matrix Rust SDK</h3>
<p><a href="https://matrix.to/#/@benjib:element.io">bnjbvr</a> says</p>
<blockquote>
<ul>
<li>It's now possible to get the unstable features of a server with <code>Client::unstable_features()</code>. Thanks to @hanadi92 for the patch!</li>
<li>One can now set a state store value without loading and returning the previous one. Thanks ben for the patch.</li>
<li>The UI Timeline now supports call invite events, showing such event as the latest room event too, if applicable.</li>
<li>The team keeps on focusing on the event cache, with PRs to extract the back-pagination logic from the UI timeline into the cache, and more preliminary work on storing events efficiently in memory and on disk.</li>
<li>and as usual, a few changes to the FFI, doc updates, and other goodies.</li>
</ul>
</blockquote>
<h3 id="rory-libmatrix-net-8-matrix-bot-client-library-sdk">Rory&::LibMatrix (.NET 8 matrix bot/client library/SDK)</h3>
<p><a href="https://matrix.to/#/@emma:rory.gay">Emma [it/its]</a> reports</p>
<blockquote>
<p>Not too much to report on, mainly some work on HomeserverEmulator and light internal restructuring</p>
<h2 id="changes">Changes</h2>
<ul>
<li>Restructured layout of git repos on <a href="https://cgit.rory.gay/matrix">cgit</a></li>
<li>Fixed all submodule references</li>
<li>Changed all submodules to clone over HTTPS rather than SSH (also using cgit.rory.gay where relevant)</li>
<li>Fixed READMEs for multiple repositories</li>
</ul>
<h2 id="additions">Additions</h2>
<ul>
<li>Added reference constants for error codes (You don't have to remember them off the top of your head anymore!)</li>
<li>Added a null check when trying to access event type with type=null</li>
<li>Changed <code>origin_server_ts</code> to be <code>long</code> instead of <code>ulong</code> (dotnet represents unix time as long)</li>
<li>HSE: merged state and timeline internally (where state is last event per type and state key, and statekey != null)</li>
<li>HSE: started implementing media repository</li>
<li>HSE: incremental sync should now work</li>
<li>HSE: explicit nulls should no longer be written on responses</li>
<li>HSE: non-implemented endpoints return <code>M_UNRECOGNISED</code> rather than <code>M_NOT_FOUND</code></li>
</ul>
<p><em><strong>And, as always:</strong></em></p>
<ul>
<li>The code is available at <a href="https://cgit.rory.gay/matrix/LibMatrix.git">cgit.rory.gay</a>!
<ul>
<li>All contributions are more than welcome, be it documentation, code, anything! Perhaps, example usecases, bots, ...?</li>
</ul>
</li>
<li>Discussion, suggestions and ideas are welcome in <a href="https://matrix.to/#/#libmatrix:rory.gay">#libmatrix:rory.gay</a> (Space: <a href="https://matrix.to/#/#mru-space:rory.gay">#mru-space:rory.gay</a>)</li>
<li>Got a cool project that you're working on and want to share, using LibMatrix? Be sure to let me know, I'd love to hear all about it!</li>
</ul>
</blockquote>
<h3 id="trixnity-website">Trixnity (<a href="https://gitlab.com/trixnity/trixnity">website</a>)</h3>
<p>Multiplatform Kotlin SDK for Matrix</p>
<p><a href="https://matrix.to/#/@benedict:imbitbu.de">Benedict</a> reports</p>
<blockquote>
<p>Another small Trixnity release:</p>
<p>features:</p>
<ul>
<li>added more Regex</li>
<li>added <code>m.location</code></li>
</ul>
<p>bugfixes:</p>
<ul>
<li>fix that <code>Room::previousRoomId</code> is not set correctly on invite</li>
</ul>
</blockquote>
<h2 id="dept-of-ops">Dept of Ops 🛠</h2>
<h3 id="matrix-docker-ansible-deploy-website">matrix-docker-ansible-deploy (<a href="https://github.com/spantaleev/matrix-docker-ansible-deploy">website</a>)</h3>
<p>Matrix server setup using Ansible and Docker</p>
<p><a href="https://matrix.to/#/@slavi:devture.com">Slavi</a> says</p>
<blockquote>
<p>Thanks to <a href="https://github.com/FSG-Cat">FSG-Cat</a>, <a href="https://github.com/spantaleev/matrix-docker-ansible-deploy/">matrix-docker-ansible-deploy/</a> can now install <a href="https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-playbook-appservice-draupnir-for-all.md">Draupnir for all</a> (aka multi-instance Draupnir running in appservice mode).</p>
<p>This is an alternative to <a href="https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-playbook-bot-draupnir.md">running Draupnir in bot mode</a>, which is still supported by the playbook.</p>
</blockquote>
<h2 id="matrix-federation-stats">Matrix Federation Stats</h2>
<p><a href="https://matrix.to/#/@aine:etke.cc">Aine</a> says</p>
<blockquote>
<p>collected by <a href="https://matrixrooms.info">MatrixRooms.info</a> - an <a href="https://gitlab.com/etke.cc/mrs/api">MRS</a> instance by <a href="https://etke.cc?utm_source=twim&utm_medium=matrix&utm_campaign=federation-stats">etke.cc</a></p>
<p>As of today, <code>9511</code> Matrix federateable servers have been discovered by matrixrooms.info, <code>2808</code> (<code>29.5%</code>) of them are publishing their rooms directory over federation.
The published directories contain <code>20008</code> rooms.</p>
<p>Stats timeline is available on <a href="https://matrixrooms.info/stats">MatrixRooms.info/stats</a></p>
<p><a href="https://gitlab.com/etke.cc/mrs/api/-/blob/main/docs/indexing.md">How to add your server</a> | <a href="https://gitlab.com/etke.cc/mrs/api/-/blob/main/docs/deindexing.md">How to remove your server</a></p>
</blockquote>
<h2 id="that-s-all-i-know">That's all I know</h2>
<p>See you next week, and be sure to stop by <a href="https://matrix.to/#/#twim:matrix.org">#twim:matrix.org</a> with your updates!</p>
This Week in Matrix 2024-03-012024-03-01T19:30:00+00:002024-03-01T19:30:00+00:00Thibhttps://matrix.org/blog/2024/03/01/this-week-in-matrix-2024-03-01/<h2 id="matrix-live">Matrix Live</h2>
<noscript>Today's Matrix Live: <a href="https://youtube.com/watch?v=n_M_ktX2sjQ ">https://youtube.com/watch?v=n_M_ktX2sjQ </a></noscript>
<youtube-player video-id="n_M_ktX2sjQ "></youtube-player>
<h2 id="dept-of-status-of-matrix-face-with-th">Dept of <em>Status of Matrix</em> 🌡️</h2>
<p><a href="https://matrix.to/#/@josh:josh.tel">Josh Simmons</a> announces</p>
<blockquote>
<p>This week Thib published the second installment in our roadmap blog post series: <a href="/blog/2024/02/opening-up-foundation/">Opening up the Foundation</a>. This post dives into the work we’re doing this year to increase community participation and open governance, looking even beyond the Governing Board to things like office hours, working groups, and fiscal sponsorship.</p>
<p>If you missed the first post in the series, check it out: <a href="/blog/2024/01/2024-roadmap-and-fundraiser/">A roadmap and appeal for help from The Matrix.org Foundation</a>.</p>
<p>We’re grateful for the level of <a href="/support/">support we’ve received</a> as we share more about the Foundation’s financial needs and the work we are doing in service of the ecosystem. Many dozens of individuals have donated and joined as Individual Members, and we’ve more than doubled the number of organizational members! Huge thanks to Beeper, Fairkom, Famedly, Fractal Networks, Gematik, IndieHosters, and XWiki.</p>
<p>We still have a long way to go, and critically <a href="/membership/">we need larger organizations to step up to the plate</a>, but the early results are encouraging. Onwards and upwards! 🚀</p>
</blockquote>
<p><a href="https://matrix.to/#/@matthew:matrix.org">Matthew</a> reports</p>
<blockquote>
<p>There's a huge number of Matrix projects active in the German public sector, and the team at Element has had a go at mapping them out and providing a guide to what's going on, how they relate to each other, and to generally try to explain why Germany is the leading country for digital sovereignty - including self-sovereign secure communication with Matrix: <a href="https://element.io/matrix-in-germany">https://element.io/matrix-in-germany</a></p>
</blockquote>
<span id="continue-reading"></span><h2 id="dept-of-spec-scroll">Dept of Spec 📜</h2>
<p><a href="https://matrix.to/#/@andrewm:element.io">Andrew Morgan (anoa)</a> says</p>
<blockquote>
<p>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 <a href="https://spec.matrix.org/proposals">https://spec.matrix.org/proposals</a>.</p>
<h3 id="msc-status">MSC Status</h3>
<p><strong>New MSCs:</strong></p>
<ul>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4115">MSC4115: membership information on events</a></li>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4114">MSC4114: Matrix as a password manager</a></li>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4113">MSC4113: Image hashes in Policy Lists</a></li>
</ul>
<p><strong>MSCs in Final Comment Period:</strong></p>
<ul>
<li><em>No MSCs are in FCP.</em></li>
</ul>
<p><strong>Accepted MSCs:</strong></p>
<ul>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4077">MSC4077: Improved process for handling deprecated HTML features</a></li>
</ul>
<p><strong>Closed MSCs:</strong></p>
<ul>
<li><em>No MSCs were closed/rejected this week.</em></li>
</ul>
<h3 id="spec-update">Spec Update</h3>
<p>Once again, a general call for help for folks to write up some spec PRs - aka turning our <a href="https://github.com/orgs/matrix-org/projects/31#column-19200628">current list of accepted MSCs</a> into actual PR against the spec itself. </p>
<p>Huge thanks to <a href="https://github.com/zecakeh">@zecakeh</a> for writing several of these over the past week. The number left is dropping rapidly! Likewise to others that have been sending general fixes and updates to the spec as well.</p>
<p>If that sounds like something you'd like to help out with, even if you've never touched the spec before, please consider writing one up! You can see examples of Spec PRs here, and can join <a href="https://matrix.to/#/#matrix-docs:matrix.org">#matrix-docs:matrix.org</a> for help 🙂</p>
<h3 id="random-msc-of-the-week">Random MSC of the Week</h3>
<p>The random MSC of the week is... <a href="https://github.com/matrix-org/matrix-spec-proposals/pull/2872">MSC2872: Move the widget title to the top level of the definition</a>!</p>
<p>This is a very simple maintenance MSC which moves the "title" property from within the "data" property to the top-level of a widget definition (a <code>m.widget</code> state event). The reasoning is simply that the "name" property is also top-level in the widget definition, and it makes sense to put those by each other.</p>
</blockquote>
<h2 id="dept-of-servers-europea">Dept of Servers 🏢</h2>
<p><a href="https://matrix.to/#/@mtrnord:midnightthoughts.space">MTRNord</a> says</p>
<blockquote>
<p>ejabberd seems to now support Matrix federation <a href="https://www.process-one.net/blog/ejabberd-24-02/">https://www.process-one.net/blog/ejabberd-24-02/</a></p>
</blockquote>
<h3 id="synapse-website">Synapse (<a href="https://github.com/matrix-org/synapse/">website</a>)</h3>
<p>Synapse is a Matrix homeserver implementation developed by the matrix.org core team</p>
<p><a href="https://matrix.to/#/@andrewm:element.io">Andrew Morgan (anoa)</a> announces</p>
<blockquote>
<p>The final release of Synapse v1.102.0 was delayed this week while the team had limited bandwidth, sorry! Expect a release next week at the usual time.</p>
</blockquote>
<h2 id="dept-of-clients-iphone">Dept of Clients 📱</h2>
<p><a href="https://matrix.to/#/@nannanko:tusooa.xyz">nannanko</a> says</p>
<blockquote>
<p>kazv v0.1.0 has been released.</p>
<p>kazv v0.1.0 adds a lot of features, fixes some bugs. We believe kazv has all the basic features that a matrix client and instant messaging app should have.</p>
<h2 id="full-changelog">Full Changelog</h2>
<h3 id="added">Added</h3>
<ul>
<li>Use fluent for translations. <a href="https://lily.kazv.moe/kazv/kazv/-/tree/tusooa/3-fluent">https://lily.kazv.moe/kazv/kazv/-/tree/tusooa/3-fluent</a></li>
<li>Support read and save client state. <a href="https://lily.kazv.moe/kazv/kazv/-/merge_requests/2">https://lily.kazv.moe/kazv/kazv/-/merge_requests/2</a></li>
<li>Support common event types. <a href="https://lily.kazv.moe/kazv/kazv/-/merge_requests/3">https://lily.kazv.moe/kazv/kazv/-/merge_requests/3</a></li>
<li>Add send message shortcut. <a href="https://lily.kazv.moe/kazv/kazv/-/merge_requests/7">https://lily.kazv.moe/kazv/kazv/-/merge_requests/7</a></li>
<li>Support auto-discovery and provide better login error messages. <a href="https://lily.kazv.moe/kazv/kazv/-/merge_requests/9">https://lily.kazv.moe/kazv/kazv/-/merge_requests/9</a></li>
<li>Add translations for Hindi(hi) <a href="https://lily-is.land/kazv/kazv/-/merge_requests/11">https://lily-is.land/kazv/kazv/-/merge_requests/11</a></li>
<li>Use room heroes when there is no explicit room name. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/15">https://lily-is.land/kazv/kazv/-/merge_requests/15</a></li>
<li>Add media file menu for download. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/14">https://lily-is.land/kazv/kazv/-/merge_requests/14</a></li>
<li>Add a shortcut editor. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/17">https://lily-is.land/kazv/kazv/-/merge_requests/17</a></li>
<li>Add UI for sending media files, controlling pause and cancel, and display the progress in real time. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/18">https://lily-is.land/kazv/kazv/-/merge_requests/18</a></li>
<li>Use QtNetwork for job handling instead of libkazvjob. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/21">https://lily-is.land/kazv/kazv/-/merge_requests/21</a></li>
<li>Implement creating and joining rooms. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/19">https://lily-is.land/kazv/kazv/-/merge_requests/19</a></li>
<li>Add the ability to see users' devices and manage trust level. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/23">https://lily-is.land/kazv/kazv/-/merge_requests/23</a></li>
<li>Support local echo. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/25">https://lily-is.land/kazv/kazv/-/merge_requests/25</a></li>
<li>Support redaction. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/28">https://lily-is.land/kazv/kazv/-/merge_requests/28</a></li>
<li>Implement profile settings. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/30">https://lily-is.land/kazv/kazv/-/merge_requests/30</a></li>
<li>Support viewing event source. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/32">https://lily-is.land/kazv/kazv/-/merge_requests/32</a></li>
<li>Display hero avatar if it is a two-person room. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/34">https://lily-is.land/kazv/kazv/-/merge_requests/34</a></li>
<li>Support typing status. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/33">https://lily-is.land/kazv/kazv/-/merge_requests/33</a></li>
<li>Support room tagging. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/35">https://lily-is.land/kazv/kazv/-/merge_requests/35</a></li>
<li>Allow paginate back in the timeline. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/38">https://lily-is.land/kazv/kazv/-/merge_requests/38</a></li>
<li>Handle incoming invites. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/39">https://lily-is.land/kazv/kazv/-/merge_requests/39</a></li>
<li>Support displaying notifications for incoming messages. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/40">https://lily-is.land/kazv/kazv/-/merge_requests/40</a></li>
<li>Support leaving room. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/41">https://lily-is.land/kazv/kazv/-/merge_requests/41</a></li>
<li>Support sending and receiving encrypted media files. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/20">https://lily-is.land/kazv/kazv/-/merge_requests/20</a></li>
<li>Allow selecting message content. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/44">https://lily-is.land/kazv/kazv/-/merge_requests/44</a></li>
<li>Implement room member list view. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/45">https://lily-is.land/kazv/kazv/-/merge_requests/45</a></li>
<li>Handle message replies. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/48">https://lily-is.land/kazv/kazv/-/merge_requests/48</a></li>
<li>Implement reactions. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/50">https://lily-is.land/kazv/kazv/-/merge_requests/50</a></li>
<li>Use libkazv push rules to determine whether to notify for an event. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/51">https://lily-is.land/kazv/kazv/-/merge_requests/51</a></li>
<li>Implement displaying and changing users' power levels. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/52">https://lily-is.land/kazv/kazv/-/merge_requests/52</a></li>
<li>Add the ability to ban and unban user. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/54">https://lily-is.land/kazv/kazv/-/merge_requests/54</a></li>
<li>Sort rooms by descending order of latest event timestamp. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/57">https://lily-is.land/kazv/kazv/-/merge_requests/57</a></li>
<li>Implement kicking user. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/58">https://lily-is.land/kazv/kazv/-/merge_requests/58</a></li>
<li>Improve event view layout. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/62">https://lily-is.land/kazv/kazv/-/merge_requests/62</a></li>
<li>Install kazv logo to icon directory. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/63">https://lily-is.land/kazv/kazv/-/merge_requests/63</a></li>
<li>Implement inviting user. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/65">https://lily-is.land/kazv/kazv/-/merge_requests/65</a></li>
<li>Support inviting users when creating a room. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/66">https://lily-is.land/kazv/kazv/-/merge_requests/66</a></li>
</ul>
<h3 id="fixed">Fixed</h3>
<ul>
<li>Fix scroll-to-top when receiving new events. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/26">https://lily-is.land/kazv/kazv/-/merge_requests/26</a></li>
<li>Fix timeline efficiency. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/37">https://lily-is.land/kazv/kazv/-/merge_requests/37</a></li>
<li>Use proper style and l10n for event fallback. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/55">https://lily-is.land/kazv/kazv/-/merge_requests/55</a></li>
<li>Use debounce when setting local draft. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/56">https://lily-is.land/kazv/kazv/-/merge_requests/56</a></li>
<li>Fix AppImage build due to missing KNotification qml modules. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/59">https://lily-is.land/kazv/kazv/-/merge_requests/59</a></li>
<li>Put primary event loop back to separate thread. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/60">https://lily-is.land/kazv/kazv/-/merge_requests/60</a></li>
<li>Fix crash when timeline of a room is empty. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/61">https://lily-is.land/kazv/kazv/-/merge_requests/61</a></li>
</ul>
<h3 id="removed">Removed</h3>
<ul>
<li>Remove useless use of tabs on main page. <a href="https://lily-is.land/kazv/kazv/-/merge_requests/34">https://lily-is.land/kazv/kazv/-/merge_requests/34</a></li>
</ul>
</blockquote>
<h3 id="neochat-website">Neochat (<a href="https://invent.kde.org/network/neochat">website</a>)</h3>
<p>A client for matrix, the decentralized communication protocol</p>
<p><a href="https://matrix.to/#/@tobiasfella:kde.org">Tobias Fella</a> reports</p>
<blockquote>
<h2 id="neochat-24-02-was-released">NeoChat 24.02 was released</h2>
<p>This week, we have released version 24.02 of NeoChat. On a technical side, the most notable change is the migration from Qt5 to Qt6, though as an end user, you shouldn't notice a significant difference here. On the feature side, this release brings massively improved support for spaces and in-app account registration and deactivation. It also brings support for showing reactions based on custom emojis, for receiving push notifications using KUnifiedPush (not enabled by default, for now), and for forwarding messages to other rooms. You can now also quickly share contacts with other users by showing a QR code linking people's matrix ID. We have fixed <del>my favorite</del> the most annoying bug NeoChat has, where NeoChat would load forever if it fails to connect to your account, and finally, we have implemented the most requested feature: being able to switch to a dark mode when running on Android. But that's not all! There's also a ton of other improvements, fixes, and features - far too many to list here.</p>
<p>The release will be out very soon on Flathub. If your distro doesn't have it yet, it probably will, some time soon. <del>If it doesn't, go bother them about it :)</del>. The windows store should also receive the update in the near future.</p>
<h2 id="what-s-next">What's next?</h2>
<p>Since the release, we haven't been idle, of course.
Notable features merged since the last update include:</p>
<ul>
<li>The possibility to sort the room list alphabetically (Implemented by James)</li>
<li>Improvements to message rendering, most notably with amazing syntax highlighting for code blocks (also implemented by James)</li>
<li>Improvements to the developer tools, like showing account data and a nicer list for state events (implemented by me, Tobias)</li>
<li>Fixed sharing with Plasma's Purpose system (implemented by me)</li>
<li>Audio and Video messages now stopping when a different message starts playing (implemented by me)</li>
</ul>
<p>Still under review are support for sharing messages to other applications using <a href="https://invent.kde.org/frameworks/purpose">Purpose</a> and a built-in QR code scanner for scanning contact info, room links, etc.
Finally, as a sneak peak into the future: We might also currently be experimenting with LiveKit based video calls 🤫</p>
<p><img src="/blog/img/neochat-20240301.png" alt="" /></p>
</blockquote>
<h3 id="fluffychat-website">FluffyChat (<a href="https://fluffychat.im">website</a>)</h3>
<p><a href="https://matrix.to/#/@krille:janian.de">Krille-chan</a> reports</p>
<blockquote>
<p>FluffyChat v1.18.0 has been released 🥳</p>
<p>FluffyChat v1.18.0 adds some new features, fixes a lot of bugs and improves the notifications on Android by showing them in a conversations style. Voice messages got the ability to change the play speed and the status header is now optional.</p>
<h3 id="full-changelog-1">Full Changelog</h3>
<ul>
<li>feat: Add speed button for audioplayer (krille-chan)</li>
<li>feat: enhanced send video functionality by adding toggle send original (Mubeen Rizvi)</li>
<li>feat: add dialog to hide presence list with long-press (Marcus Hoffmann)</li>
<li>feat: Add notification shortcuts to android (krille-chan)</li>
<li>feat: make showing user presence info optional (Marcus Hoffmann)</li>
<li>feat: Open chat on shortcut click on android (krille-chan)</li>
<li>fix: BuildContext crash when joining room (krille-chan)</li>
<li>fix: Export session (krille-chan)</li>
<li>fix: Notifications open sometimes automatically on android (krille-chan)</li>
<li>fix: Open room after join (krille-chan)</li>
<li>fix: Open room by notification happened multiple times (krille-chan)</li>
<li>fix: Open room links with event id (krille-chan)</li>
<li>fix: properly initialize hideUnimportantStateEvents setting (Marcus Hoffmann)</li>
<li>fix: Remove status msg not changeable from old cache (krille-chan)</li>
<li>fix: use correct icons for chat pin/unpin (Marcus Hoffmann)</li>
<li>fix: use correct icons for mark read/unread action (Marcus Hoffmann)</li>
<li>build: Update Linux build files (krille-chan)</li>
<li>build: Update to Flutter 3.19.1 (Krille)</li>
<li>chore: Add more information to Person object in android notifications (krille-chan)</li>
<li>chore: Thumbnail follow up for notifications (Krille)</li>
<li>refactor: Better download UX with file picker for android and iOS (krille-chan)</li>
<li>refactor: Use hashcode instead of string to id workaround for notifications (Krille)</li>
<li>Added translation using Weblate (Belarusian) (kopatych)</li>
<li>Added translation using Weblate (Interlingua) (Software In Interlingua)</li>
<li>Translated using Weblate (Arabic) (Rex_sa)</li>
<li>Translated using Weblate (Basque) (xabirequejo)</li>
<li>Translated using Weblate (Chinese (Simplified)) (Poesty Li)</li>
<li>Translated using Weblate (Chinese (Simplified)) (大王叫我来巡山)</li>
<li>Translated using Weblate (Estonian) (Priit Jõerüüt)</li>
<li>Translated using Weblate (Galician) (josé m)</li>
<li>Translated using Weblate (German) (Benjamin Wagner)</li>
<li>Translated using Weblate (Greek) (Benjamin Wagner)</li>
<li>Translated using Weblate (Russian) (Benjamin Wagner)</li>
<li>Translated using Weblate (Russian) (v1s7)</li>
<li>Translated using Weblate (Ukrainian) (Ihor Hordiichuk)</li>
<li>Translated using Weblate (Ukrainian) (Сергій)</li>
</ul>
</blockquote>
<h3 id="element-x-ios-website">Element X iOS (<a href="https://github.com/vector-im/element-x-ios">website</a>)</h3>
<p>A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.</p>
<p><a href="https://matrix.to/#/@stefan.ceriu:matrix.org">Ștefan</a> announces</p>
<blockquote>
<p>Happy <a href="https://en.wikipedia.org/wiki/M%C4%83r%C8%9Bi%C8%99or">Mărțișor</a> day, everybody! 💐</p>
<p>Element X <code>1.5.10</code> has been submitted to AppStore review and improves how your homeserver identifies the latest iPhones and Mac and makes errors more helpful when first configuring a homeserver. Plus tapping on your avatar in the Home Screen will go straight to the settings screen.</p>
<p>See the full release notes here: <a href="https://github.com/element-hq/element-x-ios/releases/tag/1.5.9">https://github.com/element-hq/element-x-ios/releases/tag/1.5.9</a></p>
<p>We're also making good progress on new features:</p>
<ul>
<li><a href="https://github.com/element-hq/element-x-ios/pull/2501">Kicking and banning members</a></li>
<li><a href="https://github.com/element-hq/element-x-ios/pull/2504">Managing blocked users</a></li>
<li><a href="https://github.com/element-hq/element-x-ios/pull/2505">Room roles and permissions</a></li>
</ul>
</blockquote>
<h3 id="element-x-android-website">Element X Android (<a href="https://github.com/vector-im/element-x-android">website</a>)</h3>
<p>Android Matrix messenger application using the Matrix Rust Sdk and Jetpack Compose </p>
<p><a href="https://matrix.to/#/@benoit.marty:matrix.org">benoit</a> announces</p>
<blockquote>
<p>The version 0.4.5 has been published on the testing track. Changelog: <a href="https://github.com/element-hq/element-x-android/releases/tag/v0.4.5">https://github.com/element-hq/element-x-android/releases/tag/v0.4.5</a>. Among new things: mark rooms as favorite, add some moderation tool to rooms (still not 100% implemented), add a gesture to swipe to dismiss the media viewer.</p>
<p>Now the team is working on moderation actions like banning members, blocking / unblocking people. We are also improving the overall quality of the translations. And we have started to work on login using QR code, for a very fast way to log in a device using an existing session, which will also take care of accessing the message history without any other user actions.</p>
<p>We are also iterating on the room list filtering, which will be soon available on production.</p>
</blockquote>
<h2 id="dept-of-voip-call-me-hand">Dept of VoIP 🤙</h2>
<h3 id="matrixrtc-calls">MatrixRTC calls</h3>
<p><a href="https://matrix.to/#/@toger5:matrix.org">Timo K.</a> says</p>
<blockquote>
<p>Hello from the VoIP team,
with matrixRTC recently reaching the point where <a href="https://matrix.org/blog/2024/01/26/this-week-in-matrix-2024-01-26/#continue-reading">there are multiple clients supporting it</a>. There is lots of momentum and motivation to make it well integrated and joyful to use.</p>
<h2 id="embedding">Embedding</h2>
<p>Lot of work happened on improving and finalizing the embedding of element call into element web.
We want it to be seamless and stable.
Some of the more visible changes of the last weeks are:</p>
<ul>
<li>EC will now use the same theme as EW and thanks to compound we already have a decent looking light theme for Element Call.</li>
<li>There is a new hidden feature to skip the lobby by pressing the <strong>shift key while clicking</strong> on any of the call buttons.</li>
<li>In embedded mode element call is now using the same compound themed lobby that is also used in the stand alone app.</li>
</ul>
<p>We are getting closer and closer to make matrixRTC calls the new standard.</p>
<h2 id="external-conference-links">External conference links</h2>
<p>Besides the integration work we are building a way to invite external non-matrix users into a call.
In the future it should be possible to start a call in Element Web, create a link to that call and share that link. This url will
bring non matrix users to an instance of the Element Call single page application where they get a temporal matrix account and seamlessly
join the conference. (This is already working in an mvp fashion, Feel invited to watch the demo in this weeks matrix live)</p>
<p>Another small addition which might be hard to find, hence is worth mentioning, is that one can now change if a video is rendered as "Fit to Frame" (cropped) or without cropping which is very useful if someone is using a portrait video feed. (see the light themed screenshot)</p>
<p>For anyone eager to try calls over matrixRTC themselves, it is currently supported on EX and <a href="https://develop.element.io">develop.element.io</a> (If "new group call experince" is activated in the labs settings)
<img src="/blog/img/VDUgvqlaexeedGULHsVGKNXO.png" alt="" />
<img src="/blog/img/kcBIwpOHsdunmkBelWdQBBtC.png" alt="" /></p>
</blockquote>
<h2 id="dept-of-sdks-and-frameworks">Dept of SDKs and Frameworks 🧰</h2>
<h3 id="matrix-rust-sdk-website">matrix-rust-sdk (<a href="https://github.com/matrix-org/matrix-rust-sdk">website</a>)</h3>
<p>Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM.</p>
<p><a href="https://matrix.to/#/@benjib:element.io">bnjbvr</a> says</p>
<blockquote>
<p>We're back to a regular schedule! This week, we've had the following improvements:</p>
<ul>
<li>numerous additions and enhancements to the FFI layer,</li>
<li>work is ongoing on the Event Cache, including notably a novel data structure to efficiently hold events in memory and on disk ("linked chunks"),</li>
<li>a new debug TUI tool using the UI crate features has been introduced, <code>multiverse</code>, to help with debugging client issues.</li>
<li>work on new APIs to search the room directory has started!</li>
</ul>
</blockquote>
<h3 id="rory-libmatrix-net-8-matrix-bot-client-library-sdk">Rory&::LibMatrix (.NET 8 matrix bot/client library/SDK)</h3>
<p><a href="https://matrix.to/#/@emma:rory.gay">Emma [it/its]</a> announces</p>
<blockquote>
<p>Not too much to report on, mainly some work on HomeserverEmulator</p>
<h2 id="additions">Additions</h2>
<ul>
<li>Added some E2EE/key storage related models</li>
<li>HSE: Added initial sync and /initialSync support</li>
<li>HSE: Partially implemented key uploads</li>
<li>HSE: Report supporting all documented login flows (implementation pending)</li>
<li>HSE: Implemented basic room creation</li>
<li>HSE: Split up some controllers (eg. User/Room ones)</li>
</ul>
<p><em><strong>And, as always:</strong></em></p>
<ul>
<li>The code is available at <a href="https://cgit.rory.gay/matrix/LibMatrix.git">cgit.rory.gay</a>!
<ul>
<li>All contributions are more than welcome, be it documentation, code, anything! Perhaps, example usecases, bots, ...?</li>
</ul>
</li>
<li>Discussion, suggestions and ideas are welcome in <a href="https://matrix.to/#/#libmatrix:rory.gay">#libmatrix:rory.gay</a> (Space: <a href="https://matrix.to/#/#mru-space:rory.gay">#mru-space:rory.gay</a>)</li>
<li>Got a cool project that you're working on and want to share, using LibMatrix? Be sure to let me know, I'd love to hear all about it!</li>
</ul>
</blockquote>
<p><a href="https://matrix.to/#/@nannanko:tusooa.xyz">nannanko</a> reports</p>
<blockquote>
<p>libkazv v0.3.0 has been released.</p>
<p>libkazv v0.3.0 adds a lot of features, fixes many bugs.</p>
<h2 id="full-changelog-2">Full Changelog</h2>
<h3 id="added-1">Added</h3>
<ul>
<li>Error handling for async functions. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/21">https://lily-is.land/kazv/libkazv/-/merge_requests/21</a></li>
<li>Add device management functions to Client. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/29">https://lily-is.land/kazv/libkazv/-/merge_requests/29</a></li>
<li>Allow Sdk::createSecondaryRoot() to have its initial value. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/31">https://lily-is.land/kazv/libkazv/-/merge_requests/31</a></li>
<li>Add local echo support. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/33">https://lily-is.land/kazv/libkazv/-/merge_requests/33</a></li>
<li>Recalculate which megolm sessions need to be rotated after changing trust level settings. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/34">https://lily-is.land/kazv/libkazv/-/merge_requests/34</a></li>
<li>Implement redactions. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/36">https://lily-is.land/kazv/libkazv/-/merge_requests/36</a></li>
<li>Update to csapi v1.3. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/40">https://lily-is.land/kazv/libkazv/-/merge_requests/40</a></li>
<li>Add room tagging functionality. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/41">https://lily-is.land/kazv/libkazv/-/merge_requests/41</a></li>
<li>Implement getting member events of typing users in a room. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/42">https://lily-is.land/kazv/libkazv/-/merge_requests/42</a></li>
<li>Implement getting and setting account data. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/44">https://lily-is.land/kazv/libkazv/-/merge_requests/44</a></li>
<li>Handle invite state. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/46">https://lily-is.land/kazv/libkazv/-/merge_requests/46</a></li>
<li>Add getter for individual room message. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/47">https://lily-is.land/kazv/libkazv/-/merge_requests/47</a></li>
<li>Add libkazvtestfixtures library. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/51">https://lily-is.land/kazv/libkazv/-/merge_requests/51</a></li>
<li>Add cursor for joined member events. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/54">https://lily-is.land/kazv/libkazv/-/merge_requests/54</a></li>
<li>Track event relationships. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/55">https://lily-is.land/kazv/libkazv/-/merge_requests/55</a></li>
<li>Implement a minimum set of push rules. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/58">https://lily-is.land/kazv/libkazv/-/merge_requests/58</a></li>
<li>Implement power levels handling. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/59">https://lily-is.land/kazv/libkazv/-/merge_requests/59</a></li>
<li>Add functions about get member ids and events by membership. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/62">https://lily-is.land/kazv/libkazv/-/merge_requests/62</a></li>
<li>Make Client::stopSyncing() return a Promise. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/64">https://lily-is.land/kazv/libkazv/-/merge_requests/64</a></li>
<li>Add preset param to Client::createRoom(). <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/66">https://lily-is.land/kazv/libkazv/-/merge_requests/66</a></li>
</ul>
<h3 id="fixed-1">Fixed</h3>
<ul>
<li>Make compile under gcc12. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/23">https://lily-is.land/kazv/libkazv/-/merge_requests/23</a></li>
<li>Will now compile with Catch2-3. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/24">https://lily-is.land/kazv/libkazv/-/merge_requests/24</a></li>
<li>Fix Room::encrypted not implemented. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/25">https://lily-is.land/kazv/libkazv/-/merge_requests/25</a></li>
<li>Fix joining room with room alias. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/28">https://lily-is.land/kazv/libkazv/-/merge_requests/28</a></li>
<li>Do not run tests that require Internet in pipeline. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/35">https://lily-is.land/kazv/libkazv/-/merge_requests/35</a></li>
<li>Get the correct room avatar when set. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/43">https://lily-is.land/kazv/libkazv/-/merge_requests/43</a></li>
<li>Fix pagination. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/45">https://lily-is.land/kazv/libkazv/-/merge_requests/45</a></li>
<li>Make work with cpr-1.10. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/48">https://lily-is.land/kazv/libkazv/-/merge_requests/48</a></li>
<li>Fix log spamming and session key revealing. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/50">https://lily-is.land/kazv/libkazv/-/merge_requests/50</a></li>
<li>Fix store test with ASAN. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/52">https://lily-is.land/kazv/libkazv/-/merge_requests/52</a></li>
<li>Fix AES256CTRDesc use-after-free error. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/53">https://lily-is.land/kazv/libkazv/-/merge_requests/53</a></li>
<li>Avoid creation of multiple room cursors. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/57">https://lily-is.land/kazv/libkazv/-/merge_requests/57</a></li>
<li>Minimize the copying of Crypto to improve performance. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/61">https://lily-is.land/kazv/libkazv/-/merge_requests/61</a></li>
<li>Include <code><random></code> properly in random-generator.hpp. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/63">https://lily-is.land/kazv/libkazv/-/merge_requests/63</a></li>
<li>Improve reducer performance by using immer::diff to compare device lists. <a href="https://lily-is.land/kazv/libkazv/-/merge_requests/65">https://lily-is.land/kazv/libkazv/-/merge_requests/65</a></li>
</ul>
</blockquote>
<h2 id="dept-of-events-and-talks">Dept of Events and Talks 🗣️</h2>
<h3 id="matrix-user-meetup-berlin">Matrix User Meetup Berlin</h3>
<p><a href="https://matrix.to/#/@saces:c-base.org">saces</a> says</p>
<blockquote>
<p>Next Matrix user meetup 6.3.2024, 8 pm @ c-base</p>
<p>Meet other matrix users, chat about Matrix, the rest, and everything else, discuss your Matrix ideas, sign each other in persona, and maybe spice the evening with a good mate or beer.</p>
<p>Every first Wednesday of the month in the c-base at 8pm ('til the next pandemic).</p>
<p>Matrix room: <a href="https://matrix.to/#/#mumb:c-base.org">#mumb:c-base.org</a></p>
</blockquote>
<h2 id="dept-of-interesting-projects">Dept of Interesting Projects 🛰️</h2>
<h3 id="acter">Acter</h3>
<p><a href="https://matrix.to/#/@ben:acter.global">ben</a> reports</p>
<blockquote>
<h2 id="acter-1-24-2229-brings-muscle-actionable-updates-mega">Acter 1.24.2229 brings 💪 Actionable Updates 📣</h2>
<p>Yesterday's release of Acter, v1.24.2229 (available on the <a href="https://apps.apple.com/us/app/acter/id6445989155">Apple Store</a> and <a href="https://play.google.com/store/apps/details?id=global.acter.a3">Google Play store</a>) brings a cleaner Events UI and several fixes on various parts of the App, but most notably 💪 Actionable Updates 📣 with push notifications in a new editor—allowing space leaders to include calls-to-actions, formatted texts with links and even videos in the updates boosted to all members. More details <a href="https://news.acter.global/acter-v1-24-2229/">including demo videos in the release blog post</a>.</p>
<h3 id="what-s-new-ama-next-week">What's New & AMA next week</h3>
<p>Or you join us for the <a href="https://us02web.zoom.us/j/9461078631?omn=82551366911">"What's New & AMA" session I will be hosting next week (Wednesday March 6th, 16h UTC) on Zoom (Meeting-ID 946 107 8631)</a>, where I will be showing the latest features and other updates we have worked and answer any questions in regards to Acter. There will be a recording made available after, so if you have a question but can't make it make sure to DM me the questions prior so we can get it answered.</p>
</blockquote>
<h2 id="dept-of-guides">Dept of Guides 🧭</h2>
<h3 id="draupnir4all">Draupnir4All</h3>
<p><a href="https://matrix.to/#/@mtrnord:midnightthoughts.space">MTRNord</a> announces</p>
<blockquote>
<p>Small update on the project today: We updated <a href="https://docs.draupnir.midnightthoughts.space">https://docs.draupnir.midnightthoughts.space</a> to a more readable design and hopefully also better working for mobile than before. If you have any issues please report them at <a href="https://github.com/the-draupnir-project/draupnir4all_docs">https://github.com/the-draupnir-project/draupnir4all_docs</a> :)</p>
<p>Also while I was at it I added S/MIME and PGP keys to my Zammad instance that's used for the email. You can find the public keys/certs at <a href="https://docs.draupnir.midnightthoughts.space/getting-started.html#pgp-and-smime">https://docs.draupnir.midnightthoughts.space/getting-started.html#pgp-and-smime</a> as well as the fingerprints of each file. Sending both just signed or encrypted files should be possible with both. Encrypted Replies are only confirmed working with PGP at this time. This is somewhat complicated by the Zammad integration for now. However, all messages will be signed by either GPG or SMIME.</p>
</blockquote>
<h2 id="matrix-federation-stats">Matrix Federation Stats</h2>
<p><a href="https://matrix.to/#/@aine:etke.cc">Aine</a> reports</p>
<blockquote>
<p>collected by <a href="https://matrixrooms.info">MatrixRooms.info</a> - an <a href="https://gitlab.com/etke.cc/mrs/api">MRS</a> instance by <a href="https://etke.cc?utm_source=twim&utm_medium=matrix&utm_campaign=federation-stats">etke.cc</a></p>
<p>As of today, <code>9512</code> Matrix federateable servers have been discovered by matrixrooms.info, <code>2776</code> (<code>29.2%</code>) of them are publishing their rooms directory over federation.
The published directories contain <code>20157</code> rooms.</p>
<p>Stats timeline is available on <a href="https://matrixrooms.info/stats">MatrixRooms.info/stats</a></p>
<p><a href="https://gitlab.com/etke.cc/mrs/api/-/blob/main/docs/indexing.md">How to add your server</a> | <a href="https://gitlab.com/etke.cc/mrs/api/-/blob/main/docs/deindexing.md">How to remove your server</a></p>
</blockquote>
<h2 id="dept-of-ping">Dept of Ping</h2>
<p>Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by <a href="https://github.com/maubot/echo">pingbot</a>, a <a href="https://github.com/maubot/maubot">maubot</a> that you can host on your own server.</p>
<h3 id="ping-maunium-net"><a href="https://matrix.to/#/#ping:maunium.net">#ping:maunium.net</a></h3>
<p>Join <a href="https://matrix.to/#/#ping:maunium.net">#ping:maunium.net</a> to experience the fun live, and to find out how to add YOUR server to the game.</p>
<table><thead><tr><th style="text-align: center">Rank</th><th style="text-align: center">Hostname</th><th style="text-align: center">Median MS</th></tr></thead><tbody>
<tr><td style="text-align: center">1</td><td style="text-align: center">maunium.net</td><td style="text-align: center">242</td></tr>
<tr><td style="text-align: center">2</td><td style="text-align: center">nerdhouse.io</td><td style="text-align: center">268</td></tr>
<tr><td style="text-align: center">3</td><td style="text-align: center">ari.lt</td><td style="text-align: center">271</td></tr>
<tr><td style="text-align: center">4</td><td style="text-align: center">rom4nik.pl</td><td style="text-align: center">273</td></tr>
<tr><td style="text-align: center">5</td><td style="text-align: center">fostered.uk</td><td style="text-align: center">310</td></tr>
<tr><td style="text-align: center">6</td><td style="text-align: center">plocki.org</td><td style="text-align: center">339</td></tr>
<tr><td style="text-align: center">7</td><td style="text-align: center">aguiarvieira.pt</td><td style="text-align: center">420.5</td></tr>
<tr><td style="text-align: center">8</td><td style="text-align: center">envs.net</td><td style="text-align: center">436.5</td></tr>
<tr><td style="text-align: center">9</td><td style="text-align: center">littlevortex.net</td><td style="text-align: center">503</td></tr>
<tr><td style="text-align: center">10</td><td style="text-align: center">nhnn.dev</td><td style="text-align: center">649</td></tr>
</tbody></table>
<h3 id="ping-no-synapse-maunium-net"><a href="https://matrix.to/#/#ping-no-synapse:maunium.net">#ping-no-synapse:maunium.net</a></h3>
<p>Join <a href="https://matrix.to/#/#ping-no-synapse:maunium.net">#ping-no-synapse:maunium.net</a> to experience the fun live, and to find out how to add YOUR server to the game.</p>
<table><thead><tr><th style="text-align: center">Rank</th><th style="text-align: center">Hostname</th><th style="text-align: center">Median MS</th></tr></thead><tbody>
<tr><td style="text-align: center">1</td><td style="text-align: center">nerdhouse.io</td><td style="text-align: center">146.5</td></tr>
<tr><td style="text-align: center">2</td><td style="text-align: center">ari.lt</td><td style="text-align: center">149</td></tr>
<tr><td style="text-align: center">3</td><td style="text-align: center">aguiarvieira.pt</td><td style="text-align: center">151</td></tr>
<tr><td style="text-align: center">4</td><td style="text-align: center">fostered.uk</td><td style="text-align: center">179</td></tr>
<tr><td style="text-align: center">5</td><td style="text-align: center">spritsail.io</td><td style="text-align: center">211</td></tr>
<tr><td style="text-align: center">6</td><td style="text-align: center">matrix.its-tps.fr</td><td style="text-align: center">236</td></tr>
<tr><td style="text-align: center">7</td><td style="text-align: center">jpeg.city</td><td style="text-align: center">248</td></tr>
<tr><td style="text-align: center">8</td><td style="text-align: center">shiftsystems.net</td><td style="text-align: center">259</td></tr>
<tr><td style="text-align: center">9</td><td style="text-align: center">littlevortex.net</td><td style="text-align: center">325.5</td></tr>
<tr><td style="text-align: center">10</td><td style="text-align: center">inu.is</td><td style="text-align: center">452.5</td></tr>
</tbody></table>
<h2 id="that-s-all-i-know">That's all I know</h2>
<p>See you next week, and be sure to stop by <a href="https://matrix.to/#/#twim:matrix.org">#twim:matrix.org</a> with your updates!</p>
Opening up the Foundation2024-02-29T19:00:00+00:002024-02-29T19:00:00+00:00Thibhttps://matrix.org/blog/2024/02/opening-up-foundation/<p>Since the Foundation got itself a Managing Director at the end of last summer, it has been working on its independence. With lines more clearly defined between its major supporter Element and itself, the Foundation has been able to clarify its role. <strong>The Foundation's major goal, alongside stewarding the specification, is to fill in the gaps where there is no direct organisational interest, to make the Matrix ecosystem grow.</strong></p>
<p>There are two levels where the Foundation can have an impact: at the governance level, in the form of the Governing Board; and at the hands-on level, with working groups and projects.</p>
<p>See below what the coming year holds for us.</p>
<span id="continue-reading"></span><h2 id="setting-the-direction-together">Setting the direction, together</h2>
<p>The Foundation wants to be a place for the various entities who depend on Matrix to gather, share their insights and current situation, make decisions on what they want for the future of Matrix, and pool resources to make it happen.</p>
<p>A place that gives everyone in the ecosystem an opportunity to be proactive in their problem solving, sharing the cost of maintenance and development of projects that may lack commercial support.</p>
<p>It is also meant to be a place where all the members can discuss topics that need to be addressed, but that they cannot address on their own. Indeed, some components of the Matrix ecosystem receive attention because they are commercially viable, if not already sustainable. Some other projects might not be possible to monetise ethically. Or it might make sense for a neutral organisation to act as a point of reference. One example would be a strong Trust & Safety suite.</p>
<p>The Governing Board will help set the direction of the Foundation, so it can deliver on what matters the most to the ecosystem. For all the details on the Governing Board and its mission, please head to <a href="https://matrix.org/blog/2023/12/electing-our-first-governing-board">Josh's excellent blog post</a>. If you have an opinion on the direction the Foundation should follow, consider <a href="https://matrix.org/membership/">becoming a member</a> and running for the board!</p>
<h2 id="more-room-for-the-community">More room for the community</h2>
<p>Joining the Governing Board is not the only way to contribute to the Matrix ecosystem. The Foundation hosts numerous projects, and directly contributes to some of them. But there are no guidelines regarding how a project becomes hosted or managed by the Foundation, nor any guidelines on who can gain or lose access to a repository.</p>
<p>In coordination with the Governing Board, the Foundation will set-up processes to better define what a Foundation project is, how it can join the <code>matrix-org/</code> namespace on GitHub, how it is governed, and when it makes sense to contribute financially. This is particularly important to make sure that the Foundation is open to new contributors and projects.</p>
<p>We don't want to define processes <em>a priori</em> and force them onto the project, creating unnecessary top-down bureaucracy. We would rather experiment, see what processes actually work in practice, and then formalise and generalise them.</p>
<p>We are starting with a couple of experiments: community member <a href="https://mtrnord.blog/">MTRNord</a> and myself <a href="https://ergaster.org">Thib</a> have <a href="https://matrix.org/blog/2024/02/website-office-hours/">launched the Matrix.org Website Office Hours</a> to onboard everyone who wants to contribute to the website. Web development is a rather widespread skill, and it should be a good testbed to gauge our ability to onboard a diverse group of contributors. You should join us!</p>
<p>A second initiative will be launched on a topic our community is full of energy and ideas about: a Trust & Safety working group, steered by myself. The working group will be tightly scoped to a single problem area, and tasked to come up with a single deliverable. We will spin up new working groups to tackle new problems. We will share the details of the first T&S working group in early April on this blog. You can <a href="https://matrix.org/atom.xml">subscribe to our RSS feed</a> or follow us on our socials to stay tuned. </p>
<p>This experiment will establish a framework for collaborations on other important topics. This will help us make the Matrix ecosystem one that all individuals and organisations are able to contribute to.</p>
<p>This post is the second post in <a href="https://matrix.org/blog/2024/01/2024-roadmap-and-fundraiser/">our roadmap series</a>, and while governance isn’t the most exciting thing in open source, it makes the difference between a project that stands the test of time and a project that fails.</p>
<p>Support the Matrix ecosystem if you want to see it thrive, support the Foundation in its quest for inclusivity: become <a href="https://matrix.org/membership">a member</a> or <a href="https://matrix.org/support">a supporter</a> today!</p>
This Week in Matrix 2024-02-232024-02-23T00:00:00+00:002024-02-23T00:00:00+00:00Thibhttps://matrix.org/blog/2024/02/23/this-week-in-matrix-2024-02-23/<h2 id="matrix-live">Matrix Live</h2>
<noscript>Today's Matrix Live: <a href="https://youtube.com/watch?v=8vjjwxx7k1w">https://youtube.com/watch?v=8vjjwxx7k1w</a></noscript>
<youtube-player video-id="8vjjwxx7k1w"></youtube-player>
<h2 id="dept-of-status-of-matrix-face-with-th">Dept of <em>Status of Matrix</em> 🌡️</h2>
<p><a href="https://matrix.to/#/@thib:ergaster.org">Thib</a> says</p>
<blockquote>
<p>This week MTRNord and myself have launched the <a href="https://matrix.org/blog/2024/02/website-office-hours/">Matrix.org Website Office Hours</a>. We hope to turn that into an accessible way to onboard new contributors. Come join the fun with us, and help us making the world a better place!</p>
</blockquote>
<span id="continue-reading"></span><h2 id="dept-of-spec-scroll">Dept of Spec 📜</h2>
<p><a href="https://matrix.to/#/@andrewm:element.io">Andrew Morgan (anoa)</a> reports</p>
<blockquote>
<p>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 <a href="https://spec.matrix.org/proposals">https://spec.matrix.org/proposals</a>.</p>
<h3 id="msc-status">MSC Status</h3>
<p><strong>New MSCs:</strong></p>
<ul>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4110">MSC4110: Fewer Features</a></li>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4109">MSC4109: Appservices & soft-failed events</a></li>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4108">MSC4108: Mechanism to allow OIDC sign in and E2EE set up via QR code</a></li>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4107">MSC4107: Feature-focused versioning</a></li>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4106">MSC4106: Join as Muted</a></li>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4104">MSC4104: Auth Lock: Soft-failure-be-gone!</a></li>
</ul>
<p><strong>MSCs in Final Comment Period:</strong></p>
<ul>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4077">MSC4077: Improved process for handling deprecated HTML features</a> (merge)</li>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4010">MSC4010: Push rules and account data</a> (merge)</li>
</ul>
<p><strong>Accepted MSCs:</strong></p>
<ul>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4041">MSC4041: http header Retry-After for http code 429</a></li>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/2530">MSC2530: Body field as media caption</a></li>
</ul>
<p><strong>Closed MSCs:</strong></p>
<ul>
<li><em>No MSCs were closed/rejected this week.</em></li>
</ul>
<h3 id="spec-updates">Spec Updates</h3>
<p>The Spec Core Team are continuing to internally reflect and evaluate on our processes. Not too much to say publicly here yet, but hopefully in a few weeks' time.</p>
<p>Otherwise there has been a surge of new MSCs coming into the fray related to all different portions of the spec. Lots to chew on for those invested!</p>
<p>A general call for help for folks to write up some spec PRs - aka turning <a href="https://github.com/orgs/matrix-org/projects/31#column-19200628">our current list of accepted MSCs</a> into actual PR against the spec itself. If that sounds like something you'd like to help out with, even if you've never touched the spec before, please consider writing one up! You can see examples of Spec PRs <a href="https://github.com/matrix-org/matrix-spec/pulls?q=is%3Apr+sort%3Aupdated-desc+is%3Amerged+MSC">here</a>, and can join <a href="https://matrix.to/#/#matrix-docs:matrix.org">#matrix-docs:matrix.org</a> for help 🙂</p>
<p>And thank you to zecakeh for <a href="https://github.com/matrix-org/matrix-spec/pull/1728">writing one up yesterday</a>!</p>
<h3 id="random-msc-of-the-week">Random MSC of the Week</h3>
<p>The random MSC of the week is... <a href="https://github.com/matrix-org/matrix-spec-proposals/pull/3843">MSC3843: Reporting content over federation</a>!</p>
<p>This MSC is short and very readable, so I suggest doing so on your own! But in short, this MSC proposes a new Server-Server endpoint to report either an event or an entire room to a remote homeserver. This makes sense if that remote homeserver is the one housing the user(s) whose content you are reporting. Alternatively, you could use this as a mechanism to alert other homeservers of an ongoing spam wave.</p>
<p>This proposal also introduces a new error code, <code>M_UNACTIONABLE</code>, if the homeserver does not accept the report for whatever reason.</p>
<p>Personally I feel that this would be a useful tool to get abuse reports from server A to server B, whereas all current tooling either doesn't have that functionality, or pushes it off to bots (which can be a bit clunky). Having a standard API for it (which clients can then add UI for) seems like a better path forward.</p>
</blockquote>
<h2 id="dept-of-servers-europea">Dept of Servers 🏢</h2>
<h3 id="synapse-website">Synapse (<a href="https://github.com/matrix-org/synapse/">website</a>)</h3>
<p>Synapse is a Matrix homeserver implementation developed by the matrix.org core team</p>
<p><a href="https://matrix.to/#/@andrewm:element.io">Andrew Morgan (anoa)</a> says</p>
<blockquote>
<p>This week <a href="https://github.com/element-hq/synapse/releases/tag/v1.102.0rc1">Synapse v1.102.0rc1</a> was released. With it are <a href="https://github.com/element-hq/synapse/issues/16903">some performance fixes</a>, and <a href="https://github.com/element-hq/synapse/issues/16927">a fix for stuck notifications</a>. If you're able to test and report bugs, please do!</p>
<p>Otherwise we are aware of <a href="https://github.com/element-hq/synapse/issues/16904">an issue with notification counts being too high</a> on mobile clients, and believe we have narrowed down the issue. <a href="https://github.com/element-hq/synapse/pull/16954">This PR</a> has a potential fix, and we'll aim to get it out as soon as possible.</p>
</blockquote>
<h2 id="dept-of-clients-iphone">Dept of Clients 📱</h2>
<h3 id="quaternion-website">Quaternion (<a href="https://github.com/quotient-im/Quaternion">website</a>)</h3>
<p>A Qt5-based IM client for Matrix</p>
<p><a href="https://matrix.to/#/@kitsune:matrix.org">kitsune</a> reports</p>
<blockquote>
<p>Version 0.0.96.1 is <a href="https://github.com/quotient-im/Quaternion/releases/tag/0.0.96.1">out</a>, bringing a few essential fixes. Not much to talk about, just go and upgrade!</p>
</blockquote>
<h3 id="element-x-ios-website">Element X iOS (<a href="https://github.com/vector-im/element-x-ios">website</a>)</h3>
<p>A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.</p>
<p><a href="https://matrix.to/#/@mauro.romito:element.io">Mauro Romito</a> announces</p>
<blockquote>
<ul>
<li>El-X 1.5.8 has been released</li>
<li>new translations for bulgarian swedish and ukrainian have been added, and will soon be included in the next releases</li>
<li>The recovery key can now also be used to recover your chat backups/verify your device</li>
<li>If the user has set up a global OS proxy configuration, the app is now able to determine the proxy and use it!</li>
<li>Filters work is making progress, and now we can also filter by favourites.</li>
<li>Moderation features are making progress</li>
<li>We're improving our logging backend by using Rust to write the log files</li>
</ul>
</blockquote>
<h2 id="dept-of-non-chat-clients-control-knobs">Dept of Non Chat Clients 🎛️</h2>
<h3 id="circles-website">Circles (<a href="https://www.kombuchaprivacy.com/circles/">website</a>)</h3>
<p>E2E encrypted social networking built on Matrix. Safe, private sharing for your friends, family, and community.</p>
<p><a href="https://matrix.to/#/@cvwright:futo.org">cvwright</a> reports</p>
<blockquote>
<p>We are happy to announce that <a href="https://circles.futo.org/">Circles</a>, the secure social network built on Matrix, is now available in the iOS App Store: <a href="https://apps.apple.com/us/app/futo-circles/id6451446720">FUTO Circles</a>. With this release and our recent release in the main <a href="https://f-droid.org/en/packages/org.futo.circles/">F-Droid</a> repo, this leaves only the Google Play Store on our to-do list.</p>
<p>The initial App Store version is identical to beta v0.9.9 and brings only minor updates over v0.9.7 and v0.9.8. We expect to be very busy over the next few weeks as we add a few remaining features and bug fixes from our post-1.0 backlog on iOS, and as we get ready to launch Circles Android on the Play Store.</p>
<p>If you're interested in Circles, please stop by and say hello in <a href="https://matrix.to/#/#circles:futo.org">#circles:futo.org</a></p>
</blockquote>
<h2 id="dept-of-sdks-and-frameworks">Dept of SDKs and Frameworks 🧰</h2>
<h3 id="matrix-sdk-store-media-cache-wrapper-website">matrix-sdk-store-media-cache-wrapper (<a href="https://crates.io/crates/matrix-sdk-store-media-cache-wrapper">website</a>)</h3>
<p><a href="https://matrix.to/#/@ben:acter.global">ben</a> reports</p>
<blockquote>
<p>Just a quick one on the side: We have <a href="https://news.acter.global/announcing-store-media-cache-wrapper/">just announced the stable release of the <code>matrix-sdk-store-media-cache-wrapper</code></a> Rust <a href="https://crates.io/crates/matrix-sdk-store-media-cache-wrapper">crate on crates.io</a> for the matrix-rust-sdk. If you, too, want to separate the internal store state from the downloaded media in a safe and secure way with your matrix-rust-sdk-based project, this is for you. Enjoy.</p>
</blockquote>
<h3 id="rory-libmatrix-net-8-matrix-bot-client-library-sdk">Rory&::LibMatrix (.NET 8 matrix bot/client library/SDK)</h3>
<p><a href="https://matrix.to/#/@emma:rory.gay">Emma [it/its]</a> reports</p>
<blockquote>
<p>Lots of changes this time around, and a whole homeserver test jig has started development!</p>
<h3 id="changes">Changes</h3>
<ul>
<li>Remote homeserver timeout increased from 2 minutes to 5 minutes.</li>
<li>Homeserver resolver now falls back to HTTP if HTTPS is not available (I should probably add a toggle for that ^^')</li>
<li>Fixed power level checks</li>
<li>API calls now use <code>ResponseHeadersRead</code> mode for responses, meaning that some larger API calls (eg. sync, mmebers, ...) now deserialise faster, due to being deserialised while still streaming!</li>
<li><code>DisbandRoomAsync</code> was renamed to <code>PermanentlyBrickRoomAsync</code> in order to clarify it's function and intent.</li>
<li>Common sync filter presets now return ephemeral objects, meaning any change to their contents will no longer be reflected in calls later on (eg. between different clients)</li>
<li>Bot SDK: Command listener uses a very small sync filter (only m.room.message, by not self), as this allows far faster initialisation.</li>
</ul>
<h3 id="new-features">New features</h3>
<ul>
<li>Filter uploads now allow <code>@me</code> (literal) in <code>senders</code>/<code>not_senders</code>, these will be substituted by the current user's MXID. This allows far easier templating.</li>
</ul>
<h3 id="new-sub-project-rory-libmatrix-homeserveremulator">New sub-project: Rory&::LibMatrix.HomeserverEmulator</h3>
<p>A new project has appeared! This is an attempt at having a quick and dirty "homeserver" implementation in order to allow for fast iteration on development whilst offline.
Upon an attempt to log in, a random account is generated with random rooms, in order to provide "realistic" test data.</p>
<p><em><strong>And, as always:</strong></em></p>
<ul>
<li>The code is available at <a href="https://cgit.rory.gay/matrix/LibMatrix.git">cgit.rory.gay</a>!
<ul>
<li>All contributions are more than welcome, be it documentation, code, anything! Perhaps, example usecases, bots, ...?</li>
</ul>
</li>
<li>Discussion, suggestions and ideas are welcome in <a href="https://matrix.to/#/#libmatrix:rory.gay">#libmatrix:rory.gay</a> (Space: <a href="https://matrix.to/#/#mru-space:rory.gay">#mru-space:rory.gay</a>)</li>
<li>Got a cool project that you're working on and want to share, using LibMatrix? Be sure to let me know, I'd love to hear all about it!</li>
</ul>
</blockquote>
<h3 id="trixnity-website">Trixnity (<a href="https://gitlab.com/trixnity/trixnity">website</a>)</h3>
<p>Multiplatform Kotlin SDK for Matrix</p>
<p><a href="https://matrix.to/#/@benedict:imbitbu.de">Benedict</a> says</p>
<blockquote>
<p>This week just a small bugfix release (v4.2.5) of Trixnity.</p>
<p>bugfixes:</p>
<ul>
<li>fix deadlock in start/stop-sync handling (thanks to @justjanne:matrix.org for finding and analyzing this bug)</li>
<li>fix ConcurrentModificationException in <code>Concurrent</code>-Collections</li>
</ul>
</blockquote>
<h3 id="simplematrixbotlib-website">simplematrixbotlib (<a href="https://github.com/KrazyKirby99999/simple-matrix-bot-lib">website</a>)</h3>
<p>simplematrixbotlib is an easy to use bot library for the Matrix ecosystem written in Python and based on matrix-nio.</p>
<p><a href="https://matrix.to/#/@imbev:matrix.org">imbev</a> reports</p>
<blockquote>
<h3 id="simplematrixbotlib-releases-v2-11-0">simplematrixbotlib releases v2.11.0</h3>
<p>pypi: <a href="https://pypi.org/project/simplematrixbotlib/2.11.0/">https://pypi.org/project/simplematrixbotlib/2.11.0/</a></p>
<p>git: <a href="https://codeberg.org/imbev/simplematrixbotlib/src/tag/v2.11.0">https://codeberg.org/imbev/simplematrixbotlib/src/tag/v2.11.0</a></p>
<ul>
<li>
<p>The <code>on_reaction_event</code> listener now uses matrix-nio's ReactionEvent instead of UnknownEvent</p>
</li>
<li>
<p><code>api.send_text_message</code> method now has a reply_to parameter, making it easier to reply to events</p>
</li>
<li>
<p>The minimum matrix-nio version is now 0.24</p>
</li>
</ul>
</blockquote>
<h3 id="matrix-rust-sdk-website">matrix-rust-sdk (<a href="https://github.com/matrix-org/matrix-rust-sdk">website</a>)</h3>
<p>Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM</p>
<p><a href="https://matrix.to/#/@benjib:element.io">bnjbvr</a> announces</p>
<blockquote>
<p>It's been a while since the last update for the Rust SDK, so we're happy to report many improvements since the last time!</p>
<ul>
<li>New APIs have been added to the main SDK: reading and setting room power levels, retrieve interesting tags (favourite, low priority), marking a room as unread following MSC2867.</li>
<li>When creating a Client, a convenient way to auto-discover if an URL is a homeserver URL or a server name has been added: <code>ClientBuilder::server_name_or_homeserver_url()</code>.</li>
<li>Work has started on a new <a href="https://github.com/matrix-org/matrix-rust-sdk/issues/3058">Event Cache</a>, which should help with extracting some useful features out of the Timeline API, and put them back into the main SDK. This includes notably: automatically retrying decryption after new keys have been received, back-pagination of events, computing unread markers and updating read receipts in a single place. Stay tuned as the work moves forward.</li>
<li>The Room List service has more filters (all, unread, groups, DMs, favourites), and can combine them together (and, not).</li>
<li>Timeline: it's now possible to mark a room as read (and let the SDK automatically select the event that will receive a read receipt).</li>
<li>And of course your usual bunch of bugfixes, internal refactorings and performance improvements. It would be too long to list them all, but those involve the following categories: sliding sync, unread markers, indexeddb, backup support, many at the FFI layer used for EX apps, etc.</li>
</ul>
</blockquote>
<h2 id="dept-of-ops">Dept of Ops 🛠</h2>
<h3 id="matrix-docker-ansible-deploy-website">matrix-docker-ansible-deploy (<a href="https://github.com/spantaleev/matrix-docker-ansible-deploy">website</a>)</h3>
<p>Matrix server setup using Ansible and Docker</p>
<p><a href="https://matrix.to/#/@slavi:devture.com">Slavi</a> announces</p>
<blockquote>
<p><a href="https://github.com/spantaleev/matrix-docker-ansible-deploy">matrix-docker-ansible-deploy</a> now supports the new <a href="https://github.com/mautrix/meta">mautrix-meta</a> bridge (following news of the <a href="https://github.com/mautrix/facebook/issues/332">deprecation of the old mautrix bridges</a>).</p>
<p>mautrix-meta is a single bridge, which can run in different modes and bridge to Messenger (via <a href="https://facebook.com/">Facebook</a>, Facebook over <a href="https://www.torproject.org/">Tor</a> or via <a href="https://messenger.com/">Messenger</a>) and <a href="https://instagram.com/">Instagram</a>. The playbook makes this bridge available via 2 separate Ansible roles, allowing you to easily run 2 instances of mautrix-meta, for bridging to both services at the same time.</p>
<p>Consult <a href="https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/367af472ea2e659f2cd19a0fe7e44bac6bc627da/CHANGELOG.md#support-for-bridging-to-facebookmessenger-via-the-new-mautrix-meta-bridge">our changelog entry</a> for more details on migrating.</p>
</blockquote>
<h2 id="dept-of-interesting-projects">Dept of Interesting Projects 🛰️</h2>
<p><a href="https://matrix.to/#/@aine:etke.cc">Aine</a> announces</p>
<blockquote>
<p>Matrix Rooms Search project got a huge under-the-hood update!</p>
<p>At <a href="https://etke.cc/">etke.cc</a> we were busy with instrumenting our projects this week, and the biggest impact is seen with the MRS.</p>
<p>But let's start with some highlights from the changelog first:</p>
<ul>
<li>Integrated Sentry APM Tracing</li>
<li>Fixed Federation API discovery (thanks ralfi and tulir for localizing it)</li>
<li>Rewrote avatars logic</li>
<li>Rewrote outgoing http requests logic - fixed edge cases with odd context cancellations, added retrier for 5xx responses</li>
</ul>
<p>And the impact is: new 765 online and federateable servers were discovered (+8.6%)! Moreover, 287 of them (+11.4%) are publishing room directories over federation 🎉</p>
<p>The updates were already tested on the demo instance, and the change is visible on the <a href="https://matrixrooms.info/stats">MatrixRooms.info/stats</a> page (Feb 21 -> Feb 22).</p>
<p>Apart from that, <a href="https://github.com/matrix-org/matrix-spec-proposals/blob/main/proposals/1929-admin-contact.md">MSC1929</a> integration has been reworked. From now on, MRS will try to use <code>m.role.admin</code> email(-s), and if none found, use any valid email present in the support file. Plus, MRS now serves the <code>/.well-known/matrix/support</code> file of its own.
<a href="https://gitlab.com/etke.cc/mrs/api/-/blob/main/docs/msc1929.md?ref_type=heads">Documentation</a> has been updated to reflect the changes.</p>
<p>Try <a href="https://matrixrooms.info/">MatrixRooms.info</a> (even directly from your matrix apps!), <a href="https://gitlab.com/etke.cc/mrs/api">check the source code</a>, and say hi in the <a href="https://matrix.to/#/#mrs:etke.cc">#mrs:etke.cc</a> room</p>
</blockquote>
<h2 id="matrix-federation-stats">Matrix Federation Stats</h2>
<p><a href="https://matrix.to/#/@aine:etke.cc">Aine</a> announces</p>
<blockquote>
<p>collected by <a href="https://matrixrooms.info">MatrixRooms.info</a> - an <a href="https://gitlab.com/etke.cc/mrs/api">MRS</a> instance by <a href="https://etke.cc?utm_source=twim&utm_medium=matrix&utm_campaign=federation-stats">etke.cc</a></p>
<p>As of today, <code>9567</code> Matrix federateable servers have been discovered by matrixrooms.info, <code>2801</code> (<code>29.3%</code>) of them are publishing their rooms directory over federation.
The published directories contain <code>20071</code> rooms.</p>
<p>Stats timeline is available on <a href="https://matrixrooms.info/stats">MatrixRooms.info/stats</a></p>
<p><a href="https://gitlab.com/etke.cc/mrs/api/-/blob/main/docs/indexing.md">How to add your server</a> | <a href="https://gitlab.com/etke.cc/mrs/api/-/blob/main/docs/deindexing.md">How to remove your server</a></p>
</blockquote>
<h2 id="dept-of-ping">Dept of Ping</h2>
<p>Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by <a href="https://github.com/maubot/echo">pingbot</a>, a <a href="https://github.com/maubot/maubot">maubot</a> that you can host on your own server.</p>
<h3 id="ping-maunium-net"><a href="https://matrix.to/#/#ping:maunium.net">#ping:maunium.net</a></h3>
<p>Join <a href="https://matrix.to/#/#ping:maunium.net">#ping:maunium.net</a> to experience the fun live, and to find out how to add YOUR server to the game.</p>
<table><thead><tr><th style="text-align: center">Rank</th><th style="text-align: center">Hostname</th><th style="text-align: center">Median MS</th></tr></thead><tbody>
<tr><td style="text-align: center">1</td><td style="text-align: center">ari.lt</td><td style="text-align: center">247</td></tr>
<tr><td style="text-align: center">2</td><td style="text-align: center">nerdhouse.io</td><td style="text-align: center">278</td></tr>
<tr><td style="text-align: center">3</td><td style="text-align: center">aguiarvieira.pt</td><td style="text-align: center">284</td></tr>
<tr><td style="text-align: center">4</td><td style="text-align: center">envs.net</td><td style="text-align: center">285</td></tr>
<tr><td style="text-align: center">5</td><td style="text-align: center">chatinamatrix.xyz</td><td style="text-align: center">304</td></tr>
<tr><td style="text-align: center">6</td><td style="text-align: center">fostered.uk</td><td style="text-align: center">305.5</td></tr>
<tr><td style="text-align: center">7</td><td style="text-align: center">plocki.org</td><td style="text-align: center">417</td></tr>
<tr><td style="text-align: center">8</td><td style="text-align: center">matrix.its-tps.fr</td><td style="text-align: center">430</td></tr>
<tr><td style="text-align: center">9</td><td style="text-align: center">utzutzutz.net</td><td style="text-align: center">501</td></tr>
<tr><td style="text-align: center">10</td><td style="text-align: center">viorsan.space</td><td style="text-align: center">744</td></tr>
</tbody></table>
<h3 id="ping-no-synapse-maunium-net"><a href="https://matrix.to/#/#ping-no-synapse:maunium.net">#ping-no-synapse:maunium.net</a></h3>
<p>Join <a href="https://matrix.to/#/#ping-no-synapse:maunium.net">#ping-no-synapse:maunium.net</a> to experience the fun live, and to find out how to add YOUR server to the game.</p>
<table><thead><tr><th style="text-align: center">Rank</th><th style="text-align: center">Hostname</th><th style="text-align: center">Median MS</th></tr></thead><tbody>
<tr><td style="text-align: center">1</td><td style="text-align: center">nerdhouse.io</td><td style="text-align: center">128</td></tr>
<tr><td style="text-align: center">2</td><td style="text-align: center">ari.lt</td><td style="text-align: center">138</td></tr>
<tr><td style="text-align: center">3</td><td style="text-align: center">aguiarvieira.pt</td><td style="text-align: center">167</td></tr>
<tr><td style="text-align: center">4</td><td style="text-align: center">dendrite.s3cr3t.me</td><td style="text-align: center">170</td></tr>
<tr><td style="text-align: center">5</td><td style="text-align: center">fostered.uk</td><td style="text-align: center">220</td></tr>
<tr><td style="text-align: center">6</td><td style="text-align: center">spritsail.io</td><td style="text-align: center">222</td></tr>
<tr><td style="text-align: center">7</td><td style="text-align: center">matrix.its-tps.fr</td><td style="text-align: center">226</td></tr>
<tr><td style="text-align: center">8</td><td style="text-align: center">chatinamatrix.xyz</td><td style="text-align: center">234</td></tr>
<tr><td style="text-align: center">9</td><td style="text-align: center">h2.gay</td><td style="text-align: center">304</td></tr>
<tr><td style="text-align: center">10</td><td style="text-align: center">darkness.services</td><td style="text-align: center">350</td></tr>
</tbody></table>
<h2 id="that-s-all-i-know">That's all I know</h2>
<p>See you next week, and be sure to stop by <a href="https://matrix.to/#/#twim:matrix.org">#twim:matrix.org</a> with your updates!</p>
Launching the Matrix.org Website Office Hours2024-02-20T16:00:00+00:002024-02-20T16:00:00+00:00Thibhttps://matrix.org/blog/2024/02/website-office-hours/<p>The Matrix.org website is the public face of the Foundation, and the first thing you stumble upon when looking up “matrix chat” on a search engine. It’s a very important step in people’s Matrix journey.</p>
<p><a href="https://github.com/matrix-org/matrix.org/issues/1502">A lot of thought</a> has been put into making a website <a href="https://github.com/matrix-org/matrix.org/issues/1543">that talks to the various audiences</a> visiting it, but we still have a lot of room for improvement!</p>
<p>The website is only maintained by community member <a href="https://mtrnord.blog/">MTRNord</a> in a volunteer way, and part-time by me, <a href="https://ergaster.org">Thib</a>. We could use an extra pair of hands or two, but to make the most of people’s desire to help we need to let them know where they can have the most impact depending on their skill set, and how we can accept their help!</p>
<span id="continue-reading"></span>
<p>We did a small scale pilot of Website Office Hours on Tuesday 20. We gathered in an Element Call to talk, review PRs and issues, and merge/fix them! It looked like a form of peer programming since I (Thib) was sharing my Github and VSCode windows while working on the site, and we discussed it. A few people came by, and gave feedback about the format.</p>
<p><strong>We are happy to launch the Matrix.org Website Office Hours, on Thursdays every other week at 16:00 UTC / 17:00 CET!</strong> starting next week on Thursday 29. You can join the <a href="https://matrix.to/#/%23matrix.org-website:matrix.org">#matrix.org-website:matrix.org</a> where all the fun happens. We will embed Element Call in the website room as well, but you can <a href="https://call.element.io/room/#/matrixorg-website-office-hour?roomId=!kzyGmYCZimtZaSOVyP:call.ems.host&password=_ufRbbGJcRX8rwNXNo4atQ">join the Call directly</a> if you’re not interested in the chat. <a href="https://mtrnord.blog/">MTRNord</a> and <a href="https://ergaster.org">myself</a> will sit in that call and monitor that room for one hour, browsing and prioritising issues of the matrix.org website, and actually working on it.</p>
<p>Come and contribute to Matrix. Get involved, grow your skills, and make the world a better place with us!</p>
This Week in Matrix 2024-02-162024-02-16T00:00:00+00:002024-02-16T00:00:00+00:00MTRNordhttps://matrix.org/blog/2024/02/twim/<h2 id="dept-of-communities">Dept of communities</h2>
<h3 id="ubuntu-matrix-homeserver-just-went-live-tada">Ubuntu Matrix homeserver just went live 🎉</h3>
<p><a href="https://matrix.to/#/@ravage:xentonix.net">Nils</a> announces</p>
<blockquote>
<p>Even if we are formally still in testing phase until the end of the Ubuntu 24.04 cycle, the Ubuntu Matrix homeserver reached a state in which we can consider it live.</p>
<p>Although Ubuntu used to be IRC-only, we are now adopting Matrix to cater to a wider, diverse audience, including less technical users and younger generations. Matrix allows us to do so while staying true to the values that brought us Ubuntu, Linux and FOSS. When selecting the tools we use, we are always focused on open-source, privacy and freedom respecting software. We believe that Matrix offers all the modern features we need without compromising our values. Moreover, Matrix will make it easier for us to interact with neighboring communities such as Fedora and KDE.</p>
<p>There is still a lot of work to do, but we want to take a moment to thank the Ubuntu and Matrix communities for their great effort and dedication to this project.</p>
<p>You can read more about it on this <a href="https://discourse.ubuntu.com/t/modern-communication-platforms-call-for-feedback/36763/">Discourse thread</a> and of course, you can now join our Ubuntu community from any Matrix federated server. A good start is the <a href="https://matrix.to/#/#community:ubuntu.com">Ubuntu Community Space</a></p>
</blockquote>
<span id="continue-reading"></span><h2 id="dept-of-status-of-matrix-face-with-th">Dept of <em>Status of Matrix</em> 🌡️</h2>
<p><a href="https://matrix.to/#/@josh:josh.tel">Josh Simmons</a> reports</p>
<blockquote>
<p>We are bowled over by the level of support we’ve received since <a href="https://matrix.org/blog/2024/01/2024-roadmap-and-fundraiser/">launching our new fundraiser</a>!</p>
<p>We’re now up to 162 Individual Members, 114 of which are brand new supporters. To top things off, we’ve <a href="https://matrix.org/support/">doubled the number of organizational members</a>, adding Fairkom, IndieHosters, and XWiki, and have received a donation from the Thunderbird project.</p>
<p>This is extremely encouraging, though we still have a long way to go to fill the gap in our budget, and are looking forward to larger organizations stepping up to the plate.</p>
<p>If your organization uses Matrix or believes in the values of open source, open standards, privacy, and decentralization: this is your call to action. Help us secure the future of Matrix and <a href="https://matrix.org/membership/">join the Foundation today</a>.</p>
</blockquote>
<h2 id="dept-of-spec-scroll">Dept of Spec 📜</h2>
<p><a href="https://matrix.to/#/@andrewm:element.io">Andrew Morgan (anoa)</a> says</p>
<blockquote>
<p>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 <a href="https://spec.matrix.org/proposals">https://spec.matrix.org/proposals</a>.</p>
<h3 id="msc-status">MSC Status</h3>
<p><strong>New MSCs:</strong></p>
<ul>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4103">MSC4103: Make threaded read receipts opt-in in /sync</a></li>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4102">MSC4102: Clarifying precedence in threaded and unthreaded read receipts in EDUs</a></li>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4101">MSC4101: Hashes for unencrypted media</a></li>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4100">MSC4100: Scoped signing keys</a></li>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4099">MSC4099: Participation based authorization for servers in the Matrix DAG</a></li>
</ul>
<p><strong>MSCs in Final Comment Period:</strong></p>
<ul>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4041">MSC4041: http header Retry-After for http code 429</a> (merge)</li>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/2530">MSC2530: Body field as media caption</a> (merge)</li>
</ul>
<p><strong>Accepted MSCs:</strong></p>
<ul>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/2705">MSC2705: Animated thumbnails for media</a></li>
</ul>
<p><strong>Closed MSCs:</strong></p>
<ul>
<li><em>No MSCs were closed/rejected this week.</em></li>
</ul>
<h3 id="spec-updates">Spec Updates</h3>
<p>After <a href="https://matrix.org/blog/2024/02/09/this-week-in-matrix-2024-02-09/">adding two new members</a> to the Spec Core Team last week, we had a number of tasks to ensuring our infrastructure and processes supported adding new members.</p>
<p>At this point the GitHub team has the new members, updating the <a href="https://matrix.org/about/">matrix.org about page</a> and all ongoing proposed FCP comments have been updated (so that they can vote for FCP!). Kudos to the team for making the process all relatively pain-free (and even documenting it!).</p>
<p>Exciting things to come as folks get up to speed.</p>
<h3 id="random-msc-of-the-week">Random MSC of the Week</h3>
<p>The random MSC of the week is... <a href="https://github.com/matrix-org/matrix-spec-proposals/pull/3468">MSC3468: MXC to Hashes</a>!</p>
<p>This MSC is working towards a noble goal; deduplicating media, as well as allowing a server-agnostic way to reference them (a hash). It does so by redefining MXC URIs as these hashes, rather than the <code>mxc://{serverName}/{mediaId}</code> format they are today.</p>
<p>The proposal also adds two new endpoints to both the Client-Server API and the Server-Server API. One for asking the server for a hash given an old-style MXC URI, and another for "cloning" a remote piece of media (downloading it to your local homeserver instance).</p>
<p>This work joins other MSCs in solving media retention, redaction, and resiliency, namely:</p>
<ul>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/3911">MSC3911: Linking media to events</a></li>
<li><a href="https://github.com/matrix-org/matrix-doc/pull/3916">MSC3916: Authentication for media</a></li>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/2846">MSC2846: Decentralizing media through CIDs</a></li>
</ul>
<p>So do check them all out if you're interested in the problem space!</p>
</blockquote>
<h2 id="dept-of-servers-europea">Dept of Servers 🏢</h2>
<h3 id="synapse-website">Synapse (<a href="https://github.com/matrix-org/synapse/">website</a>)</h3>
<p>Synapse is a Matrix homeserver implementation developed by the matrix.org core team</p>
<p><a href="https://matrix.to/#/@andrewm:element.io">Andrew Morgan (anoa)</a> says</p>
<blockquote>
<p>This week <a href="https://github.com/element-hq/synapse/releases/tag/v1.101.0">Synapse v1.101.0</a> was released. With it came <a href="https://github.com/element-hq/synapse/issues/16893">a fix</a> for a performance regression in v1.100.0, as well as some other minor changes.</p>
<p>Coming up are a few performance changes courtesy of @erikjohnston, stemming from work to continue scaling matrix.org as we take on new users. This includes:</p>
<ul>
<li>Avoid dropping the entire event cache when purging room history (<a href="https://github.com/element-hq/synapse/pull/16905">#16905</a>)</li>
<li>Reducing duplicate server key requests over federation (<a href="https://github.com/element-hq/synapse/pull/16894">#16894</a>)</li>
</ul>
<p>...and <a href="https://github.com/element-hq/synapse/pulls?q=is%3Apr+author%3Aerikjohnston+is%3Aclosed">more</a>. Smaller servers will benefit from these changes as well. Thanks Erik!</p>
<p>Coming up are further performance fixes, along with more bugfixes, including <a href="https://github.com/element-hq/synapse/pull/16927">a potential fix</a> for a class of stuck notifications related to threads.</p>
<p>Thank you to all our contributors and those who test our release candidates! 🙂</p>
</blockquote>
<h3 id="matrix-media-repo-website">matrix-media-repo (<a href="https://github.com/turt2live/matrix-media-repo">website</a>)</h3>
<p>Matrix media repository with multi-domain in mind.</p>
<p><a href="https://matrix.to/#/@travis:t2l.io">TravisR</a> reports</p>
<blockquote>
<p>MMR <a href="https://github.com/t2bot/matrix-media-repo/releases/tag/v1.3.4">v1.3.4</a> has landed! The changelog is a bit longer than usual, but still very much worth the read. Here's the highlights:</p>
<p><strong>Dendrite homeservers can now have their media imported.</strong> This has only been tested on a monolithic setup so far, but folks have had success with the legacy polylith as well. Give it a go and please report bugs 🙂</p>
<p><strong>Media can now be exported to Synapse.</strong> If you're migrating from EMS to self-hosted and don't want to use MMR, run the <code>import_to_synapse</code> tool to recover your media. This is particularly recommended for the relatively small EMS hosts which are migrating, as MMR is more designed for large servers and hosting providers.</p>
<p><strong>ARM Docker images are available from the new GHCR registry.</strong> See changelog for details 😉</p>
<p><strong>CDN support has started landing through media redirects.</strong> Set <code>publicBaseUrl</code> on an S3 datastore and requesters will be redirected (if they opt-in to redirects). CDN support is planned to be expanded to include upload-to-url, authenticated media, and optimizations in thumbnail handling to reduce bandwidth usage. Stay tuned for updates!</p>
<p>Plus the usual bug fixes and improvements. For community support on running MMR, please visit <a href="https://matrix.to/#/#media-repo:t2bot.io">#media-repo:t2bot.io</a>.</p>
</blockquote>
<h2 id="dept-of-clients-iphone">Dept of Clients 📱</h2>
<h3 id="element-x-ios-website">Element X iOS (<a href="https://github.com/vector-im/element-x-ios">website</a>)</h3>
<p>A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.</p>
<p><a href="https://matrix.to/#/@douge:matrix.org">Doug</a> announces</p>
<blockquote>
<ul>
<li>Version 1.5.6 is available on TestFlight (with 1.5.7 due shortly).</li>
<li>Typing indicators have been added, with a combined Presence setting for disabling these and read receipts.</li>
<li>The app will now ask for your recovery key after you signed in but there are no other sessions to verify against.</li>
<li>You can now copy a link without copying the entire message.</li>
<li>We have improved our logic for sending read receipts when there are reactions and other hidden events.</li>
</ul>
</blockquote>
<h2 id="dept-of-sdks-and-frameworks">Dept of SDKs and Frameworks 🧰</h2>
<h3 id="rory-libmatrix-net-8-matrix-bot-client-library-sdk">Rory&::LibMatrix (.NET 8 matrix bot/client library/SDK)</h3>
<p><a href="https://matrix.to/#/@emma:rory.gay">Emma [it/its]</a> says</p>
<blockquote>
<p>Not much to report on this week (yet to be committed and pushed 😅)
Mostly spent time working on LibDMSpace (abstraction for organising DMs into a space), see MatrixUtils repo for that!</p>
<h4 id="changes">Changes</h4>
<ul>
<li>Fixed powerlevel checks</li>
<li>Bug fix in initial sync detection in order to fix all responses getting logged to console</li>
<li>AddChildById wrapper for spaces</li>
<li>Added syncfilter for command listener in bot extensions</li>
</ul>
<p><em><strong>And, as always:</strong></em></p>
<ul>
<li>The code is available at <a href="https://cgit.rory.gay/matrix/LibMatrix.git">cgit.rory.gay</a>!
<ul>
<li>All contributions are more than welcome, be it documentation, code, anything! Perhaps, example usecases, bots, ...?</li>
</ul>
</li>
<li>Discussion, suggestions and ideas are welcome in <a href="https://matrix.to/#/#libmatrix:rory.gay">#libmatrix:rory.gay</a> (Space: <a href="https://matrix.to/#/#mru-space:rory.gay">#mru-space:rory.gay</a>)</li>
<li>Got a cool project that you're working on and want to share, using LibMatrix? Be sure to let me know, I'd love to hear all about it!</li>
</ul>
</blockquote>
<h3 id="matrix-widget-toolkit">Matrix Widget Toolkit</h3>
<p><a href="https://matrix.to/#/@miltonmoura:matrix.org">Milton Moura</a> announces</p>
<blockquote>
<p>After the cooldown from FOSDEM '24, where we presented <a href="https://github.com/nordeck/matrix-meetings">NeoDateFix</a> in the <a href="https://fosdem.org/2024/schedule/track/matrix/">Matrix devroom</a> and had a blast meeting and discussing awesome ideas with other Matrix-minded people, we at <a href="https://nordeck.net/">Nordeck</a> have been busy working on new features for our Widgets.</p>
<p>This week, we are excited to announce that the <a href="https://github.com/nordeck/matrix-widget-toolkit">Matrix Widget Toolkit</a> now has support for accessing the <a href="https://spec.matrix.org/v1.9/client-server-api/#content-repository">Media Repository</a> via the Widget API, aka, <strong>File Upload Support</strong>.</p>
<p>The groundwork for this started midway last year, when we contributed the implementations for the <a href="https://github.com/matrix-org/matrix-react-sdk/pull/11311">Matrix React SDK</a> and the <a href="https://github.com/matrix-org/matrix-widget-api/pull/86">Matrix Widget API</a>, based on our proposed <a href="https://github.com/nordeck/matrix-spec-proposals/blob/nic/feat/widgetapi-upload-files/proposals/4039-widget-api-media.md">MSC4039: Access the Content repository with the Widget API</a>, which were released in <a href="https://github.com/element-hq/element-web/releases/tag/v1.11.46">Element Web v1.11.46</a> back in October 2023.</p>
<h4 id="demo-example">Demo / Example</h4>
<p>As this feature now lands in the toolkit, we provide an <a href="https://github.com/nordeck/matrix-widget-toolkit/pull/592">example widget</a> that you can try out for yourself by creating a new room and <a href="https://matrix-widget-toolkit-demo.netlify.app/">following these instructions</a>, which showcases how you can upload images and reference them in a room using custom events.</p>
<p>This not only includes the media repository image upload example but also several other samples of what you can do with the <a href="https://github.com/nordeck/matrix-widget-toolkit">Matrix Widget Toolkit</a>, such as manipulating room state events, read, observe and send message events, search the user directory, etc.</p>
<h4 id="features">Features</h4>
<p>We use this toolkit as the basis for our widgets, as it provides several reusable packages that are specific to Widget development, such as:</p>
<ul>
<li>a more <a href="https://github.com/nordeck/matrix-widget-toolkit/blob/main/packages/api">convenient wrapper</a> for the Widget API</li>
<li>a set of <a href="https://github.com/nordeck/matrix-widget-toolkit/blob/main/packages/react">React components</a> that make it straight-forward to integrate the Widget API in your web app</li>
<li>a <a href="https://github.com/nordeck/matrix-widget-toolkit/blob/main/packages/mui">themable and accessible MUI package</a> for implementing Widgets that have a consistent user interface when embedded within Element Web</li>
<li>mocked objects for improved <a href="https://github.com/nordeck/matrix-widget-toolkit/blob/main/packages/mui">testing support</a></li>
<li>and finally, <a href="https://github.com/nordeck/matrix-widget-toolkit/blob/main/containers/widget-server">a base container image</a> to host widgets in a production environment.</li>
</ul>
<p>Stay tuned for more exciting Widget-land updates from us in the following weeks! As usual, if you have any questions or feedback, you can reach us at <a href="https://matrix.to/#/#nordeck:matrix.org">#nordeck:matrix.org</a>.</p>
</blockquote>
<h3 id="trixnity-website">Trixnity (<a href="https://gitlab.com/trixnity/trixnity">website</a>)</h3>
<p>Multiplatform Kotlin SDK for Matrix</p>
<p><a href="https://matrix.to/#/@benedict:imbitbu.de">Benedict</a> reports</p>
<blockquote>
<p>Another small release in Trixnity:</p>
<p>features/improvements:</p>
<ul>
<li>added MatrixRegex (currently containing user regex). Thanks to @adambrangenberg</li>
</ul>
<p>bugfixes:</p>
<ul>
<li>fix missing RoomRoomUserReceiptsRepository declaration</li>
</ul>
</blockquote>
<h2 id="dept-of-services-rocket">Dept of Services 🚀</h2>
<h3 id="matrix-room-search">Matrix Room Search</h3>
<p><a href="https://matrix.to/#/@aine:etke.cc">Aine</a> says</p>
<blockquote>
<p>Matrix Rooms Search got stats timeline!</p>
<p>MRS is global Matrix Federation search engine we've built at <a href="https://etke.cc">etke.cc</a>.</p>
<p>The <code>/stats</code> endpoint was updated - now it includes <code>details</code> with online/indexable servers, and parsed/indexed rooms. Plus, the new <code>timeline</code> key was added with <code>details</code> per date.</p>
<p>The timeline is updated on each full reindex (on daily basis in case of the demo instance <a href="https://matrixrooms.info">matrixrooms.info</a>).</p>
<p>Alongside the new MRS endpoint, we've added visual representation on the <a href="https://matrixrooms.info/stats">MatrixRooms.info/stats</a> page.</p>
<p>Check the <a href="https://gitlab.com/etke.cc/mrs/api">source code</a>, and stay tuned in <a href="https://matrix.to/#/#mrs:etke.cc">#mrs:etke.cc</a> room!</p>
</blockquote>
<h3 id="tada-today-marks-3-years-of-etke-cc-tada">🎉 Today marks 3 years of <a href="https://etke.cc">etke.cc</a>! 🎉</h3>
<p>Your matrix server on your conditions</p>
<p><a href="https://matrix.to/#/@aine:etke.cc">Aine</a> announces</p>
<blockquote>
<p>The etke.cc managed Matrix hosting service was launched on the 12th of February 2021 and has turned 3 years old today!</p>
<p>Below, we'd like to show you what improvements have happened over the last year and what's coming ahead for us.</p>
<h4 id="new-payment-model-more-services-more-server-regions">New payment model, more services, more server regions</h4>
<p>In case you've missed <a href="https://etke.cc/news/lnyorh4ggeh9xadrob_rtuuqu_jj-s-ojfvvfzlmxpm/">our large news announcement</a> from December 2023, it's not too late to learn about it now.</p>
<p>To summarize, we have:</p>
<ul>
<li>switched to a <strong>new payment/pricing model</strong>, which is more sustainable</li>
<li>launched <strong>many of new components and services</strong> (see below) and will continue to launch new ones</li>
<li><strong>completely reworked</strong> <a href="https://etke.cc/order/"><strong>order form</strong></a> - easier for you and for us - a quicker turnaround time when deploying servers</li>
<li>began offering <strong>more powerful servers</strong> (using <a href="https://hetzner.cloud/?ref=1yg3ZZmtrg5A">Hetzner Cloud</a>'s CPX line) and <strong>in more geographic locations</strong> - <strong>including the U.S.</strong></li>
</ul>
<p>We encourage you to read the <a href="https://etke.cc/news/lnyorh4ggeh9xadrob_rtuuqu_jj-s-ojfvvfzlmxpm/">our original news announcement</a> for more details about these changes.</p>
<h5 id="new-component-additions">New component additions</h5>
<p>In the past year, we have launched many new Matrix-related and non-Matrix components.</p>
<p>If you'd like to use one or more of the components seen below, <a href="https://etke.cc/contacts/">contact us</a> and we'll install it to your existing server.</p>
<h5 id="new-matrix-related-components">New Matrix-related components</h5>
<p>All of the Matrix components described below are <strong>new additions</strong> to our stack. <strong>Some are installed by default</strong> to all servers managed by us, as part of our <a href="https://etke.cc/help/faq#what-are-the-base-matrix-components-installed-on-the-server">base Matrix components stack</a>.</p>
<ul>
<li>(free) <a href="https://github.com/matrix-org/sliding-sync">Sliding-sync</a> - assists next-generation clients like <a href="https://element.io/labs/element-x">Element X</a> in talking to the homeserver in an optimized manner. This component is installed by default to all servers as part of our <a href="https://etke.cc/help/faq#what-are-the-base-matrix-components-installed-on-the-server">base Matrix components stack</a>.</li>
<li>(free) Encrypted Bridges - we now offer a checkbox on our order form that globally enables encryption for all bridges that support it. This is experimental and may not work well for some bridges, so we don't recommend it to everyone.</li>
<li>(free) The <a href="https://github.com/matrix-org/rust-synapse-compress-state/#automated-tool-synapse_auto_compressor">synapse_auto_compressor</a> tool, which runs in the background and periodically compresses the (Postgres) database for the Synapse homeserver, so that it runs optimally. This component is installed by default to all servers as part of our <a href="https://etke.cc/help/faq#what-are-the-base-matrix-components-installed-on-the-server">base Matrix components stack</a>.</li>
<li>(free) We've switched to <a href="https://github.com/devture/exim-relay">exim-relay</a> for delivering emails (optionally via an <a href="https://etke.cc/help/extras/smtp-relay">SMTP relay</a>) and wired all email-sending components (the Synapse Matrix homeserver and other addons) to it.</li>
<li>(free addition to our $5/mo bridge pack) a <a href="https://etke.cc/help/bridges/mautrix-gmessages">Google Messages bridge</a> (powered by <code>mautrix-gmessages</code>). The old <a href="https://etke.cc/help/bridges/mautrix-googlechat">Google Chat bridge</a> still continues to work.</li>
<li>(+$1/mo) the <a href="https://schildi.chat/">SchildiChat</a> web-based Matrix client - an Element-web fork offering more customization.</li>
<li>(+$3/mo) <a href="https://etke.cc/help/bots/chatgpt/">ChatGPT</a> - a Large-Language-Model (LLM) bot that you can talk to via Matrix, based on <a href="https://openai.com/">OpenAI</a>'s <a href="https://openai.com/chatgpt">ChatGPT</a> (Requires a separately-obtained <a href="https://help.openai.com/en/articles/4936850-where-do-i-find-my-api-key">OpenAI API key</a>)</li>
<li>(+$2/mo) <a href="https://etke.cc/help/extras/synapse-s3-storage">S3 storage support for the Synapse homeserver</a> - for infinite Matrix media storage (Requires a separately obtained AWS S3-compatible object store of your choice)</li>
<li>(+$5/mo) <a href="https://github.com/element-hq/synapse/blob/master/docs/workers.md">Synapse workers</a> - a multi-process homeserver setup to more efficiently handle many users and large rooms (Requires a powerful server - 8+ GB of RAM)</li>
</ul>
<p>We've also replaced our <a href="https://etke.cc/help/bridges/mautrix-signal">Signal bridge</a> (<code>mautrix-signal</code>) offering with the new bridge implementation (complete rewrite from <a href="https://www.python.org/">Python</a> to <a href="https://go.dev/">Golang</a>).</p>
<h5 id="new-non-matrix-related-components">New non-Matrix-related components</h5>
<ul>
<li>(+$1/mo) [previously-offered and making a comeback] the <a href="https://etke.cc/help/extras/miniflux">Miniflux</a> RSS reader</li>
<li>(+$1/mo) [previously-offered and making a comeback] the <a href="https://radicale.org/">Radicale</a> CalDAV/CardDAV server</li>
<li>(+$1/mo) [previously-offered and making a comeback] the <a href="https://etke.cc/help/extras/uptime-kuma">Uptime Kuma</a> monitoring system</li>
<li>(+$1/mo) [brand new] the <a href="https://github.com/sissbruecker/linkding">Linkding</a> bookmark manager</li>
<li>(+$2/mo) [brand new] the <a href="https://etke.cc/help/extras/vaultwarden">Vaultwarden</a> password manager (a lightweight <a href="https://bitwarden.com/">Bitwarden</a>-compatible server which can be used with the Bitwarden client apps)</li>
<li>(+$2/mo) [brand new] the <a href="https://www.firezone.dev/">Firezone</a> - a VPN server based on <a href="https://www.wireguard.com/">WireGuard</a> with a Web UI</li>
<li>(+$3/mo) [brand new] the <a href="https://gotosocial.org/">GoToSocial</a> ActivityPub server (a lightweight <a href="https://joinmastodon.org/">Mastodon</a> alternative)</li>
</ul>
<h4 id="new-or-discontinued-etke-cc-services">New or discontinued etke.cc services</h4>
<h5 id="dedicated-support">Dedicated support</h5>
<p>On the services front, we're now offering a <a href="https://etke.cc/services/support">Dedicated support</a> tier for $100/mo. This is an addition to the free Basic support tier that we offer to all etke.cc customers.</p>
<p>The dedicated support tier is useful when your product relies on Matrix and you may require quicker help in case of outages. The main differences with the Basic tier are the <strong>dedicated Matrix chat room</strong> with etke.cc developers and the <strong>higher priority of your requests</strong> relative to others.</p>
<h5 id="matrix-rooms-search">Matrix Rooms Search</h5>
<p>We've developed the <a href="https://gitlab.com/etke.cc/mrs/api">Matrix Rooms Search tool</a> (naturally, as AGPLv3-licensed free-software). Anyone can run their instance and index the global Matrix Federation.</p>
<p>MRS provides a search across room names, topics, etc., allowing for better discoverability of rooms across all of Matrix.</p>
<p>We're making Matrix Rooms Search available to etke.cc customers in 2 ways:</p>
<ol>
<li>The <a href="https://matrixrooms.info/">MatrixRooms.info</a> website</li>
<li>Pre-configured as an alternative Rooms Directory in Element</li>
</ol>
<h5 id="more-domain-choices">More domain choices</h5>
<p>To those who don't wish to use their own custom domain for their server, we've been offering hosting on etke.cc-owned domains like <code>my-business.etke.host</code>.</p>
<p>At the expense of some independence (afforded by having your own custom domain), using etke.cc-owned domains allows people to avoid dealing with domains, DNS, and the cost that comes with that.</p>
<p>We now offer hosting on these additional domains:</p>
<ul>
<li><code>onmatrix.chat</code></li>
<li><code>kupo.email</code></li>
<li><code>matrix.town</code></li>
<li><code>matrix.fan</code></li>
<li><code>ma3x.chat</code></li>
</ul>
<p>When making a <a href="https://etke.cc/order/">new order</a>, you can claim your subdomain on any of these domains and get your Matrix server deployed more quickly and easily (no DNS configuration required on your side).</p>
<h5 id="discontinuing-our-custom-consulting-development-service">Discontinuing our Custom Consulting/Development service</h5>
<p>We used to offer a Custom Consulting/Development service - helping people with custom deployments or integrations on top of Matrix.</p>
<p>We have <strong>discontinued this service in order to free up time and let us focus on improving etke.cc for everyone</strong>. This is part of the reason why we have so many major improvements to announce in this birthday post.</p>
<h4 id="improved-internals">Improved internals</h4>
<p>Besides the many new components, services and tools, we've also done a lot of internal work - improving reliability and performance.</p>
<p>Below are some of the important internal changes we've done:</p>
<ul>
<li><a href="https://etke.cc/scheduler">The Scheduler</a>:
<ul>
<li>Automatic HTTP, DNS, and port checks, including federation tests, on <code>run ping</code> and <code>run maintenance</code></li>
<li>Cumulative alerts - we combine multiple failure alerts into a single message that we deliver via Matrix and email</li>
<li>Improved deliverability of emails, thanks to sending them via <a href="https://postmarkapp.com/">Postmark</a></li>
<li>Full overhaul of the agent/worker (injector) part making it blazing-fast and decreasing the delay (to milliseconds) between receiving a command from the user and executing it</li>
<li>Huge refactoring of the codebase</li>
<li>Many automation improvements, allowing us to more quickly and easily install new servers</li>
</ul>
</li>
<li>Server Maintenance:
<ul>
<li>Automatic Postgres database vacuuming on each maintenance run</li>
<li>Automatic Postgres database tuning (based on <a href="https://pgtune.leopard.in.ua/">PGTune</a>'s calculaton logic) which takes into account your server's configuration and installed components</li>
</ul>
</li>
<li>Networking: reworked Matrix stack networking for improved security, performance and ease of plugging-in new services (we've migrated from <a href="https://nginx.org/">nginx</a> to <a href="https://traefik.io/">Traefik</a>)</li>
<li>Emails: we've also configured <a href="https://en.wikipedia.org/wiki/DomainKeys_Identified_Mail">DKIM</a>, <a href="https://en.wikipedia.org/wiki/Sender_Policy_Framework">SPF</a> and <a href="https://en.wikipedia.org/wiki/List_of_DNS_record_types#PTR">rDNS</a> for customers hosted on our (<a href="https://hetzner.cloud/?ref=1yg3ZZmtrg5A">Hetzner Cloud</a>) servers - this improves outgoing email deliverability for big providers like Google (see <a href="https://blog.google/products/gmail/gmail-security-authentication-spam-protection/">New Gmail protections for a safer, less spammy inbox</a>)</li>
</ul>
<h4 id="free-software-work">Free-software work</h4>
<p>We've also done a lot of work on a new free-software (AGPLv3) Ansible mega-playbook - <a href="https://github.com/mother-of-all-self-hosting/mash-playbook">mash-playbook</a>, which currently includes 80+ components. Many of these began their life at etke.cc, while others were developed by us (or by the community) later on. Some of these components will be offered as addon components to etke.cc customers in the future. There are no technical difficulties to offering all of them immediately, but supporting a new component is not so simple - it requires documentation, commitment, support-staff training, etc.</p>
<p>Components from mash-playbook and the <a href="https://github.com/spantaleev/matrix-docker-ansible-deploy">matrix-docker-ansible-deploy</a> playbook are at the core of our automation (<a href="https://gitlab.com/etke.cc/ansible">etke/ansible</a>), powering all servers managed by us.</p>
<p>As part of our work over the past year, we have also developed and released as free-software (AGPLv3) the following new tools:</p>
<ul>
<li><a href="https://gitlab.com/etke.cc/mrs/api">MRS</a> - Matrix Rooms Search, the backend that powers our <a href="https://matrixrooms.info/">MatrixRooms.info</a> service (discussed above)</li>
<li><a href="https://gitlab.com/etke.cc/tools/agru">A.G.R.U</a> - a command-line tool like <a href="https://docs.ansible.com/ansible/latest/cli/ansible-galaxy.html">ansible-galaxy</a>, but faster</li>
<li><a href="https://gitlab.com/etke.cc/tools/ansible-ssh">ansible-ssh</a> - a command-line tool (wrapper around <code>ssh</code>) that makes it easy to SSH into hosts found in an <a href="https://docs.ansible.com/ansible/latest/inventory_guide/index.html">Ansible inventory</a> file</li>
<li><a href="https://gitlab.com/etke.cc/radicale-auth-matrix">radicale-auth-matrix</a> - an adapter that connects <a href="https://radicale.org/">Radicale</a>'s user authentication system to Matrix</li>
</ul>
<h4 id="numbers">Numbers</h4>
<ul>
<li>We've <strong>installed 243 new Matrix servers</strong></li>
<li><strong>Pushed 461 updates and enhancements</strong> to the automation framework used as the service core</li>
<li><strong>Posted 60 updates</strong> in the announcements room, so you're always up-to-date with what we're working on</li>
</ul>
<p>If you're curious to travel back in time, here are posts from previous etke.cc birthdays:</p>
<ul>
<li><a href="https://etke.cc/news/upsyw4ykbtgmwhz8k7ukldx0zbbfq-fh0iqi3llixi0/"><em>2 years celebration post</em></a></li>
<li><a href="https://etke.cc/news/j-48qcbzgshru3ap7hictalntpwqtotgltct01mhrmw/"><em>1 year celebration post</em></a></li>
</ul>
</blockquote>
<h2 id="dept-of-guides">Dept of Guides 🧭</h2>
<h3 id="matrix-client-tutorial">Matrix Client Tutorial</h3>
<p><a href="https://matrix.to/#/@hubert:uhoreg.ca">uhoreg</a> announces</p>
<blockquote>
<p>My <a href="https://uhoreg.gitlab.io/matrix-tutorial/index.html">Matrix Client Tutorial</a> now has a simple demo program showing how to use the encryption routines. Non-encryption-related, I've also added support for the <code>Retry-After</code> header as per <a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4041">MSC4041</a>, which is currently in FCP. Next up, I plan on going through the encryption section again to do some cleaning things up and filling in some missing details. After that, I'll probably write about the media repository, so that I can write about encrypted media.</p>
</blockquote>
<h2 id="matrix-federation-stats">Matrix Federation Stats</h2>
<p><a href="https://matrix.to/#/@aine:etke.cc">Aine</a> reports</p>
<blockquote>
<p>collected by <a href="https://matrixrooms.info">MatrixRooms.info</a> - an <a href="https://gitlab.com/etke.cc/mrs/api">MRS</a> instance by <a href="https://etke.cc?utm_source=twim&utm_medium=matrix&utm_campaign=federation-stats">etke.cc</a></p>
<p>As of today, <code>8757</code> Matrix federateable servers have been discovered by matrixrooms.info, <code>2490</code> (<code>28.4%</code>) of them are publishing their rooms directory over federation.
The published directories contain <code>20629</code> rooms.</p>
<p>Stats timeline is available on <a href="https://matrixrooms.info/stats">MatrixRooms.info/stats</a></p>
<p><a href="https://gitlab.com/etke.cc/mrs/api/-/blob/main/docs/indexing.md">How to add your server</a> | <a href="https://gitlab.com/etke.cc/mrs/api/-/blob/main/docs/deindexing.md">How to remove your server</a></p>
</blockquote>
<h2 id="dept-of-ping-table-tennis-paddle-and-ball">Dept of Ping 🏓</h2>
<p>Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by <a href="https://github.com/maubot/echo">pingbot</a>, a <a href="https://github.com/maubot/maubot">maubot</a> that you can host on your own server.</p>
<h3 id="ping-maunium-net"><a href="https://matrix.to/#/#ping:maunium.net">#ping:maunium.net</a></h3>
<p>Join <a href="https://matrix.to/#/#ping:maunium.net">#ping:maunium.net</a> to experience the fun live, and to find out how to add YOUR server to the game.</p>
<table><thead><tr><th style="text-align: center">Rank</th><th style="text-align: center">Hostname</th><th style="text-align: center">Median MS</th></tr></thead><tbody>
<tr><td style="text-align: center">1</td><td style="text-align: center">ari.lt</td><td style="text-align: center">251</td></tr>
<tr><td style="text-align: center">2</td><td style="text-align: center">fostered.uk</td><td style="text-align: center">276.5</td></tr>
<tr><td style="text-align: center">3</td><td style="text-align: center">maunium.net</td><td style="text-align: center">278</td></tr>
<tr><td style="text-align: center">4</td><td style="text-align: center">nerdhouse.io</td><td style="text-align: center">280.5</td></tr>
<tr><td style="text-align: center">5</td><td style="text-align: center">arva.net</td><td style="text-align: center">382</td></tr>
<tr><td style="text-align: center">6</td><td style="text-align: center">matrix.its-tps.fr</td><td style="text-align: center">448</td></tr>
<tr><td style="text-align: center">7</td><td style="text-align: center">aguiarvieira.pt</td><td style="text-align: center">491</td></tr>
<tr><td style="text-align: center">8</td><td style="text-align: center">littlevortex.net</td><td style="text-align: center">533</td></tr>
<tr><td style="text-align: center">9</td><td style="text-align: center">midnightthoughts.space</td><td style="text-align: center">659</td></tr>
<tr><td style="text-align: center">10</td><td style="text-align: center">brothertec.eu</td><td style="text-align: center">717.5</td></tr>
</tbody></table>
<h3 id="ping-no-synapse-maunium-net"><a href="https://matrix.to/#/#ping-no-synapse:maunium.net">#ping-no-synapse:maunium.net</a></h3>
<p>Join <a href="https://matrix.to/#/#ping-no-synapse:maunium.net">#ping-no-synapse:maunium.net</a> to experience the fun live, and to find out how to add YOUR server to the game.</p>
<table><thead><tr><th style="text-align: center">Rank</th><th style="text-align: center">Hostname</th><th style="text-align: center">Median MS</th></tr></thead><tbody>
<tr><td style="text-align: center">1</td><td style="text-align: center">ari.lt</td><td style="text-align: center">127.5</td></tr>
<tr><td style="text-align: center">2</td><td style="text-align: center">aguiarvieira.pt</td><td style="text-align: center">142</td></tr>
<tr><td style="text-align: center">3</td><td style="text-align: center">nerdhouse.io</td><td style="text-align: center">156.5</td></tr>
<tr><td style="text-align: center">4</td><td style="text-align: center">chatinamatrix.xyz</td><td style="text-align: center">158</td></tr>
<tr><td style="text-align: center">5</td><td style="text-align: center">spritsail.io</td><td style="text-align: center">179</td></tr>
<tr><td style="text-align: center">6</td><td style="text-align: center">fostered.uk</td><td style="text-align: center">195.5</td></tr>
<tr><td style="text-align: center">7</td><td style="text-align: center">matrix.its-tps.fr</td><td style="text-align: center">198</td></tr>
<tr><td style="text-align: center">8</td><td style="text-align: center">inu.is</td><td style="text-align: center">206</td></tr>
<tr><td style="text-align: center">9</td><td style="text-align: center">dendrite.s3cr3t.me</td><td style="text-align: center">226.5</td></tr>
<tr><td style="text-align: center">10</td><td style="text-align: center">littlevortex.net</td><td style="text-align: center">471</td></tr>
</tbody></table>
<h2 id="that-s-all-i-know">That's all I know</h2>
<p>See you next week, and be sure to stop by <a href="https://matrix.to/#/#twim:matrix.org">#twim:matrix.org</a> with your updates!</p>
This Week in Matrix 2024-02-092024-02-09T00:00:00+00:002024-02-09T00:00:00+00:00Thibhttps://matrix.org/blog/2024/02/09/this-week-in-matrix-2024-02-09/<h2 id="matrix-live">Matrix Live</h2>
<noscript>Today's Matrix Live: <a href="https://youtube.com/watch?v=s5BrVVf0B1I">https://youtube.com/watch?v=s5BrVVf0B1I</a></noscript>
<youtube-player video-id="s5BrVVf0B1I"></youtube-player>
<h2 id="dept-of-status-of-matrix-face-with-th">Dept of <em>Status of Matrix</em> 🌡️</h2>
<p><a href="https://matrix.to/#/@matthew:matrix.org">Matthew</a> says</p>
<blockquote>
<p>Very happy to announce that the Spec Core Team has been reviewing how to make more progress on MSCs and get more organisational diversity into the SCT, and we've decided to expand the team - unanimously voting to add both tulir and clokep to the team effective today. Huge thanks to both tulir and clokep for being up for joining and donating their time... and looking forwards to their contributions in helping get MSCs to and through their Final Comment Period and merged into the spec!</p>
</blockquote>
<p><a href="https://matrix.to/#/@josh:josh.tel">Josh Simmons</a> says</p>
<blockquote>
<p>We’re excited to be forging stronger ties with other open source foundations, so that we can work together and lean on one another’s areas of expertise. Last week we announced that <a href="https://openforumeurope.org/mozilla-and-the-matrix-org-foundation-join-ofe-as-supporters/">the Matrix.org Foundation joined OpenForum Europe</a> as a supporter alongside Mozilla and many others.</p>
<p>Adding to that, we’re pleased to share that we have become <a href="https://opensource.org/affiliates/">an affiliate of the Open Source Initiative</a> and joined their <a href="https://opensource.org/programs/open-policy-alliance/">Open Policy Alliance</a>, and we’ve also <a href="https://www.eclipse.org/membership/exploreMembership.php">joined the Eclipse Foundation as an associate member</a>.</p>
<p>We look forward to going further, faster, together! 🚀</p>
</blockquote>
<span id="continue-reading"></span><h2 id="dept-of-spec-scroll">Dept of Spec 📜</h2>
<p><a href="https://matrix.to/#/@travis:t2l.io">TravisR</a> announces</p>
<blockquote>
<p>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.</p>
<h3 id="msc-status">MSC Status</h3>
<p><strong>New MSCs:</strong></p>
<ul>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4098">MSC4098: Use the SCIM protocol for provisioning</a></li>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4097">[WIP] MSC4097: Interactions between media redirection and authentication</a></li>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4096">MSC4096: Proposal to make forceTurn option configurable server-side</a></li>
</ul>
<p><strong>MSCs in Final Comment Period:</strong></p>
<ul>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/2705">MSC2705: Animated thumbnails for media</a> (merge)</li>
</ul>
<p><strong>Accepted MSCs:</strong></p>
<ul>
<li><em>No MSCs were accepted this week.</em></li>
</ul>
<p><strong>Closed MSCs:</strong></p>
<ul>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/3924">MSC3924: Capability-style access control for Matrix media</a> - closed in favour of <a href="https://github.com/matrix-org/matrix-spec-proposals/pull/3911">MSC3911: Linking media to events</a></li>
</ul>
</blockquote>
<h2 id="dept-of-clients-iphone">Dept of Clients 📱</h2>
<h3 id="schildichat-website">SchildiChat (<a href="https://schildi.chat">website</a>)</h3>
<p>SchildiChat is a fork of Element that focuses on UI changes such as message bubbles and a unified chat list for both direct messages and groups, which is a more familiar approach to users of other popular instant messengers.</p>
<p><a href="https://matrix.to/#/@spiritcroc:spiritcroc.de">SpiritCroc</a> announces</p>
<blockquote>
<p><a href="https://github.com/SchildiChat/schildichat-android-next">SchildiChat Next</a>, our SchildiChat Android rewrite based on Element X, has received a couple of updates since our last report.</p>
<p>First, spaces support has matured.
We now properly integrate the space filter with sliding sync, which means that when you filter for spaces, you're less likely to encounter missing room previews.
Additionally, aggregated space unread counts and swipe gesture to switch spaces are back, and user-chosen space sort order is now respected.</p>
<p>Independent of spaces but also related to features that our old Android app had, you can now mark rooms as unread again, following <a href="https://github.com/matrix-org/matrix-spec-proposals/pull/2867">MSC2867</a>.
Similarly, incoming HTML details-tags in formatted messages as sent by some bots are now collapsed by default again, allowing you to expand them on demand by touching the message.</p>
<p>Since Element X has added support for UnifiedPush, we naturally have that back now too.
However, I changed our implementation a bit to use <a href="https://github.com/UnifiedPush/android-foss_embedded_fcm_distributor">UnifiedPush's FOSS FCM distributor</a>, which means that ideally we can avoid having to maintain two separate app flavors for the Play Store and F-Droid releases in the future (once we do stable releases), and those who install it from F-Droid can still use FCM for push notifications if their device supports it, while not having any closed-source Google library bundled with the app.
I'm curious how well this works, so let us know if you have any issues with FCM that you cannot reproduce on Element X!
Custom user-installed push distributors are given precedence over FCM, of course.</p>
<p>On the infrastructure side, translations of our SchildiChat-specific strings added on top of Element are now open for contributions at our <a href="https://weblate.spiritcroc.de/projects/schildichat/schildichat-android-next/">weblate</a>.
Thank you to everyone who has already contributed!</p>
</blockquote>
<h3 id="fluffychat-website">FluffyChat (<a href="https://fluffychat.im">website</a>)</h3>
<p><a href="https://matrix.to/#/@krille:janian.de">Krille-chan</a> announces</p>
<blockquote>
<p>FluffyChat v1.17.3 has been released 🎉 with a bunch of bugfixes and the return of the wallpaper feature. This time it works on all platforms and is synchronized between your sessions.</p>
<h3 id="full-changelog">Full changelog:</h3>
<ul>
<li>
<p>feat: New account data based wallpaper feature (Krille)</p>
</li>
<li>
<p>build: Update dependencies (Krille)</p>
</li>
<li>
<p>build: Update flutter to 3.16.9 (Krille)</p>
</li>
<li>
<p>build: Update matrix dart sdk to 0.25.7 (Krille)</p>
</li>
<li>
<p>build: Update minor versions (Krille)</p>
</li>
<li>
<p>chore: Adjust status msg design (krille-chan)</p>
</li>
<li>
<p>chore: Improved error handling for recovery key (Krille)</p>
</li>
<li>
<p>chore: Make stickers smaller (Krille)</p>
</li>
<li>
<p>chore: Wait for device keys before ask bootstrap (Krille)</p>
</li>
<li>
<p>fix: Missing null check in public room bottom sheet (Krille)</p>
</li>
<li>
<p>fix: onDragDone crashes when no files found (Krille)</p>
</li>
<li>
<p>fix: Render tg-forward html tags (Krille)</p>
</li>
<li>
<p>fix: Use HapticFeedback.selectionClick() for long press on message (Krille)</p>
</li>
<li>
<p>fix: whitespaces sometimes encoded in html message (Krille)</p>
</li>
<li>
<p>fix: Share invite links of public rooms (Krille)</p>
</li>
</ul>
<p><img src="/blog/img/GikbsgpFNbcnxZrykFPurpRg.png" alt="" /></p>
</blockquote>
<h3 id="element-x-ios-website">Element X iOS (<a href="https://github.com/vector-im/element-x-ios">website</a>)</h3>
<p>A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.</p>
<p><a href="https://matrix.to/#/@stefan.ceriu:matrix.org">Ștefan</a> reports</p>
<blockquote>
<ul>
<li>Element X v1.5.5 is now available on the AppStore. <a href="https://github.com/element-hq/element-x-ios/releases/tag/1.5.5">release notes</a></li>
<li><a href="https://github.com/element-hq/element-x-ios/pull/2408">Manually marking rooms as unread</a> has made it to develop</li>
<li>and so has an initial version of the <a href="https://github.com/element-hq/element-x-ios/pull/2423">room list filters</a></li>
<li>we have <a href="https://github.com/element-hq/element-x-ios/pull/2425">moved member details loading to the member detail page</a> and are not no longer blocking the whole application while that's happening</li>
<li>fixed a crash when receiving thumbnails with zero widths or heights</li>
<li>various other improvements to the rich text editor, compound and out testing stack</li>
</ul>
</blockquote>
<h2 id="dept-of-non-chat-clients-control-knobs">Dept of Non Chat Clients 🎛️</h2>
<h3 id="circles-website">Circles (<a href="https://www.kombuchaprivacy.com/circles/">website</a>)</h3>
<p>E2E encrypted social networking built on Matrix. Safe, private sharing for your friends, family, and community.</p>
<p><a href="https://matrix.to/#/@cvwright:futo.org">cvwright</a> says</p>
<blockquote>
<p>This week we fixed a particularly bad bug that had appeared in recent Circles iOS beta releases, where the app would fail to resume syncing with the server under certain conditions. We released v0.9.5 which (we think!) finally resolved the last of the sync issues. Then we also released a further update v0.9.6 to address a corner case where users could not decrypt messages posted between the time when they were initially invited and when they finally joined the room. With these two beta releases, we believe we have resolved all known decryption issues. It should be smoother sailing from here! The latest Circles iOS build is available for beta testers on Apple's <a href="https://testflight.apple.com/join/Hvj9S0SX">TestFlight</a>.</p>
<p>On Android, Circles v1.0.25 is now available on <a href="https://f-droid.org/en/packages/org.futo.circles/">F-Droid.org</a> and in beta release on the <a href="https://play.google.com/store/apps/details?id=org.futo.circles">Play Store</a>.</p>
<p>Source code for both platforms is available as always from the <a href="https://gitlab.futo.org/circles">FUTO Gitlab</a> and from our <a href="https://github.com/futo-org/">Github mirrors</a>.</p>
</blockquote>
<h2 id="dept-of-sdks-and-frameworks">Dept of SDKs and Frameworks 🧰</h2>
<h3 id="rory-libmatrix-net-8-matrix-bot-client-library-sdk">Rory&::LibMatrix (.NET 8 matrix bot/client library/SDK)</h3>
<p><a href="https://matrix.to/#/@emma:rory.gay">Emma [it/its]</a> says</p>
<blockquote>
<p>This week has some minor changes and cleanup</p>
<h3 id="changes">Changes</h3>
<ul>
<li><code>room.GetNameOrFallbackAsync()</code> now returns alias before building from member list</li>
<li>Cleaned up the EventTypes sub-library to consistently have EventId constants defined, for easy access</li>
<li><code>room.GetManyMessagesAsync(...)</code> now has an optional <code>chunkSize</code> property, in order to cap the <code>limit=</code> sent on the API.</li>
<li>Applied syntax style across all of LibMatrix</li>
</ul>
<p><em><strong>And, as always:</strong></em></p>
<ul>
<li>The code is available at <a href="https://cgit.rory.gay/matrix/LibMatrix.git">cgit.rory.gay</a>!
<ul>
<li>All contributions are more than welcome, be it documentation, code, anything! Perhaps, example usecases, bots, ...?</li>
</ul>
</li>
<li>Discussion, suggestions and ideas are welcome in <a href="https://matrix.to/#/#libmatrix:rory.gay">#libmatrix:rory.gay</a> (Space: <a href="https://matrix.to/#/#mru-space:rory.gay">#mru-space:rory.gay</a>)</li>
<li>Got a cool project that you're working on and want to share, using LibMatrix? Be sure to let me know, I'd love to hear all about it!</li>
</ul>
</blockquote>
<h2 id="dept-of-events-and-talks">Dept of Events and Talks 🗣️</h2>
<p><a href="https://matrix.to/#/@kim:sosnowkadub.de">HarHarLinks</a> announces</p>
<blockquote>
<p>Hello TWIM! The Matrix Foundation and Community were at FOSDEM last weekend (<a href="https://matrix.to/#/#fosdem2024-foundation-community-meetup:matrix.org">#fosdem2024-foundation-community-meetup:matrix.org</a>) so we want to share this quick look back:</p>
<p>Thank you everyone for joining us at <a href="https://fosdem.org/">FOSDEM 2024</a>! We had a great time and hope everyone arrived back home well and healthy, and wish anyone still on the road for other conferences or travelling reaaaally far a safe journey!</p>
<p>The Matrix Foundation and Community would like to thank <a href="https://hsbxl.be/">Hackerspace Brussels</a> (on Matrix: <a href="https://matrix.to/#/#hsbxl:matrix.org">#hsbxl:matrix.org</a>) for hosting the meetup on Friday on their premises again, and particular everyone involved with opening the gate for new arrivals, tending the bar, helping with pizza orders, and all the small odd things that need to get handled during such an event. We wish you the best for your move to the new location in the coming weeks and look forward to visiting you there next year! 🧑💻</p>
<p>We also want to express our gratitude to the sponsors of the Fringe event: Thanks to <a href="https://nordeck.net/">Nordeck</a> (<a href="https://matrix.to/#/#nordeck:matrix.org">#nordeck:matrix.org</a>) and <a href="https://www.famedly.com/">Famedly</a> covering the cost, the Foundation was able to provide drinks and pizzas for everyone at the Fringe event! 🍻</p>
<p>Speaking of pizza, special thanks to Adrian and <a href="https://pommodorobxl.be">Pommodoro Brussels</a> for the excellent pizza and for fulfilling all our requests for vegetarian and vegan pizza! 🍕</p>
<p>Finally on behalf of the Community group co-organizing the fringe event, I'd like to thank the Foundation for the great support with planning and also covering the administrative tasks such as the financials! 🤝</p>
<p>On Saturday and Sunday there was the Matrix stand on the <del>first</del> <del>second</del> upper level of building K. I must say it was incredibly busy. We had so many visitors come by - we distributed thousands of Matrix stickers and 100 T-shirts! Thanks to everyone helping at and around the stand, answering questions, collecting donations, helping with the T-shirts sales! And thanks to everyone visiting the stand to say hi and chat, to ask your question, learn about Matrix, or give your feedback! 👕</p>
<p>On Sunday afternoon there was the <a href="https://fosdem.org/2024/schedule/track/matrix/">Matrix devroom</a> in H.1309 (Van Rijn)! Thanks to everyone presenting their project, thanks to the devroom hosts and helpers, and thanks to the FOSDEM and VOC crew for helping out and recording the sessions! The recordings should be available <a href="https://fosdem.org/2024/schedule/">through the FOSDEM website</a> and are also <a href="https://www.youtube.com/watch?v=s5BrVVf0B1I&list=PLl5dnxRMP1hWa_UHphXfOHvaw4B2JfSlx">mirrored on YouTube</a> by the Foundation. 🗣️</p>
<p>Thank you to all the individuals and organisations who signed up to support the Matrix Foundation, be it during FOSDEM or before! If you haven't yet, learn more <a href="https://matrix.org/support/">here</a>! 🫂</p>
<p>Finally, thanks to YOU for attending! Be it in person at the Fringe event, the stand, the main track talk, the devroom, or online in the chat room and stream! It was great to meet everyone and now as we are arriving back home, we can already not wait to see you again next time! 👋</p>
<p>Find the FOSDEM 2024 Wrap Up blog post on the <a href="https://matrix.org/blog/2024/02/fosdem-wrap-up/">Matrix.org blog</a> for a summary, some photos, and links to the video recordings of the Matrix talks!</p>
</blockquote>
<p><a href="https://matrix.to/#/@thib:ergaster.org">Thib</a> announces</p>
<blockquote>
<p>Whether you could make it to FOSDEM or not, here's <a href="https://matrix.org/blog/2024/02/fosdem-wrap-up/">our wrap-up from the conference</a>. If you missed some talks, you can catch up with <a href="https://www.youtube.com/watch?v=s5BrVVf0B1I&list=PLl5dnxRMP1hWa_UHphXfOHvaw4B2JfSlx">the YouTube Playlist of all the talks</a> (or find the original recordings on https://fosdem.org/2024/schedule/track/matrix/ but those have audio/video sync issues)</p>
</blockquote>
<h2 id="matrix-federation-stats">Matrix Federation Stats</h2>
<p><a href="https://matrix.to/#/@aine:etke.cc">Aine</a> announces</p>
<blockquote>
<p>collected by <a href="https://matrixrooms.info">MatrixRooms.info</a> - an <a href="https://gitlab.com/etke.cc/mrs/api">MRS</a> instance by <a href="https://etke.cc?utm_source=twim&utm_medium=matrix&utm_campaign=federation-stats">etke.cc</a></p>
<p>As of today, <code>8777</code> Matrix federateable servers have been discovered by matrixrooms.info, <code>2497</code> (<code>28.4%</code>) of them are publishing their rooms directory over federation.
The published directories contain <code>20591</code> rooms. <em>unpublished and offline rooms were removed</em></p>
<p><a href="https://gitlab.com/etke.cc/mrs/api/-/blob/main/docs/indexing.md">How to add your server</a> | <a href="https://gitlab.com/etke.cc/mrs/api/-/blob/main/docs/deindexing.md">How to remove your server</a></p>
</blockquote>
<h2 id="dept-of-ping">Dept of Ping</h2>
<p>Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by <a href="https://github.com/maubot/echo">pingbot</a>, a <a href="https://github.com/maubot/maubot">maubot</a> that you can host on your own server.</p>
<h3 id="ping-maunium-net"><a href="https://matrix.to/#/#ping:maunium.net">#ping:maunium.net</a></h3>
<p>Join <a href="https://matrix.to/#/#ping:maunium.net">#ping:maunium.net</a> to experience the fun live, and to find out how to add YOUR server to the game.</p>
<table><thead><tr><th style="text-align: center">Rank</th><th style="text-align: center">Hostname</th><th style="text-align: center">Median MS</th></tr></thead><tbody>
<tr><td style="text-align: center">1</td><td style="text-align: center">maunium.net</td><td style="text-align: center">245.5</td></tr>
<tr><td style="text-align: center">2</td><td style="text-align: center">aguiarvieira.pt</td><td style="text-align: center">246.5</td></tr>
<tr><td style="text-align: center">3</td><td style="text-align: center">ari.lt</td><td style="text-align: center">259</td></tr>
<tr><td style="text-align: center">4</td><td style="text-align: center">nerdhouse.io</td><td style="text-align: center">261</td></tr>
<tr><td style="text-align: center">5</td><td style="text-align: center">fostered.uk</td><td style="text-align: center">268</td></tr>
<tr><td style="text-align: center">6</td><td style="text-align: center">plocki.org</td><td style="text-align: center">336</td></tr>
<tr><td style="text-align: center">7</td><td style="text-align: center">lama-corp.space</td><td style="text-align: center">391</td></tr>
<tr><td style="text-align: center">8</td><td style="text-align: center">sulian.eu</td><td style="text-align: center">518</td></tr>
<tr><td style="text-align: center">9</td><td style="text-align: center">2345781.xyz</td><td style="text-align: center">676.5</td></tr>
<tr><td style="text-align: center">10</td><td style="text-align: center">matrix.its-tps.fr</td><td style="text-align: center">707.5</td></tr>
</tbody></table>
<h3 id="ping-no-synapse-maunium-net"><a href="https://matrix.to/#/#ping-no-synapse:maunium.net">#ping-no-synapse:maunium.net</a></h3>
<p>Join <a href="https://matrix.to/#/#ping-no-synapse:maunium.net">#ping-no-synapse:maunium.net</a> to experience the fun live, and to find out how to add YOUR server to the game.</p>
<table><thead><tr><th style="text-align: center">Rank</th><th style="text-align: center">Hostname</th><th style="text-align: center">Median MS</th></tr></thead><tbody>
<tr><td style="text-align: center">1</td><td style="text-align: center">ari.lt</td><td style="text-align: center">113</td></tr>
<tr><td style="text-align: center">2</td><td style="text-align: center">fostered.uk</td><td style="text-align: center">124</td></tr>
<tr><td style="text-align: center">3</td><td style="text-align: center">aguiarvieira.pt</td><td style="text-align: center">143</td></tr>
<tr><td style="text-align: center">4</td><td style="text-align: center">nerdhouse.io</td><td style="text-align: center">145</td></tr>
<tr><td style="text-align: center">5</td><td style="text-align: center">frai.se</td><td style="text-align: center">165.5</td></tr>
<tr><td style="text-align: center">6</td><td style="text-align: center">matrix.its-tps.fr</td><td style="text-align: center">170</td></tr>
<tr><td style="text-align: center">7</td><td style="text-align: center">daedric.net</td><td style="text-align: center">281</td></tr>
<tr><td style="text-align: center">8</td><td style="text-align: center">inu.is</td><td style="text-align: center">313</td></tr>
</tbody></table>
<h2 id="that-s-all-i-know">That's all I know</h2>
<p>See you next week, and be sure to stop by <a href="https://matrix.to/#/#twim:matrix.org">#twim:matrix.org</a> with your updates!</p>
FOSDEM 2024 Wrap Up2024-02-08T16:00:00+00:002024-02-08T16:00:00+00:00Thibhttps://matrix.org/blog/2024/02/fosdem-wrap-up/<p>This year again the Matrix.org Foundation was at FOSDEM, and what a huge energy boost it has been for us! Between a Fringe Event for the Matrix community to gather, a booth where the vast majority of people came by to show their support for our work, a devroom with four hours of awesome Matrix content, and last but not least a main track talk where Matthew covered what we had been doing for the past year… It has been a very intense weekend!</p>
<span id="continue-reading"></span><h2 id="fringe-event">Fringe Event</h2>
<p>The first stop in our FOSDEM journey was the Fringe Event on Friday afternoon at <a href="https://hsbxl.be/">HSBXL</a>, a hackerspace that was very on-brand: you need to <a href="https://hsbxl.be/enter/#walk-to-door-a">follow the white rabbit to get in</a>. More than a 100 of us gathered in that disused factory to talk about everything Matrix.</p>
<p>Thanks to the sponsorship of <a href="https://nordeck.net/">Nordeck</a> and <a href="https://www.famedly.com/">Famedly</a> and to the extensive efforts of Adrian and the rest of the HSBXL staff, the Foundation could offer 70 pizzas and crates and crates of drinks to the community. Not only was it great to meet people in the flesh: we could also have a tonne of interesting discussions around the Foundation’s governance, funding, trust & safety tooling, and plenty more that we’re going to factor into our roadmap. And look at this happy community!</p>
<p><img src="/blog/img/fosdem2024-fringe.jpg" alt="A picture of several dozens of people smiling in a room. Some of them are holding a Matrix flag together." /></p>
<h2 id="a-crowded-booth">A crowded Booth</h2>
<p>After an already successful Friday, it was time to head to FOSDEM itself: for two days the booth was manned by a tireless team, answering questions from a very enthusiastic community. What struck me the most this year was the number of Matrix t-shirts and hoodies people wore at the conference before even stopping by our booth.</p>
<p>Needless to say, Matrix is <em>extremely popular</em> in OSS communities. Most people knew and already loved Matrix when coming to the booth, a few didn’t know Matrix, and even fewer people told us where we need to improve for them to consider using it.</p>
<p><img src="/blog/img/fosdem2024-booth.jpg" alt="A picture of three persons standing behind a table. One of them has his arm stretched, the two others are looking at the camera smiling. There are folded t-shirts and stickers on the table." /></p>
<p>We brought a box of 100 t-shirts and several thousands of stickers with us this year. Some t-shirt sizes were sold out on the first day, and by the end of the weekend we had sold everything. Lesson learnt: bring much more next year!</p>
<h2 id="a-main-track-talk-selected-for-the-highlights">A main track talk selected for the highlights</h2>
<p>Matrix is well on its way to become the one ubiquitous protocol that will finally open up the communication silos. During the past year, a lot has been going on. As a testament to Matrix maturity, the majority of our work was around polishing the rough edges and stabilising the protocol, rather than launching plenty of new features.</p>
<p>In <a href="https://fosdem.org/2024/schedule/event/fosdem-2024-3345-opening-up-communication-silos-with-matrix-2-0-and-the-eu-digital-markets-act/">his main track talk</a>, Matthew covered the past year in Matrix, our implication in the Digital Markets Act (DMA), and how Matrix could possibly be part of the solution for WhatsApp to become interoperable and compliant with the regulation.</p>
<noscript>Today's Matrix Live: <a href="https://youtube.com/watch?v=s5BrVVf0B1I">https://youtube.com/watch?v=s5BrVVf0B1I</a></noscript>
<youtube-player video-id="s5BrVVf0B1I"></youtube-player>
<p>Both <a href="https://www.wired.com/story/whatsapp-interoperability-messaging/">Wired</a> and <a href="https://techcrunch.com/2024/02/07/whatsapp-is-preparing-to-roll-out-third-party-chat-support/">TechCrunch</a> picked up the news that Element has been experimenting with DMA interoperability with WhatsApp via Matrix.</p>
<h2 id="a-packed-devroom">A packed devroom</h2>
<p>This year again we had the opportunity to get a <a href="https://fosdem.org/2024/schedule/track/matrix/">Matrix Devroom</a>: more than 4 hours of Matrix content for a delighted audience. Matrix State of the Union, DMA & Interoperability, MatrixRTC and more: there was a talk for everyone!</p>
<p><img src="/blog/img/fosdem2024-devroom.jpg" alt="A picture of Matthew and Amandine in front of a classroom with a wide audience. Amandine is holding the mic for Matthew. Their slides are projected, and we can ready "5 years from now, everyone will communicate via Matrix"" /></p>
<p>The devroom happened in a room twice as big as last year’s: it was still packed most of the time. We couldn’t be happier about the enthusiasm for Matrix that we have seen this year again! If you missed a talk you were interested in, you can still catch up with our <a href="https://www.youtube.com/watch?v=s5BrVVf0B1I&list=PLl5dnxRMP1hWa_UHphXfOHvaw4B2JfSlx">FOSDEM 2024 YouTube Playlist</a>.</p>
<h2 id="remote-and-local-online-attendance">Remote and local online attendance</h2>
<p>The online side of the conference went very smoothly. It is a testament to the hard work of the Matrix team who got to adapt it to the <a href="https://pretalx.fosdem.org/">FOSDEM Pretalx instance</a>, superseding the (in)famous <a href="https://github.com/nevs/pentabarf">Pentabarf</a> instance that it relied on so far.</p>
<p>Unsurprisingly, with roughly 7,980 signups online and 4,000 daily active users the online attendance is very far from the levels we have seen at the peak of the pandemic when FOSDEM couldn’t happen in person (plus we collectively forgot to publish the FOSDEM space URL anywhere!). Most people who wanted to attend FOSDEM were there in person, but we were here for people who couldn’t make it for whatever reason.</p>
<p>More surprisingly, I spotted a certain number of people sitting down in the hallways on their phones and laptops, in the middle of one of the largest European open source conferences. They were not catching a break from the conference: they were <em>attending</em> the conference online, even if they were on-site! With more than 10k visitors, some attendees couldn’t make it to the devrooms they wanted to attend… so they attended online. We even caught Amandine tuning into the EU Public Policy devroom from the Matrix devroom!</p>
<h2 id="you-re-making-this-possible">You’re making this possible</h2>
<p>This event was an enormous morale booster for the whole team, but we couldn’t make Matrix in the first place without your support. Whether you are an individual or an organisation who benefits from Matrix, please consider <a href="https://matrix.org/support/">supporting the Foundation financially</a> or <a href="https://matrix.org/membership/">becoming a member</a> to steer it in a direction that makes sense for you.</p>
This Week in Matrix 2024-02-022024-02-02T00:00:00+00:002024-02-02T00:00:00+00:00Hubert Chathihttps://matrix.org/blog/2024/02/02/this-week-in-matrix-2024-02-02/<h2 id="matrix-live">Matrix Live</h2>
<p>No Matrix Live this week, but there will be plenty of Matrix talks (live!) on
Sunday at FOSDEM in the <a href="https://fosdem.org/2024/schedule/track/matrix/">Matrix
devroom</a>, and at <a href="https://fosdem.org/2024/schedule/event/fosdem-2024-3345-opening-up-communication-silos-with-matrix-2-0-and-the-eu-digital-markets-act/">Matthew's
main track
talk</a>.
The talks are livestreamed, so you can follow even if you aren't at FOSDEM (or
if you <em>are</em> in FOSDEM but the room is full). If you are at FOSDEM, you can
also find live Matrix people at the matrix.org stand in Building K, level 2.</p>
<h2 id="dept-of-status-of-matrix-face-with-th">Dept of <em>Status of Matrix</em> 🌡️</h2>
<p><a href="https://matrix.to/#/@josh:josh.tel">Josh Simmons</a> announces</p>
<blockquote>
<p>Announced today during the EU Open Source Policy Summit in Brussels, <a href="https://openforumeurope.org/mozilla-and-the-matrix-org-foundation-join-ofe-as-supporters/">the Matrix.org Foundation and Mozilla have joined OpenForum Europe as supporters</a>. OpenForum Europe has proven an effective convener and advocate for open source and open standards in Europe, and we’re glad to help further that work.</p>
</blockquote>
<p><a href="https://matrix.to/#/@josh:josh.tel">Josh Simmons</a> announces</p>
<blockquote>
<p>This week the Matrix.org Foundation launched a new fundraiser, shared some high level budget figures, and kicked off a series diving into our emerging roadmap!</p>
<p>We’ve made huge strides over the last year, with the Foundation more robust and independent than ever before, and there’s a lot to be excited about in the future. Critically, we still need more organizations to step up to fund our work before January 2025.</p>
<p>Huge thanks to Beeper, Gematik, Fractal Networks, Fairkom, Thunderbird, and the hundreds of individuals who have already stepped up! Learn more in <a href="https://matrix.org/blog/2024/01/2024-roadmap-and-fundraiser/">our blog post</a> and <a href="https://matrix.org/membership/">become a member</a> today 🚀</p>
</blockquote>
<span id="continue-reading"></span><h2 id="dept-of-spec-scroll">Dept of Spec 📜</h2>
<p><a href="https://matrix.to/#/@hubert:uhoreg.ca">uhoreg</a> says</p>
<blockquote>
<p>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 <a href="https://spec.matrix.org/proposals">https://spec.matrix.org/proposals</a>.</p>
<h2 id="msc-status">MSC Status</h2>
<p><strong>New MSCs:</strong></p>
<ul>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4095">MSC4095: Bundled URL previews</a></li>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4094">[WIP] MSC4094: Sync Server and Client Times with endpoint</a></li>
</ul>
<p><strong>MSCs in Final Comment Period:</strong></p>
<ul>
<li><em>No MSCs are in FCP.</em></li>
</ul>
<p><strong>Accepted MSCs:</strong></p>
<ul>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/3981">MSC3981: <code>/relations</code> recursion</a></li>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/2702">MSC2702: Specifying semantics for Content-Disposition on media</a></li>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/2701">MSC2701: Clarifying <code>Content-Type</code> usage in the media repo</a></li>
</ul>
<p><strong>Closed MSCs:</strong></p>
<ul>
<li><em>No MSCs were closed/rejected this week.</em></li>
</ul>
</blockquote>
<h2 id="dept-of-clients-iphone">Dept of Clients 📱</h2>
<h3 id="element-x-ios-website">Element X iOS (<a href="https://github.com/vector-im/element-x-ios">website</a>)</h3>
<p>A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.</p>
<p><a href="https://matrix.to/#/@mauro.romito:element.io">Mauro Romito</a> announces</p>
<blockquote>
<ul>
<li>A new release candidate 1.5.5 has been submitted to the store, which will include the advanced setting of turning off read receipts when visiting rooms</li>
<li>Implemented a tool that downloads the translations for the SAS emojis verification system directly from the matrix spec, to localise the emoji names in the app</li>
<li>The macOS and iPad OS support now a quick room search feature by using the CMD+K command, that can be opened from anywhere</li>
<li>Redundant or unnecessary state events will now be filtered and removed from the timeline without the risk of compromising RRs.</li>
<li>Element Call, will now have its calls automatically start as encrypted based on the room encryption state in which they are started.</li>
<li>We are working to improve the error message that can be received when selecting invalid homeservers</li>
</ul>
</blockquote>
<h2 id="dept-of-non-chat-clients-control-knobs">Dept of Non Chat Clients 🎛️</h2>
<h3 id="circles-website">Circles (<a href="https://www.kombuchaprivacy.com/circles/">website</a>)</h3>
<p>E2E encrypted social networking built on Matrix. Safe, private sharing for your friends, family, and community.</p>
<p><a href="https://matrix.to/#/@cvwright:futo.org">cvwright</a> reports</p>
<blockquote>
<p>Circles is a secure social networking app for families and friends, built on Matrix to give users privacy and control. We have new releases on both mobile platforms this week.</p>
<p>Circles for Android is now available in the main F-Droid.org repo: <a href="https://f-droid.org/packages/org.futo.circles/">https://f-droid.org/packages/org.futo.circles/</a></p>
<ul>
<li>The current F-Droid version is 1.0.24</li>
<li>A new update 1.0.25 is in the pipeline, bringing fixes for threaded replies and UnifiedPush</li>
</ul>
<p>Circles for iOS continues inching ever closer to a 1.0 release, with two new builds this week on <a href="https://testflight.apple.com/join/Hvj9S0SX">TestFlight</a></p>
<ul>
<li>v0.9.3 brings smoother and more reliable signup/login, fixes for decryption bugs in v0.9.2, and better support for brand-new accounts that do not have secret storage already configured</li>
<li>v0.9.4 makes the app much more usable on the iPad</li>
</ul>
<p>Source code is available as always at <a href="https://gitlab.futo.org/circles">https://gitlab.futo.org/circles</a> and <a href="https://github.com/futo-org/">https://github.com/futo-org/</a></p>
</blockquote>
<h2 id="dept-of-sdks-and-frameworks">Dept of SDKs and Frameworks 🧰</h2>
<h3 id="elm-sdk">Elm SDK</h3>
<p><a href="https://matrix.to/#/@bram:matrix.directory">Bram</a> says</p>
<blockquote>
<p>In the past week, a major refactor has been finalized that only results in a patch change given Elm's semantic versioning: the Elm types can easily be encoded and decoded, as can be found in its <a href="https://noordstar.github.io/elm-matrix-sdk-beta/">documentation</a>. From now on, any Elm update is reflected on its documentation: starting from <a href="https://package.elm-lang.org/packages/noordstar/elm-matrix-sdk-beta/2.1.2/">the new patch update beta 2.1.2</a>!</p>
<p>I am still looking for feedback on how to design a proper immutable timeline data structure - if you have any tips, please help me out at the public <a href="https://matrix.to/#/#elm-sdk:matrix.org">#elm-sdk:matrix.org</a> room! Thanks.</p>
</blockquote>
<h3 id="rory-libmatrix-net-8-matrix-bot-client-library-sdk">Rory&::LibMatrix (.NET 8 matrix bot/client library/SDK)</h3>
<p><a href="https://matrix.to/#/@emma:rory.gay">Emma [it/its]</a> says</p>
<blockquote>
<p>Some larger changes this time around, although organisational.</p>
</blockquote>
<blockquote>
<h4 id="changes">Changes</h4>
<ul>
<li>FederationClient has been split out from RemoteHomeserver (access is available through <code>rhs.FederationClient</code>, if we were able to find the s2s API)</li>
<li>Federation API resolution failure no longer causes client initialisation failure (commonly caused by CORS)</li>
<li>MessageBuilder now has more functionality (eg. adding a HTML tag with attributes)</li>
<li>Sync filters now get uploaded to /filters and referenced by ID, rather than only being able to pass them in the URL. This also allows uploading them yourself. Utility functions have been provided to store/request them by names, if wanted.</li>
<li><em><strong>BIG CHANGE:</strong></em> LibMatrix is no longer a monorepo! All example bots have been split out into <a href="https://cgit.rory.gay/matrix">separate repositories</a></li>
</ul>
<h4 id="new-features">New features</h4>
<ul>
<li>You can now enumerate account data</li>
<li>You can now call /capabilities</li>
</ul>
<p><strong>And, as always:</strong></p>
<ul>
<li>The code is available at <a href="https://cgit.rory.gay/matrix/LibMatrix.git">cgit.rory.gay</a>!
<ul>
<li>All contributions are more than welcome, be it documentation, code, anything! Perhaps, example usecases, bots, ...?</li>
</ul>
</li>
<li>Discussion, suggestions and ideas are welcome in <a href="https://matrix.to/#/#libmatrix:rory.gay">#libmatrix:rory.gay</a> (Space: <a href="https://matrix.to/#/#mru-space:rory.gay">#mru-space:rory.gay</a>)</li>
<li>Got a cool project that you're working on and want to share, using LibMatrix? Be sure to let me know, I'd love to hear all about it!</li>
</ul>
</blockquote>
<h3 id="trixnity-website">Trixnity (<a href="https://gitlab.com/trixnity/trixnity">website</a>)</h3>
<p>Multiplatform Kotlin SDK for Matrix</p>
<p><a href="https://matrix.to/#/@benedict:imbitbu.de">Benedict</a> announces</p>
<blockquote>
<p>New <a href="https://gitlab.com/trixnity/trixnity/-/releases/v4.2.1">minor version</a> of Trixnity this week:</p>
<p>features/improvements:</p>
<ul>
<li>support matrix 1.8 and 1.9</li>
<li>Add platform (a.k.a. BOM) configuration and tweak some gradle config. Thanks to @daphil19</li>
<li>remove extensions in <code>SyncApiClient</code>, that are not needed anymore</li>
<li>add internal concurrent (left right) collections</li>
</ul>
</blockquote>
<h2 id="dept-of-events-and-talks">Dept of Events and Talks 🗣️</h2>
<p><a href="https://matrix.to/#/@mtrnord:midnightthoughts.space">MTRNord</a> reports</p>
<blockquote>
<p>Group image from the Matrix Fringe Event at FOSDEM 👋
<img src="/blog/img/e64de023cc0adcc2c7fc2522edddcff9cea1ddd21753462023896694784.jpg" alt="" /></p>
</blockquote>
<h2 id="dept-of-guides">Dept of Guides 🧭</h2>
<h3 id="matrix-client-tutorial">Matrix client tutorial</h3>
<p><a href="https://matrix.to/#/@hubert:uhoreg.ca">uhoreg</a> says</p>
<blockquote>
<p>My <a href="https://uhoreg.gitlab.io/matrix-tutorial/">Matrix client tutorial</a> has had a few new sections added to it: handling <code>m.room.encryption</code> events (and disallowing encryption from being disabled once enabled), detecting replay attacks, and discarding outbound sessions. Next up will be writing a simple bot to demonstrate encryption, and then I'm planning on going through the encryption section again and tidying things up.</p>
</blockquote>
<h2 id="matrix-federation-stats">Matrix Federation Stats</h2>
<p><a href="https://matrix.to/#/@aine:etke.cc">Aine</a> announces</p>
<blockquote>
<p>collected by <a href="https://matrixrooms.info">MatrixRooms.info</a> - an <a href="https://gitlab.com/etke.cc/mrs/api">MRS</a> instance by <a href="https://etke.cc?utm_source=twim&utm_medium=matrix&utm_campaign=federation-stats">etke.cc</a></p>
<p>As of today, <code>8738</code> Matrix federateable servers have been discovered by matrixrooms.info, <code>2463</code> (<code>28.2%</code>) of them are publishing their rooms directory over federation.
The published directories contain <code>166459</code> rooms.</p>
<p><a href="https://gitlab.com/etke.cc/mrs/api/-/blob/main/docs/indexing.md">How to add your server</a> | <a href="https://gitlab.com/etke.cc/mrs/api/-/blob/main/docs/deindexing.md">How to remove your server</a></p>
</blockquote>
<h2 id="that-s-all-i-know">That's all I know</h2>
<p>See you next week, and be sure to stop by <a href="https://matrix.to/#/#twim:matrix.org">#twim:matrix.org</a> with your updates!</p>
A roadmap and appeal for help from The Matrix.org Foundation2024-01-30T17:00:00+00:002024-01-30T17:00:00+00:00Josh Simmonshttps://matrix.org/blog/2024/01/2024-roadmap-and-fundraiser/<h2 id="a-new-fundraising-drive">A new fundraising drive</h2>
<p>Today we launch a new fundraising drive, talk about the scope of the Foundation's work, and begin to unpack our emerging roadmap for the future. <strong>There is a lot going on and we need your help to keep it going!</strong></p>
<p>At the end of 2022 Matthew and Amandine <a href="https://matrix.org/blog/2022/12/25/the-matrix-holiday-update-2022/">sounded the alarm</a>: the Foundation needed more support. To deliver that, they <a href="https://matrix.org/blog/2022/12/01/funding-matrix-via-the-matrix-org-foundation/#introducing-foundation-memberships-and-the-governing-board">launched the Foundation's membership program</a>. They also introduced open governance, and committed to hiring a Managing Director to act as a robust, neutral steward.</p>
<p><strong>You can help: If you are already sold on Matrix, <a href="https://matrix.org/membership/">become a member today</a>.</strong> To find out how the last year has gone, and how your support helps us to serve the Matrix ecosystem, read on. </p>
<p>Over the last year, there are lots of positive, healthy signs for Matrix. New members like <a href="https://matrix.org/blog/2023/06/beeper-joins-the-foundation/">Beeper</a> and <a href="https://matrix.org/blog/2023/06/gematik-joins-the-foundation/">gematik</a> — and hundreds of individuals — boosted our annual revenues from £82K to £364K. The open network has grown from 80.3M to 115M addressable users. We've invested in long-term interoperability efforts at the IETF. And we've shifted focus from experiments to polish, usability, and advocacy.</p>
<p>We've supported development of core libraries, and subsidize hosting for FOSS communities like GNOME and KDE. The Foundation runs the Matrix.org homeserver, with over 250K daily active users, and operates several public bots and bridges. And indeed, the Foundation <a href="https://matrix.org/blog/2023/10/26/hello-world/">hired a Managing Director</a> 👋.</p>
<p>You'll find a full accounting of our 2023 activity and finances in our first Annual Report, slated to come out around April 2024.</p>
<span id="continue-reading"></span><h2 id="an-inflection-point-for-matrix">An inflection point for Matrix</h2>
<p>We are incredibly proud of what we've accomplished in the last year. As Matrix approaches its 10th anniversary, we are arriving at an inflection point. To continue on this trajectory, we need your help. </p>
<p>Element used to subsidize our activity, and still donates upwards of £3M in core development annually, but we are paying our own bills now. While we managed a 400+% increase in revenue to £364K last year, at £440K our expenses exceeded our revenue. As we enter our first full year of paying our own bills, the full cost of operating the Foundation at its current scope is projected to stabilize somewhere north of £900K in 2024. And the more we can raise beyond £900K, the less dependent the ecosystem is on Element.</p>
<p>As I get more settled in, we'll deliver more granular financial projections and reporting. For now, the rough breakdown of those projected expenses:</p>
<ul>
<li>£550K in staffing 4 full-time people covering management, advocacy, standards development, and trust and safety, as well as external part-time staff for core project and bridge maintenance and infra ops</li>
<li>£250K in servers and other third-party providers</li>
<li>£100K in administrative costs covering legal, accounting, and compliance</li>
</ul>
<p>To put that £900K figure in perspective, the <a href="https://www.python.org/psf/records/">Python Software Foundation's expenses</a> are nearer £2.9M, and <a href="https://signal.org/blog/signal-is-expensive/">Signal's annual costs</a> are in the ballpark of £39M!</p>
<p><strong>This year is exciting and full of promise, and there are many reasons to be hopeful. If the work we are doing to support Matrix is valuable to you, we need your help to continue it well past 2024. We need more organizations to <a href="https://matrix.org/membership/">step up as members</a> to invest in the Matrix ecosystem. Otherwise, we need to start scaling back programs and staff starting January 2025.</strong></p>
<p>We're going to publish a series of blog posts over the next three months to unpack our work and our roadmap for the future. You'll see posts covering: governance, ecosystem diversity and community engagement, infrastructure, trust and safety, fighting for your digital rights, and more.</p>
<p>With your support, the Foundation can charge full steam ahead to deliver on the promise of making open, unencumbered, safe, secure, and private communications technology.</p>
<h2 id="a-hint-of-the-year-ahead">A hint of the year ahead</h2>
<p>The forthcoming posts in this series will dive into several of our core program areas, and explore where we aim to go. But when I think about the year ahead, three overriding themes stand out to me:</p>
<ul>
<li>Ramp up open governance of Matrix and the Foundation</li>
<li>Prioritize Trust & Safety</li>
<li>Cement the Foundation as an independent and sustainable organization</li>
</ul>
<p>2024 will see the Foundation sustain and deepen work in our ongoing responsibilities:</p>
<ul>
<li>Empowering the <a href="https://matrix.org/about/#the-spec-core-team">Spec Core Team (SCT)</a> to deliver an effective, modern spec change process</li>
<li>Running the Matrix.org homeserver and public bridges</li>
<li>Trust & Safety</li>
<li>Communications and community engagement</li>
<li>Compliance</li>
<li>Governance</li>
<li>Fundraising</li>
</ul>
<p>We will also continue investing in long-term initiatives, such as driving work toward <a href="https://matrix.org/blog/2023/09/matrix-2-0/">Matrix 2.0</a> and <a href="https://matrix.org/blog/2023/12/25/the-matrix-holiday-update-2023/">beyond</a> and building a fully independent Foundation. With this in mind, we see several exciting milestones including:</p>
<ul>
<li>Establish a fiscal sponsorship framework, <a href="https://t2bot.io/">starting with t2bot.io</a>,</li>
<li>Publishing our first ever Annual Report,</li>
<li>Electing our <a href="https://matrix.org/blog/2023/12/electing-our-first-governing-board/">first ever Governing Board</a>,</li>
<li>And hosting the first ever official Matrix conference!</li>
</ul>
<p><strong>We couldn't be more excited about what we have to share in the coming months, and we hope that our vision – which is deeply informed by community input – is something you are ready to stand behind.</strong></p>
<p>Thank you for <a href="https://matrix.org/support/">donating</a>, becoming <a href="https://donorbox.org/membership-303">Individual Members</a>, and rallying your organization to become <a href="https://matrix.org/membership/">a funding member</a>!</p>
<p>Ad astra per aspera 🚀</p>
<p>Josh Simmons, Managing Director of The Matrix.org Foundation</p>
This Week in Matrix 2024-01-262024-01-26T00:00:00+00:002024-01-26T00:00:00+00:00Thibhttps://matrix.org/blog/2024/01/26/this-week-in-matrix-2024-01-26/<h2 id="matrix-live">Matrix Live</h2>
<noscript>Today's Matrix Live: <a href="https://youtube.com/watch?v=E-EEV66ZXKU">https://youtube.com/watch?v=E-EEV66ZXKU</a></noscript>
<youtube-player video-id="E-EEV66ZXKU"></youtube-player>
<h2 id="dept-of-spec-scroll">Dept of Spec 📜</h2>
<p><a href="https://matrix.to/#/@andrewm:element.io">Andrew Morgan (anoa)</a> says</p>
<blockquote>
<p>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 <a href="https://spec.matrix.org/proposals">https://spec.matrix.org/proposals</a>.</p>
<h3 id="msc-status">MSC Status</h3>
<p><strong>New MSCs:</strong></p>
<ul>
<li><em>There were no new MSCs this week.</em></li>
</ul>
<p><strong>MSCs in Final Comment Period:</strong></p>
<ul>
<li><a href="https://github.com/matrix-org/matrix-spec-proposals/pull/3981">MSC3981: <code>/relations</code> recursion</a> (merge)</li>
</ul>
<p><strong>Accepted MSCs:</strong></p>
<ul>
<li><em>No MSCs were accepted this week.</em></li>
</ul>
<p><strong>Closed MSCs:</strong></p>
<ul>
<li><em>No MSCs were closed/rejected this week.</em></li>
</ul>
<h3 id="spec-update">Spec Update</h3>
<p>For those familiar with Travis' weekly task lists of MSCs for the Spec Core Team to review in the <a href="https://matrix.to/#/#sct-office:matrix.org">Office of the Matrix Spec Core Team room</a>, a new weekly list is now being posted in the <a href="https://matrix.to/#/!KzgjYxOASBbBMrtCXC:matrix.org/$QqpbS4hdFuxy6vPIz80eeGjnGXwJWJInMJFlNqG7y98?via=matrix.org&via=element.io&via=envs.net">Matrix Spec & Docs Authoring room</a>. This list is aimed at technical writers who can help by converting MSC authors' words into PRs against the spec text itself.</p>
<p>This is the final step for getting an MSC integrated into a new release of the Matrix spec, and anyone can try their hand at it! It would also very much help the Spec Core Team by freeing up more bandwidth for review of the MSC backlog, as well as push forward the protocol itself. Thank you!</p>
<p>If you have any questions, feel free to ask them in the relevant Matrix rooms.</p>
<h3 id="random-msc-of-the-week">Random MSC of the Week</h3>
<p>The random MSC of the week is... <a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4003">MSC4003: Semantic table attributes</a>!</p>
<p>This MSC proposes expanding the set of suggested, interpreted HTML tags in Matrix clients to include additional tags related to tables. With them, more control over table rendering is possible. The proposal itself includes one such (albeit fairly arbitrary) example</p>
<p>The proposal is well-written and straight-forward, so do feel free to have a look if the subject interests you!</p>
</blockquote>
<span id="continue-reading"></span><h2 id="dept-of-status-of-matrix-face-with-th">Dept of <em>Status of Matrix</em> 🌡️</h2>
<p><a href="https://matrix.to/#/@deepbluev7:neko.dev">Nico</a> announces</p>
<blockquote>
<h2 id="very-timely-review-of-matrix-in-2023">Very timely review of Matrix in 2023</h2>
<p>As you know, every year I post a review of what the community has been up to in 2023. Actually, I don't even write it, this is only the second time and it was almost a month late, but if we look past that, this statement still holds!</p>
<p>Anyway, since FOSDEM is close, give it a read so that we can discuss everything at FOSDEM! The community has been up to a lot of stuff and I have only been able to cover a fraction of it, but it still ends up being quite long!</p>
<p><a href="https://blog.neko.dev/posts/matrix-year-in-review-2023.html">https://blog.neko.dev/posts/matrix-year-in-review-2023.html</a></p>
<p>(This will probably go to the matrix.org blog eventually, but that might still take a bit :))</p>
</blockquote>
<p><a href="https://matrix.to/#/@thib:ergaster.org">Thib</a> says</p>
<blockquote>
<p>Next week we're going to roll out privacy-preserving analytics on the matrix.org website. But why, you may ask? Read about what we want to achieve, how, and the guarantees we provide: we want to <a href="https://ergaster.org/posts/2024/01/24-tracking-what-works/">track what works, not people</a></p>
<p><a href="https://ergaster.org/posts/2024/01/24-tracking-what-works/">https://ergaster.org/posts/2024/01/24-tracking-what-works/</a></p>
</blockquote>
<h2 id="dept-of-servers-europea">Dept of Servers 🏢</h2>
<h3 id="synapse-website">Synapse (<a href="https://github.com/matrix-org/synapse/">website</a>)</h3>
<p>Synapse is a Matrix homeserver implementation developed by the matrix.org core team</p>
<p><a href="https://matrix.to/#/@reivilibre.element:librepush.net">Olivier 'reivilibre'</a> says</p>
<blockquote>
<p>This week in Synapse we unleashed <a href="https://github.com/element-hq/synapse/blob/release-v1.100/CHANGES.md#synapse-11000rc1-2024-01-23">1.100.0rc1</a>, a version number so ridiculous that it could not possibly be real.</p>
<p>There isn't exactly any large headline change here, but there is experimental support for <a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4028">MSC4028 (pushing all messages in encrypted rooms except unmuted)</a>. There are also a few performance optimisations and preparations for future performance optimisations</p>
<p>It turned out that, indeed, 1.100.0rc1 was never meant to be, because a fault in the release process meant it was never properly released and we had to come out with 1.100.0rc2 instead!</p>
<p>But then rumour had it that the new version <a href="https://github.com/element-hq/synapse/issues/16849">would cause your Postgres to eat all the CPU</a>, so a little hotfix later and we put out <a href="https://github.com/element-hq/synapse/blob/release-v1.100/CHANGES.md#synapse-11000rc3-2024-01-24">1.100.0rc3</a>. To the community members that test our release candidates: thanks!</p>
</blockquote>
<h3 id="dendrite-website">Dendrite (<a href="https://github.com/matrix-org/dendrite">website</a>)</h3>
<p>Second generation Matrix homeserver</p>
<p><a href="https://matrix.to/#/@s7evink:matrix.org">Till</a> announces</p>
<blockquote>
<p>Today we released Dendrite <a href="https://github.com/matrix-org/dendrite/releases/tag/v0.13.6">v0.13.6</a>. Upgrading to this version is highly recommended, as it contains several QoL improvements.</p>
<h3 id="fixes">Fixes</h3>
<ul>
<li>Use <code>AckExplicitPolicy</code> for JetStream consumers, so messages don't pile up in NATS</li>
<li>A rare panic when assigning a state key NID has been fixed</li>
<li>A rare panic when checking powerlevels has been fixed</li>
<li>Notary keys requests for all keys now work correctly</li>
<li>Spec compliance:
<ul>
<li>Return <code>M_INVALID_PARAM</code> when querying room aliases</li>
<li>Handle empty <code>from</code> parameter when requesting <code>/messages</code></li>
<li>Add CORP headers on media endpoints</li>
<li>Remove <code>aliases</code> from <code>/publicRooms</code> responses</li>
<li>Allow <code>+</code> in MXIDs (Contributed by <a href="https://github.com/RosstheRoss">RosstheRoss</a>)</li>
</ul>
</li>
<li>Fixes membership transitions from <code>knock</code> to <code>join</code> in <code>knock_restricted</code> rooms</li>
<li>Incremental syncs now batch querying events (Contributed by <a href="https://github.com/recht">recht</a>)</li>
<li>Move <code>/joined_members</code> back to the clientAPI/roomserver, which should make bridges happier again</li>
<li>Backfilling from other servers now only uses at max 100 events instead of potentially thousands</li>
</ul>
<p>As always, feel free to stop by <a href="https://matrix.to/#/#dendrite:matrix.org">#dendrite:matrix.org</a> to join in on the discussion and if you encounter a bug make sure to report it <a href="https://github.com/matrix-org/dendrite/issues/new/choose">here</a>.</p>
</blockquote>
<h2 id="dept-of-clients-iphone">Dept of Clients 📱</h2>
<h3 id="neochat-website">Neochat (<a href="https://invent.kde.org/network/neochat">website</a>)</h3>
<p>A client for matrix, the decentralized communication protocol</p>
<p><a href="https://matrix.to/#/@tobiasfella:kde.org">Tobias Fella</a> reports</p>
<blockquote>
<p>Have you ever thought "man, I sure wish my Matrix client would show me more information about these train tickets and hotel reservations my friend just sent me"? Well, your wait is finally over! If you have KDE Itinerary installed on your system, NeoChat will now use its tooling to extract information from such documents and presents it, together with the ability to directly import it into your Itinerary.</p>
<p><img src="/blog/img/94e659fb5d6514c55e17a65d43a68df334da302d1750918709804793856.png" alt="" /></p>
<p>In other news, thanks to Joshua, NeoChat now supports push notifications based on UnifiedPush. James has significantly reworked the room list, which now separates direct messages from group chats and has a stronger focus on Spaces. Do let us know what you think about these changes! He also improved the room timeline to more clearly show whether NeoChat is currently loading old messages or is at the end of the timeline. Last, but not least, I implemented a view showing the notifications, similar to what you might know from element. We also fixed 43.8 bugs and improved NeoChat by 23+4i%. See you next week!</p>
</blockquote>
<h3 id="ement-el-website">Ement.el (<a href="https://github.com/alphapapa/ement.el">website</a>)</h3>
<p>Matrix client for Emacs</p>
<p><a href="https://matrix.to/#/@alphapapa:matrix.org">alphapapa</a> announces</p>
<blockquote>
<p><a href="https://github.com/alphapapa/ement.el">Ement.el</a>, a Matrix client for the <a href="https://www.gnu.org/software/emacs/">GNU Emacs</a> text editor and Lisp environment, has been <a href="https://github.com/alphapapa/ement.el/releases/tag/v0.14">released</a> at version 0.14. Changes since the last release include:</p>
<p><strong>Additions</strong></p>
<ul>
<li>Audio events are rendered as a link to the audio file. (Thanks to <a href="https://github.com/viiru-">Arto Jantunen</a>.)</li>
<li>Customization group <code>ement-room-list</code>.</li>
<li>Option <code>ement-room-list-space-prefix</code> is applied to space names in the room list (e.g. set to empty string for cleaner appearance).</li>
<li>Option <code>ement-room-reaction-names-limit</code> sets how many senders of a reaction are shown in the buffer (more than that many are shown in the tooltip).</li>
</ul>
<p><strong>Changes</strong></p>
<ul>
<li>Bind <code>TAB</code> / <code>BACKTAB</code> to move between links in room and like buffers. (<a href="https://github.com/alphapapa/ement.el/issues/113">#113</a>. Thanks to <a href="https://github.com/ericsfraga">Eric S. Fraga</a> for suggesting.)</li>
</ul>
<p><strong>Fixes</strong></p>
<ul>
<li>Insertion of sender headers (when using "Elemental" message format). (Refactoring contributed by <a href="https://github.com/Stebalien">Steven Allen</a>.)</li>
<li>Some room event data was being unintentionally serialized to disk when caching the room list visibility state. (<a href="https://github.com/alphapapa/ement.el/issues/256">#256</a>)</li>
<li>Notifications buffer restores properly when bookmarked.</li>
<li>Command <code>ement-room-send-reaction</code> checks for an event at point. (Thanks to <a href="https://github.com/phil-s">Phil Sainty</a>.)</li>
</ul>
<p>Feel free to join us in the chat room: <a href="https://matrix.to/#/#ement.el:matrix.org">#ement.el:matrix.org</a>!</p>
</blockquote>
<h3 id="element-x-ios-website">Element X iOS (<a href="https://github.com/vector-im/element-x-ios">website</a>)</h3>
<p>A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.</p>
<p><a href="https://matrix.to/#/@douge:matrix.org">Doug</a> says</p>
<blockquote>
<ul>
<li>A new setting is available to stop the app from sending (public) Read Receipts.</li>
<li>Unread Badges are almost ready and will hopefully land in the next TestFlight.</li>
<li>The User Menu has been made visible whilst waiting for the Sliding Sync proxy to sync your account for the first time. And if you’re having issues signing in you can now send feedback and logs directly from the first screen.</li>
<li>Talking about logs, if you’ve ever wanted to see what will be submitted, we’ve added a Log Viewer when reporting a bug.</li>
<li>There was a bug that prevented you from joining some calls. This fix for this is in the latest version which is available on the App Store right now.</li>
</ul>
</blockquote>
<h3 id="element-x-android-website">Element X Android (<a href="https://github.com/vector-im/element-x-android">website</a>)</h3>
<p>Android Matrix messenger application using the Matrix Rust Sdk and Jetpack Compose </p>
<p><a href="https://matrix.to/#/@benoit.marty:matrix.org">benoit</a> announces</p>
<blockquote>
<ul>
<li>Release 0.4.1 is in production, here is the changelog: https://github.com/element-hq/element-x-android/releases/tag/v0.4.1.</li>
<li>Next release 0.4.2 should also be published on F-Droid with push support using UnifiedPush.</li>
<li>This week the team was focusing on stabilizing the app, and we are starting new epics like typing notifications, manage room member permissions (i.e. edit power levels), setting room as favorite</li>
<li>It's also now possible to send private Read Receipt</li>
<li>Last note, we just updated the Jetpack Compose library to the latest version and it will impact performance in a positive way. Google is claiming that scrolling will be 20% faster and starting application will be faster as well. Element X as snappy as ever 🚀!</li>
</ul>
</blockquote>
<h2 id="dept-of-non-chat-clients-control-knobs">Dept of Non Chat Clients 🎛️</h2>
<h3 id="circles-website">Circles (<a href="https://www.kombuchaprivacy.com/circles/">website</a>)</h3>
<p>E2E encrypted social networking built on Matrix. Safe, private sharing for your friends, family, and community.</p>
<p><a href="https://matrix.to/#/@cvwright:futo.org">cvwright</a> announces</p>
<blockquote>
<h3 id="new-circles-builds-and-new-servers">New Circles builds and new servers</h3>
<p>Circles is a secure social network app for families and friends, built on Matrix to give users privacy through end-to-end encryption and independence through the ability to run your own server. This week we have a big update for you!</p>
<p>We have new servers: <code>circles.futo.org</code> in the US and <code>eu.circles.futo.org</code> in the EU. Thanks to our friends over in Synapse Extreme Tuning and to Slavi from Matrix-Docker-Ansible-Deploy, the new servers are <em>much</em> faster than the old circu.li servers. The latest Circles builds -- 1.0.24 on Android and 0.9.2 on iOS -- can create new accounts on the new servers, so if you're using circu.li now is your chance to create a new account. We'll keep the old circu.li servers running for a while, especially for testing out the latest bleeding-edge beta builds. But the way forward for us is on circles.futo.org. You can create new free-forever accounts on the new servers until we enable in-app subscriptions later this year.</p>
<p>If you're using Circles with an account on your own server or matrix.org etc, then not much will change for you. You might notice a change in the app's deep links, but that's about it.</p>
<p>The latest builds also include the following improvements:</p>
<p><strong>Circles iOS 0.9.1 and 0.9.2</strong> (<a href="https://testflight.apple.com/join/Hvj9S0SX">TestFlight</a>)</p>
<ul>
<li>Relax password strength requirements</li>
<li>Use shared web credentials and Keychain for passwords</li>
<li>Save secret-storage keys in iCloud Keychain for account recovery</li>
<li>Bugfix: Use new jdenticon avatar on the People tab self-view</li>
<li>Bugfix: Remove TESTING section on subscription settings</li>
<li>Clean up the group creation dialog</li>
<li>Change default domain from circu.li to circles.futo.org</li>
<li>Better handling of accounts that are in very large Matrix chat rooms</li>
<li>New free subscription type for free accounts</li>
<li>Make the reply composer scrollable</li>
<li>Use jdenticons as profile image for users who don't upload a photo</li>
</ul>
<p><strong>Circles Android 1.0.22, 1.0.23, and 1.0.24</strong> (<a href="https://play.google.com/store/apps/details?id=org.futo.circles">Google Play</a>, <a href="https://circu.li/fdroid/repo/?fingerprint=BDBDCD456ADCDAF11451BF90E805AFDB2D8D76CF8970553FD96A474BBE08EC58">F-Droid repo</a>)</p>
<ul>
<li>New default domains</li>
<li>Use circles.futo.org domain for deep links</li>
<li>Initial sync improvements for handling very large rooms</li>
<li>Jdenticon for user's avatar placeholders</li>
<li>Media usage info (only for servers that support it)</li>
<li>New screens for invitations</li>
<li>Ignored user section in Settings</li>
<li>More categories on People tab</li>
<li>Bug fixes and performance improvements</li>
</ul>
</blockquote>
<h2 id="dept-of-voip-call-me-hand">Dept of VoIP 🤙</h2>
<h3 id="matrixrtc">MatrixRTC</h3>
<p><a href="https://matrix.to/#/@td:technodisaster.com">td</a> reports</p>
<blockquote>
<p>Halooo, td has some updates about MatrixRTC today:</p>
<ul>
<li>
<p>We had our first interoperable group call using the new livekit backend between Famedly and Element Call this week. This means the dart sdk now supports multiple backends such as <code>mesh</code> or <code>livekit</code>. This is still a WIP (exists as a PR) but should land soonish. Once that's done Famedly has allowed td to port over the feature from Famedly to FluffyChat, so new VoIP stuff in FluffyChat soon!</p>
</li>
<li>
<p>We will also be giving a talk at Fosdem'24 about MatrixRTC so if you would like to know the technical details, you can find the details here: https://fosdem.org/2024/schedule/event/fosdem-2024-2876-matrixrtc-the-future-of-matrix-calls</p>
</li>
</ul>
</blockquote>
<blockquote>
<p><img src="/blog/img/HDZWRHpfivXODpKRIgrJVXjf.png" alt="famedly-ec-interop.png" /></p>
</blockquote>
<h2 id="dept-of-sdks-and-frameworks">Dept of SDKs and Frameworks 🧰</h2>
<h3 id="elm-matrix-sdk-website">elm-matrix-sdk (<a href="https://noordstar.github.io/elm-matrix-sdk-beta/">website</a>)</h3>
<p><a href="https://matrix.to/#/@bram:matrix.directory">Bram</a> reports</p>
<blockquote>
<p>The Timeline is a very tricky data type to properly represent in immutable code, and support is very much needed! 😓 So in the meantime, I've spent some time trying to improve documentation, readability and code transparency. Hence I present the JSON docs viewer: https://noordstar.github.io/elm-matrix-sdk-beta/</p>
<p>The aim is to make all objects in the elm-matrix-sdk entirely translatable to and from JSON, for the following reasons:</p>
<ul>
<li>✅ Easier to debug</li>
<li>✅ Enables interoperability with JavaScript</li>
<li>✅ Improved transparency</li>
</ul>
<p>Take a look at <a href="https://noordstar.github.io/elm-matrix-sdk-beta/">the website</a>! All the Matrix API endpoints need JSON decoders so they should appear on the webpage soon as well, mostly mirroring the Matrix spec and hopefully replacing the current <a href="https://matrix.directory/">Matrix Events Directory</a> in a bit longer.</p>
<p>Because of the two-ways encoding, every Elm type contains a JSON checkers that helps you debug how and whether your JSON is properly decoded or not - so feel free to try it out for yourself!</p>
<p><img src="/blog/img/XkgzkfurJOZtjbThGKlcIUFf.png" alt="" />
<img src="/blog/img/aqRvOfRgSCtFqjRDSayVzvXp.png" alt="" /></p>
</blockquote>
<h2 id="dept-of-ops">Dept of Ops 🛠</h2>
<h3 id="matrix-docker-ansible-deploy-website">matrix-docker-ansible-deploy (<a href="https://github.com/spantaleev/matrix-docker-ansible-deploy">website</a>)</h3>
<p>Matrix server setup using Ansible and Docker</p>
<p><a href="https://matrix.to/#/@slavi:devture.com">Slavi</a> announces</p>
<blockquote>
<p>Thanks to <a href="https://github.com/cvwright">Charles Wright</a> from <a href="https://www.futo.org/">FUTO</a>, the creators of the <a href="https://circu.li/">Circles app</a>, the <a href="https://github.com/spantaleev/matrix-docker-ansible-deploy">matrix-docker-ansible-deploy</a> Ansible playbook has <a href="https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3100">received support</a> for load-balancing the Synapse workload via <a href="https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-playbook-synapse.md#specialized-workers">specialized workers</a> which are supposed to work better than our old <a href="https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-playbook-synapse.md#generic-workers">generic workers</a> implementation.</p>
<p>For now, playbook defaults remain unchanged and the <code>one-of-each</code> <a href="https://matrix.org/blog/2024/01/26/this-week-in-matrix-2024-01-26/./docs/configuring-playbook-synapse.md#worker-presets">workers preset</a> continues being the default. </p>
<p>Our specialized workers setup is based on recommendations found in <a href="https://github.com/tcpipuk">Tom Foster</a>'s <a href="https://tcpipuk.github.io/synapse/index.html">Synapse homeserver guide</a>.</p>
</blockquote>
<h2 id="dept-of-events-and-talks">Dept of Events and Talks 🗣️</h2>
<p><a href="https://matrix.to/#/@kim:sosnowkadub.de">HarHarLinks</a> reports</p>
<blockquote>
<p>It is This Week in Matrix 2024-01-26, and that means it is only 1 more TWIM left before FOSDEM 2024!</p>
<p>That is, if you count next TWIM as "before", because for the Matrix community, FOSDEM will start on Friday (2024-02-02) afternoon leading up to FOSDEM, as the Matrix Foundation and Community will host a <a href="https://fosdem.org/2024/fringe/">FOSDEM Fringe</a> event called <a href="https://matrix.to/#/%23fosdem2024-foundation-community-meetup:matrix.org">#fosdem2024-foundation-community-meetup:matrix.org</a> at and with the support of <a href="https://hsbxl.be/enter/">Hackerspace Brussels</a>! Join the room to get <em>alllll the info</em>, such as the announcement that thanks to our sponsors we will be providing drinks 🍻 and food 🍕 for everyone (meaning most pizza will be vegetarian and there will also be vegan ones).</p>
<p>Further, there will be a booth on the floor and a <a href="https://fosdem.org/2024/schedule/event/fosdem-2024-3345-opening-up-communication-silos-with-matrix-2-0-and-the-eu-digital-markets-act/">main track talk on Sunday morning</a> followed by a whole afternoon of Matrix presentations in the <a href="https://fosdem.org/2024/schedule/track/matrix/">Matrix devroom</a>.</p>
<p>We would like everyone to be mindful of their own and everyone else's health. Please get tested in advance and wear a mask if possible to reduce the risk of infection with both COVID and other "con flu". If you feel unwell, please do not attend. We promise there will be more events during 2024.</p>
<p>So, in case you haven't yet, this is your reminder to book your journey and accommodation, and meet you in Brussels!</p>
<p>Read Thib's blog post for all the details at <a href="https://matrix.org/blog/2024/01/matrix-presence-fosdem/">https://matrix.org/blog/2024/01/matrix-presence-fosdem/</a>.</p>
</blockquote>
<p><a href="https://matrix.to/#/@matthew:matrix.org">Matthew</a> reports</p>
<blockquote>
<p>the FOSDEM main stage schedule is published - our talk "Opening up communication silos with Matrix 2.0 and the EU Digital Markets Act" is on Sunday in Janson at 10am. Be there or be 🔳 <a href="https://fosdem.org/2024/schedule/event/fosdem-2024-3345-opening-up-communication-silos-with-matrix-2-0-and-the-eu-digital-markets-act/">https://fosdem.org/2024/schedule/event/fosdem-2024-3345-opening-up-communication-silos-with-matrix-2-0-and-the-eu-digital-markets-act/</a></p>
</blockquote>
<h2 id="dept-of-interesting-projects">Dept of Interesting Projects 🛰️</h2>
<h3 id="acter-website">Acter (<a href="https://acter.global">website</a>)</h3>
<p><a href="https://matrix.to/#/@ben:acter.global">ben</a> reports</p>
<blockquote>
<h3 id="acter-v1-23-2126"><a href="https://next.acter.global/post/acter-v1-24-2126-back-on-the-stores-with-revamped-task-lists-labs-several-chat-improvements">Acter v1.23.2126</a></h3>
<p>After a few weeks of the release process being broken, this release is back and available on all the app stores. It brings several improvements and feature updates since the last TWiM post back in December. Most notably:
<strong>Tasks and TasksList have been overhauled</strong> as part of a holidays-special hackathon. They are still behind a default-off feature flag but the the UI has been completely renewed, you can now set the due-date and assign yourself and they will show up on your dashboard. Pretty neat.
On <strong>chat</strong> you can now properly toggle reactions and have more control over media downloads and won't find HTML in message editing anymore. <a href="https://next.acter.global/post/acter-v1-24-2126-back-on-the-stores-with-revamped-task-lists-labs-several-chat-improvements">More in the extended blog post about this release</a></p>
<h2 id="quests-for-2024-q1">Quests for 2024 (Q1)</h2>
<p>Beyond what we have released, we have also published two blog posts last week regarding our planning process and the plans we have. <a href="https://next.acter.global/post/quests-the-way-we-structure-our-work">Long story short we define our work as main quest and side quests</a> we want to focus on in several chunks throughout the year. Those quests for product for the next quarter and for other areas over the next months <a href="https://next.acter.global/post/quests-of-2024-q1">we've outlined in this post last week</a>. On such quests I want to highlight is a new podcast series on digital activism starting in the next few weeks.</p>
<p><strong>At FOSDEM</strong>
If you want to chat with me in person at FOSDEM, I have to disappoint you: due to prior engagements I won't be making it to the official Matrix Dev Room on Sunday. But I will be hanging around HSXL on Friday afternoon prior for the Matrix community hangout. DM me if you want to meet :) .</p>
</blockquote>
<h2 id="matrix-federation-stats">Matrix Federation Stats</h2>
<p><a href="https://matrix.to/#/@aine:etke.cc">Aine</a> says</p>
<blockquote>
<p>collected by <a href="https://matrixrooms.info">MatrixRooms.info</a> - an <a href="https://gitlab.com/etke.cc/mrs/api">MRS</a> instance by <a href="https://etke.cc?utm_source=twim&utm_medium=matrix&utm_campaign=federation-stats">etke.cc</a></p>
<p>As of today, <code>8605</code> Matrix federateable servers have been discovered by matrixrooms.info, <code>2384</code> (<code>27.7%</code>) of them are publishing their rooms directory over federation.
The published directories contain <code>167508</code> rooms.</p>
<p><a href="https://gitlab.com/etke.cc/mrs/api/-/blob/main/docs/indexing.md">How to add your server</a> | <a href="https://gitlab.com/etke.cc/mrs/api/-/blob/main/docs/deindexing.md">How to remove your server</a></p>
</blockquote>
<h2 id="dept-of-ping">Dept of Ping</h2>
<p>Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by <a href="https://github.com/maubot/echo">pingbot</a>, a <a href="https://github.com/maubot/maubot">maubot</a> that you can host on your own server.</p>
<h3 id="ping-maunium-net"><a href="https://matrix.to/#/#ping:maunium.net">#ping:maunium.net</a></h3>
<p>Join <a href="https://matrix.to/#/#ping:maunium.net">#ping:maunium.net</a> to experience the fun live, and to find out how to add YOUR server to the game.</p>
<table><thead><tr><th style="text-align: center">Rank</th><th style="text-align: center">Hostname</th><th style="text-align: center">Median MS</th></tr></thead><tbody>
<tr><td style="text-align: center">1</td><td style="text-align: center">maunium.net</td><td style="text-align: center">274.5</td></tr>
<tr><td style="text-align: center">2</td><td style="text-align: center">nerdhouse.io</td><td style="text-align: center">275.5</td></tr>
<tr><td style="text-align: center">3</td><td style="text-align: center">rom4nik.pl</td><td style="text-align: center">278.5</td></tr>
<tr><td style="text-align: center">4</td><td style="text-align: center">envs.net</td><td style="text-align: center">301</td></tr>
<tr><td style="text-align: center">5</td><td style="text-align: center">fostered.uk</td><td style="text-align: center">309</td></tr>
<tr><td style="text-align: center">6</td><td style="text-align: center">ari.lt</td><td style="text-align: center">332</td></tr>
<tr><td style="text-align: center">7</td><td style="text-align: center">pikaviestin.fi</td><td style="text-align: center">363</td></tr>
<tr><td style="text-align: center">8</td><td style="text-align: center">plocki.org</td><td style="text-align: center">368</td></tr>
<tr><td style="text-align: center">9</td><td style="text-align: center">aguiarvieira.pt</td><td style="text-align: center">378</td></tr>
<tr><td style="text-align: center">10</td><td style="text-align: center">matrix.its-tps.fr</td><td style="text-align: center">415</td></tr>
</tbody></table>
<h3 id="ping-no-synapse-maunium-net"><a href="https://matrix.to/#/#ping-no-synapse:maunium.net">#ping-no-synapse:maunium.net</a></h3>
<p>Join <a href="https://matrix.to/#/#ping-no-synapse:maunium.net">#ping-no-synapse:maunium.net</a> to experience the fun live, and to find out how to add YOUR server to the game.</p>
<table><thead><tr><th style="text-align: center">Rank</th><th style="text-align: center">Hostname</th><th style="text-align: center">Median MS</th></tr></thead><tbody>
<tr><td style="text-align: center">1</td><td style="text-align: center">neshweb.chat</td><td style="text-align: center">152</td></tr>
<tr><td style="text-align: center">2</td><td style="text-align: center">nerdhouse.io</td><td style="text-align: center">169</td></tr>
<tr><td style="text-align: center">3</td><td style="text-align: center">fostered.uk</td><td style="text-align: center">170</td></tr>
<tr><td style="text-align: center">4</td><td style="text-align: center">ari.lt</td><td style="text-align: center">181</td></tr>
<tr><td style="text-align: center">5</td><td style="text-align: center">matrix.its-tps.fr</td><td style="text-align: center">196</td></tr>
<tr><td style="text-align: center">6</td><td style="text-align: center">dendrite.matrix.org</td><td style="text-align: center">212</td></tr>
<tr><td style="text-align: center">7</td><td style="text-align: center">matrix.maymundere.org</td><td style="text-align: center">221</td></tr>
<tr><td style="text-align: center">8</td><td style="text-align: center">dendrite.s3cr3t.me</td><td style="text-align: center">476</td></tr>
<tr><td style="text-align: center">9</td><td style="text-align: center">kumma.juttu.asia</td><td style="text-align: center">549</td></tr>
<tr><td style="text-align: center">10</td><td style="text-align: center">shiftsystems.net</td><td style="text-align: center">878</td></tr>
</tbody></table>
<h2 id="that-s-all-i-know">That's all I know</h2>
<p>See you next week, and be sure to stop by <a href="https://matrix.to/#/#twim:matrix.org">#twim:matrix.org</a> with your updates!</p>
Open letter to EU Member States on the proposed CSA Regulation2024-01-22T00:00:00+00:002024-01-22T00:00:00+00:00Denise Almeidahttps://matrix.org/blog/2024/01/open-letter-csa/<p>We join our voices to technology companies, trade associations and other supporters in asking EU member states to align the Council's position on the CSA Regulation to the position agreed by the Parliament.</p>
<p>Safeguarding encryption should be a priority in negotiations, ensuring the protection of rights and freedoms around privacy and security of communications.</p>
<p>A copy of the open letter sent to ministers can be read below.</p>
<h2 id="open-letter-to-eu-member-states-on-the-proposed-csa-regulation">Open letter to EU Member States on the proposed CSA Regulation</h2>
<p>Dear Ministers of the Interior, Justice, and Economy of EU Member States,</p>
<p>We write to you as small and medium-sized companies and organizations from Europe, concerned about the proposal for a Regulation on Child Sexual Abuse (CSA). Collectively, we call on you to ensure that your country’s position on this file is brought as close as possible to the European Parliament’s (EP) one.
We all agree that ensuring children are safe online is one of the most important duties of tech companies and for this reason, we find the European Commission’s proposed Regulation extremely worrying. If it were implemented as proposed, it would negatively impact children’s privacy and security online, while also having dramatic unforeseen consequences on the EU cybersecurity landscape, on top of creating an ineffective administrative burden<sup class="footnote-reference"><a href="#1">1</a></sup>.
The European Parliament recently adopted its position on the file, acknowledging that scanning technologies are not compatible with the aim of having confidential and secure communications. The crucial changes it therefore puts forward for the proposal reflect the opinions of the European Data Protection Supervisor (EDPS), the Council legal services as well as countless experts in cryptography and cybersecurity<sup class="footnote-reference"><a href="#2">2</a></sup>. It also reflects the opinion of between 63% and 69% of the companies, public authorities, NGOs and citizens consulted by the European Commission in its Impact Assessment<sup class="footnote-reference"><a href="#3">3</a></sup>.
As small and medium-sized tech companies and organizations, we share their concerns as we know that looking for specific content – such as text, photos and videos – in an end-to-end encrypted communication would require the implementation of a backdoor, or of a similar technology called “client-side scanning”. Even if this mechanism is created with the purpose of fighting crime online, it would also quickly be used by criminals themselves, putting citizens and businesses more at risk online by creating vulnerabilities for all users alike.</p>
<h3 id="data-protection-is-a-strong-competitive-advantage">Data protection is a strong competitive advantage</h3>
<p>As tech companies operating within the European Union, we have built products and services in line with the strong data protection framework of the EU which still serves as an example and inspiration across the world.</p>
<p>The GDPR allowed for the creation of ethical, privacy-first tech companies in Europe, that would otherwise never have been able to compete against Big Tech. It gave European companies a strong competitive advantage in that field internationally and allowed consumers to finally be able to find alternatives to American and Chinese services. Our users, both within the EU and beyond, have come to trust our commitment to safeguarding their data and this trust is a key driver of our competitiveness. The learning curve for adapting to the necessary administrative burden brought about by the GDPR was high but was worth it.
However, the CSA Regulation could threaten this unique selling point of European IT companies and would also add a new administrative burden which we fear could overwhelm both our companies and law enforcement bodies. Considering the volume of communications and content transiting through our services, even an insignificant error rate of the technologies applied to scan for abusive material would result in millions of false positives to be manually reviewed every day.</p>
<h3 id="the-csa-regulation-could-erode-trust-and-safety-online">The CSA Regulation could erode trust and safety online</h3>
<p>In a world where data breaches and privacy scandals are increasingly common, the EU's reputation for stringent data protection is a unique selling point for businesses operating within its borders. It provides us with a competitive edge, assuring our customers that their information is handled with the utmost care and integrity. This trust, once eroded, is challenging to rebuild, and any measures that compromise it such as mandatory scanning, or mandatory age verification have the potential to harm businesses both large and small.
Furthermore, the EU has recently adopted Regulation 2023/2841, which mandates that EU Institutions and bodies to consider the use of end-to-end encryption among their cybersecurity risk-management measures. There are also multiple ‘cyber’ EU proposals currently on the table, such as the Cyber Resilience Act and the Cybersecurity Act. Supporting an opposite approach for the CSA Regulation would only undermine the EU cybersecurity framework creating a contradictory, incoherent and inefficient new set of measures that companies would not be able to enforce without putting citizens and businesses at risk.</p>
<h3 id="the-eu-parliament-s-proposal-goes-in-the-right-direction">The EU Parliament's proposal goes in the right direction</h3>
<p>Therefore, we applaud the European Parliament for its resolute stance in defending the European citizens' right to privacy and secure communication. The European Parliament’s commitment to these principles is not only a testament to its dedication to human rights, but also a beacon of hope for businesses like ours that prioritize data protection and security. The position of the Parliament includes alternatives to scanning which have a minimal impact on cybersecurity and data protection, and which experts believe would be both more effective and more efficient than mandatory scanning. Such changes of paradigm would mean going beyond the false dichotomy between privacy and security, while also making the proposal respect the proportionality principle, as requested by the Regulatory Scrutiny Board.
Even if not perfect in our eyes, the changes the European Parliament made in its position are a good compromise to maintain digital security and confidentiality and to better protect children online. We believe that these changes strike the right balance between child protection and safeguarding privacy and cybersecurity.</p>
<p><strong>As representatives of the vibrant European small businesses community, we encourage EU Member States to continue championing the values of privacy, cybersecurity and data protection. These principles not only align with the EU's commitment to human rights, but also serve as a foundation for a thriving and competitive business environment. Let us defend and strengthen these principles, ensuring that the EU remains an advocate of privacy in the global marketplace.</strong></p>
<p>For these reasons we call on you to:</p>
<ul>
<li>Ensure that Council’s position is aligned as closely as possible to the European Parliament’s. This will allow for a swifter adoption of the Regulation while building on the important work of the European Parliament.</li>
<li>Maintain the high level of fundamental rights - and in particular data protection – enjoyed by citizens in the European Union.</li>
<li>Refrain from forcing companies like us to conduct mass surveillance of private correspondence on behalf of law enforcement agencies.</li>
<li>Guarantee a high level of cybersecurity in the EU by protecting end-to-end encryption and bringing the necessary safeguards in the text. Client-side scanning and backdoors in particular should not be mandated.</li>
<li>Preserve the confidentiality of correspondence.</li>
<li>Minimize the administrative burden of the proposal by making it more effective and efficient, through alternatives to mass scanning.</li>
</ul>
<p>Signed,</p>
<ul>
<li>Blacknight Solutions (Ireland) </li>
<li>Element (United Kingdom)</li>
<li>Mail.de GmbH (Germany)</li>
<li>Matrix Foundation (United Kingdom) </li>
<li>Nextcloud (Germany)</li>
<li>Open-Xchange (Germany) </li>
<li>Renvis (Greece) </li>
<li>TelemetryDeck (Germany) </li>
<li>Tresorit (Switzerland)</li>
<li>E Foundation (France) </li>
<li>Logilab (France) </li>
<li>Mailfence (Belgium) </li>
<li>Murena (France) </li>
<li>Olvid (France)</li>
<li>Proton (Switzerland) </li>
<li>Surfshark (Lithuania) </li>
<li>Threema (Switzerland) </li>
<li>Tuta (Germany)</li>
</ul>
<p>Trade associations and supporters:</p>
<ul>
<li>ACT | The App Association </li>
<li>Defend Democracy</li>
<li>Gate 15 </li>
<li>Myntex</li>
<li>Quilibrium</li>
<li>Studio Legale Fabiano</li>
<li>Cyberstorm</li>
<li>Encryption Europe</li>
<li>ISOC-CAT</li>
<li>Privacy & Access Council of Canada</li>
<li>SecureCrypt</li>
</ul>
<div class="footnote-definition" id="1"><sup class="footnote-definition-label">1</sup>
<p>A detailed summary of the proposal, drafted by the NGO EDRi, is available here: <a href="https://edri.org/our-work/private-and-secure-communications-put-at-risk-by-european-commissions-latest-proposal/">https://edri.org/our-work/private-and-secure-communications-put-at-risk-by-european-commissions-latest-proposal/</a></p>
</div>
<div class="footnote-definition" id="2"><sup class="footnote-definition-label">2</sup>
<p>For more information, you can read their statement from July 2023: <a href="https://edri.org/wp-content/uploads/2023/07/Open-Letter-CSA-Scientific-community.pdf">https://edri.org/wp-content/uploads/2023/07/Open-Letter-CSA-Scientific-community.pdf</a></p>
</div>
<div class="footnote-definition" id="3"><sup class="footnote-definition-label">3</sup>
<p>See in particular page 134 of the impact assessment: <a href="https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:52022SC0209">https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:52022SC0209</a></p>
</div>
This Week in Matrix 2024-01-192024-01-19T00:00:00+00:002024-01-19T00:00:00+00:00Thibhttps://matrix.org/blog/2024/01/19/this-week-in-matrix-2024-01-19/<h2 id="matrix-live">Matrix Live</h2>
<noscript>Today's Matrix Live: <a href="https://youtube.com/watch?v=yCQX1IckgaE">https://youtube.com/watch?v=yCQX1IckgaE</a></noscript>
<youtube-player video-id="yCQX1IckgaE"></youtube-player>
<h2 id="dept-of-status-of-matrix-face-with-th">Dept of <em>Status of Matrix</em> 🌡️</h2>
<p><a href="https://matrix.to/#/@josh:josh.tel">Josh Simmons</a> announces</p>
<blockquote>
<p>Have you seen the <a href="https://survey.stackoverflow.co/2023/#section-admired-and-desired-synchronous-tools">Stack Overflow Developer Survey results</a> for 2023?!</p>
<p>Of the 83,830 folks surveyed, Matrix was the #1 chat tool in terms of current users' satisfaction. It was also rated as the most desirable among the open source tools with open governance, but there is a lot of room for improvement in awareness. We’re excited to build on this 2024! 🚀
<img src="/blog/img/91c38cc78477b571f0628e95a07b8ca525e3d2191747390913107197952.png" alt="" /></p>
</blockquote>
<span id="continue-reading"></span><h2 id="dept-of-bridges-bridge-at-night">Dept of Bridges 🌉</h2>
<p><a href="https://matrix.to/#/@em:shema.lv">Emīlija</a> announces</p>
<blockquote>
<p><strong>Matrix-Zulip bridge</strong></p>
<p>I have made a bridge for Zulip.</p>
<p>It can:</p>
<ul>
<li>Send text messages</li>
<li>Use Matrix puppeting</li>
<li>Translate between Zulip topics and Matrix threads</li>
<li>Bridge multiple organizations and streams</li>
<li>Bridge all topics from a stream to a single room</li>
</ul>
<p><a href="https://github.com/GearKite/MatrixZulipBridge#matrixzulipbridge">More details on GitHub</a></p>
</blockquote>
<h2 id="dept-of-clients-iphone">Dept of Clients 📱</h2>
<h3 id="schildichat-website">SchildiChat (<a href="https://schildi.chat">website</a>)</h3>
<p>SchildiChat is a fork of Element that focuses on UI changes such as message bubbles and a unified chat list for both direct messages and groups, which is a more familiar approach to users of other popular instant messengers.</p>
<p><a href="https://matrix.to/#/@spiritcroc:spiritcroc.de">SpiritCroc</a> says</p>
<blockquote>
<p>It's been a while since I last posted here, so it's about time I tell you more about the current state of SchildiChat for Android!</p>
<p>Last year was rather eventless when it comes to new features.
Since Element switched to maintenance mode for our upstream codebase, it didn't make much sense to keep developing new features for it, since we'll want to benefit from Element X's performance improvements and the advantages of using Jetpack Compose as UI toolkit as well.
On the other hand, for most of last year, Element X didn't feature enough basic functionality to start tweaking it to our likes.</p>
<p>This situation has changed towards the end of last year, and work has started on <a href="https://github.com/SchildiChat/schildichat-android-next">SchildiChat Next</a>, a SchildiChat fork of Element X for Android.
It's still very much work-in-progress (it even still welcomes you to "Element" during onboarding) and misses lots of our original features found in the old codebase.
Not all of these features will come back, but we may add some new ones in return.
Like usually, we focus on whatever makes sense to us and that we wished that Element had that's in our scope to implement.</p>
<p>Now, since everybody will ask anyway what changes exactly we make, I'll try to maintain an updated list <a href="https://github.com/SchildiChat/schildichat-android-next/blob/main/FEATURES.md">here</a>.
Some highlights of what has been done so far, apart from some mandatory theme and design changes to better match our taste:</p>
<ul>
<li>Floating date header while scrolling messages</li>
<li>Sort room list by unread rooms first</li>
<li>Render media captions in accordance to <a href="https://github.com/matrix-org/matrix-spec-proposals/pull/2530">MSC2530</a></li>
<li>Render server-reported unread counts, including support for <a href="https://github.com/matrix-org/matrix-spec-proposals/pull/2654">MSC2654</a> (if both your homeserver and your sliding-sync proxy support this MSC)</li>
</ul>
<p>Furthermore, I'm currently working on filtering the room list by spaces, since this feature has become a must-have for me, but upstream space support is not expected to land soon.
I already added some basic implementation for hierarchical space filtering as experimental feature in current test builds.
However, there's still work remaining, like properly reporting the filtered room list to the sliding window for sliding sync, respecting the user-chosen space sort order, and fixing <a href="https://github.com/SchildiChat/schildichat-android-next/issues/4">remaining bugs</a>.</p>
<p>If you already want to try out SchildiChat Next before it's ready for a stable release, it's currently available in my <a href="https://s2.spiritcroc.de/testing/fdroid/repo/">F-Droid testing repository</a>.
For discussion, you can visit our matrix room at <a href="https://matrix.to/#/#android:schildi.chat">#android:schildi.chat</a> .
<img src="/blog/img/NBYAUpxlauPpxooEBNVRPCor.png" alt="" />
<img src="/blog/img/NXLBTXdPxiHZhdoJMkzKgWqC.png" alt="" /></p>
</blockquote>
<h3 id="fractal-website">Fractal (<a href="https://gitlab.gnome.org/World/fractal">website</a>)</h3>
<p>Matrix messaging app for GNOME written in Rust.</p>
<p><a href="https://matrix.to/#/@zecakeh:tedomum.net">Kévin Commaille</a> says</p>
<blockquote>
<p>Fractal 6 is up and ready! </p>
<p>That's right, barely 2 months after Fractal 5, we feel there have been enough improvements to grant a new stable release. You have probably noticed that we have adopted a version scheme similar to GNOME and will bump the major version with each new release.</p>
<p>The list of goodies:</p>
<ul>
<li>Fractal can open Matrix URIs, it is even registered as a handler for the <code>matrix</code> scheme</li>
<li>The verification flow was rewritten, hopefully solving most verification issues</li>
<li>Room members can be kicked, banned or ignored from their profile</li>
<li>More notifications settings, global or per-room, were added</li>
<li>Times follow the format (12h or 24h) from the system settings</li>
<li>Tab auto-completion also works for mentioning public rooms, just start your query with <code>#</code></li>
</ul>
<p>It is available right now on <a href="https://flathub.org/apps/org.gnome.Fractal">Flathub</a>.</p>
<p>This version is fully translated into 6 languages 🙌️ and we hope to get even more 📈 for the next one! Head over to <a href="https://l10n.gnome.org/module/fractal/">Damned Lies</a> if you want to give a hand.</p>
<p>We would also like to thank our new and returning contributors and our upstream projects.</p>
<p>For our next iteration, we already have a bunch of accessibility improvements waiting, and we plan to continue improving the room settings and the moderation features. Any extra work <a href="https://gitlab.gnome.org/GNOME/fractal/-/issues/?label_name%5B%5D=4.%20Newcomers">from you 🫵️</a> will be highly valued!</p>
<p><img src="/blog/img/7386389379feef250a2fd74bf892217d743b48bc1748042859015045120.png" alt="" /></p>
</blockquote>
<h3 id="element-x-android-website">Element X Android (<a href="https://github.com/vector-im/element-x-android">website</a>)</h3>
<p>Android Matrix messenger application using the Matrix Rust Sdk and Jetpack Compose </p>
<p><a href="https://matrix.to/#/@benoit.marty:matrix.org">benoit</a> announces</p>
<blockquote>
<ul>
<li>We have released the version 0.4.1, more details about what's new in the <a href="https://github.com/element-hq/element-x-android/releases/tag/v0.4.1">release notes</a>. Will be in production next week.</li>
<li>Also working to publish the application to F-Droid, with support for push with UnifiedPush.</li>
</ul>
</blockquote>
<h2 id="dept-of-sdks-and-frameworks">Dept of SDKs and Frameworks 🧰</h2>
<h3 id="matrix-rust-sdk">Matrix Rust SDK</h3>
<p><a href="https://matrix.to/#/@bnjbvr:delire.party">bnjbvr</a> reports</p>
<blockquote>
<ul>
<li>Support for notifications in invited rooms has been added, thanks to zecakeh.</li>
<li>Failing to toggle a reaction will now properly report the error to the caller.</li>
<li>Many fixes and improvements in the crypto crates, notably for better Web support with indexeddb.</li>
<li>Read statuses for rooms are now properly computed client-side, giving better counts than homeservers can compute, viz. for encrypted rooms.</li>
<li>New commit and pull requests guidelines have been added to the contribution guidelines.</li>
</ul>
</blockquote>
<h3 id="matrix-nio">matrix-nio</h3>
<p><a href="https://matrix.to/#/@me:shahpaarth.com">Paarth Shah</a> says</p>
<blockquote>
<p>New release of <code>matrix-nio</code>! Most notable change is that some minimum dependencies have been bumped (for compatibility/security purposes), and as a result <code>python3.12</code> is now fully supported and tested!
Full changelog <a href="https://github.com/poljar/matrix-nio/blob/main/CHANGELOG.md#0240---2024-01-18">here</a></p>
</blockquote>
<h3 id="trixnity-website">Trixnity (<a href="https://gitlab.com/trixnity/trixnity">website</a>)</h3>
<p>Multiplatform Kotlin SDK for Matrix</p>
<p><a href="https://matrix.to/#/@benedict:imbitbu.de">Benedict</a> reports</p>
<blockquote>
<p>Trixnity v4.2.0 has been released with some polishing.</p>
<p>features/improvements:</p>
<ul>
<li><code>loginWith</code> automatically gets profile information, which makes custom login easier</li>
<li>allow gracefully stopping ongoing sync request</li>
<li>BREAKING: cleaner hierarchy of <code>RoomMessageEventContent</code></li>
<li>introduced <code>FileBasedInfo</code></li>
<li><code>ActiveVerifications</code> as interface to allow mocking</li>
<li>don't force type in MessageBuilder extensions</li>
</ul>
</blockquote>
<h2 id="dept-of-ops">Dept of Ops 🛠</h2>
<h3 id="dendrite-admin-interface-website">Dendrite-Admin-Interface (<a href="https://github.com/jjj333-p/dendrite-admin-interface">website</a>)</h3>
<p><a href="https://matrix.to/#/@jjj333:pain.agency">jjj333_p (any pronouns)</a> announces</p>
<blockquote>
<p><strong>Dendrite-Admin-Interface</strong> is in its third release, <a href="https://github.com/jjj333-p/dendrite-admin-interface/releases/tag/v0.0.3">v0.0.3</a>, and what I consider <em>useful</em> to some public/group instances of Dendrite.</p>
<p><strong>What this includes</strong>: Along with the evacuate user/room command previously announced, there is now a convenient reset password command as well as a deactivate user command. The deactivate user command is particularly useful as this feature does not exist natively in the Dendrite admin api, and it is able to set the user display name and profile image to something sanatized and indicative of a deactivated user for clarity--on par with industry standard chat platforms. Oh and I finally wrote up proper documentation for setting it up lol.</p>
<p><strong>What is to come?</strong></p>
<ul>
<li>Media moderation - audo deletion, as well as manual deletion of users. when added to deactivate user command, this should comply with as close to a gdpr delete as we will get on the matrix platform. </li>
<li>Regex based user listing and deactivation - as per popular demand, one of the soon coming features for the interface to be able to fetch active users from the database (read only) and then perform mass actions on those, useful in situations such as spam bot attacks.</li>
</ul>
<p>Remember to drop by our <a href="https://github.com/jjj333-p/dendrite-admin-interface">Github</a> and throw your feature requests into an issue!</p>
</blockquote>
<h3 id="matrix-docker-ansible-deploy-website">matrix-docker-ansible-deploy (<a href="https://github.com/spantaleev/matrix-docker-ansible-deploy">website</a>)</h3>
<p>Matrix server setup using Ansible and Docker</p>
<p><a href="https://matrix.to/#/@slavi:devture.com">Slavi</a> announces</p>
<blockquote>
<p>After an insane amount of work, which we had been procrastinating on since <a href="https://github.com/spantaleev/matrix-docker-ansible-deploy">matrix-docker-ansible-deploy</a>'s initial <a href="https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/dbebe7c59825ad439ccf0939acf94bd01efbedbc/CHANGELOG.md#traefik-is-the-default-reverse-proxy-now">migration to Traefik</a> last year, we're finally <a href="https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/dbebe7c59825ad439ccf0939acf94bd01efbedbc/CHANGELOG.md#goodbye-matrix-nginx-proxy-">saying goodbye to the <code>matrix-nginx-proxy</code> component</a>.</p>
<p>This change represents a huge refactoring, not only in how services get exposed publicly (reverse-proxy-wise), but also in cross-container networking, Prometheus-metrics exposure, and other areas.</p>
<p><code>matrix-nginx-proxy</code> has been very central to the Ansible playbook during its 7 years of life, performing at least 7 different roles and thus going against the <a href="https://en.wikipedia.org/wiki/Unix_philosophy">UNIX philosophy</a> of "doing one thing and doing it well". We're happy to have untangled that whole mess and to finally see it gone! May it rest in peace! 🪦</p>
</blockquote>
<h2 id="dept-of-bots-robot-face">Dept of Bots 🤖</h2>
<h3 id="draupnir-website">Draupnir (<a href="https://github.com/the-draupnir-project/Draupnir">website</a>)</h3>
<p><a href="https://matrix.to/#/@gnu_ponut:matrix.org">Gnuxie 💜🐝</a> announces</p>
<blockquote>
<p><a href="https://github.com/the-draupnir-project/Draupnir">Draupnir</a>, which is a moderation bot
that Matrix communities use to collaboratively protect each other,
is now licensed under the <a href="https://github.com/the-draupnir-project/Draupnir/blob/main/LICENSE">AFL-3.0</a>
which is an OSI approved license.
Previously Draupnir was licensed under the <a href="https://github.com/the-draupnir-project/Draupnir/blob/e4c02b96cdde2059abf907bdb486246f70357cf0/LICENSE">Cooperative Software License</a>,
details for the license change can be found <a href="https://github.com/the-draupnir-project/Draupnir/issues/176">here</a>.
Docker images are now built with Node 20, though using Draupnir with Node 18 from source is still supported
and will be for the foreseeable future.
Both these changes come with the release of Draupnir 1.86.0, the full details of which can be found
<a href="https://github.com/the-draupnir-project/Draupnir/releases/tag/v1.86.0">here</a>.</p>
<p>You have probably noticed that it has been three months since the last release, and this is because
I have been extracting and rearchitecting the core of Draupnir (and Mjolnir) into a TypeScript library
which Draupnir will depend upon in an upcoming release.
This library is called the <a href="https://github.com/Gnuxie/matrix-protection-suite">matrix-protection-suite</a>
and is being developed specifically to express Draupnir's core concepts concisely.
In my view, it has become necessary to create this library because it has been very difficult to
maintain or consider adding features which lay on a foundation that is limiting,
and it is simpler to attempt to remedy that before addressing the bigger issues that Draupnir and
Mjolnir have. Each change to Draupnir can (and often does) exacerbate or complicate existing issues,
and this is mostly natural to software as it ages.</p>
<p>With that, you can come find us in <a href="https://matrix.to/#/#draupnir:matrix.org">https://matrix.to/#/#draupnir:matrix.org</a>.
I also want to thank everyone who has been providing support for others using Draupnir both
within <a href="https://matrix.to/#/#draupnir:matrix.org">https://matrix.to/#/#draupnir:matrix.org</a> and elsewhere.</p>
</blockquote>
<h2 id="dept-of-events-and-talks">Dept of Events and Talks 🗣️</h2>
<p><a href="https://matrix.to/#/@kim:sosnowkadub.de">HarHarLinks</a> announces</p>
<blockquote>
<p>It is This Week in Matrix 2024-01-19, and that means it is only 2 more TWIMs until FOSDEM 2024!</p>
<p>This is a reminder that on Friday (2024-02-02) afternoon leading up to FOSDEM, the Matrix Foundation and Community will host a <a href="https://fosdem.org/2024/fringe/">FOSDEM Fringe</a> event called <a href="https://matrix.to/#/#fosdem2024-foundation-community-meetup:matrix.org">#fosdem2024-foundation-community-meetup:matrix.org</a> at and with the support of <a href="https://hsbxl.be/enter/">Hackerspace Brussels</a>!</p>
<p>Further, there will be a booth on the floor and a main track talk on Sunday morning followed by a whole afternoon of Matrix presentations in the <a href="https://fosdem.org/2024/schedule/track/matrix/">Matrix devroom</a>.</p>
<p>So, in case you haven't yet, this is your reminder to book your journey and accommodation, and meet you in Brussels!</p>
<p>Read Thib's blog post for all the details at <a href="https://matrix.org/blog/2024/01/matrix-presence-fosdem/">https://matrix.org/blog/2024/01/matrix-presence-fosdem/</a>.</p>
</blockquote>
<h2 id="dept-of-guides">Dept of Guides 🧭</h2>
<h3 id="matrix-client-tutorial">Matrix Client Tutorial</h3>
<p><a href="https://matrix.to/#/@hubert:uhoreg.ca">uhoreg</a> reports</p>
<blockquote>
<p>I've completed the initial draft of the <a href="https://uhoreg.gitlab.io/matrix-tutorial/tying_together_megolm.html#encrypting-room-events">Megolm encryption section</a> of my client tutorial. In contrast to the previous section I wrote on Megolm encryption, this section is higher-level, and shows how outbound Megolm sessions are managed and sent. Up next will be a section on properly handling <code>m.room.encryption</code> events, and a simple example bot that handles encryption.</p>
</blockquote>
<h2 id="matrix-federation-stats">Matrix Federation Stats</h2>
<p><a href="https://matrix.to/#/@aine:etke.cc">Aine</a> announces</p>
<blockquote>
<p>collected by <a href="https://matrixrooms.info">MatrixRooms.info</a> - an <a href="https://gitlab.com/etke.cc/mrs/api">MRS</a> instance by <a href="https://etke.cc?utm_source=twim&utm_medium=matrix&utm_campaign=federation-stats">etke.cc</a></p>
<p>As of today, <code>8492</code> Matrix federateable servers have been discovered by matrixrooms.info, <code>2323</code> (<code>27.4%</code>) of them are publishing their rooms directory over federation.
The published directories contain <code>167178</code> rooms.</p>
<p><a href="https://gitlab.com/etke.cc/mrs/api/-/blob/main/docs/indexing.md">How to add your server</a> | <a href="https://gitlab.com/etke.cc/mrs/api/-/blob/main/docs/deindexing.md">How to remove your server</a></p>
</blockquote>
<h2 id="dept-of-ping">Dept of Ping</h2>
<p>Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by <a href="https://github.com/maubot/echo">pingbot</a>, a <a href="https://github.com/maubot/maubot">maubot</a> that you can host on your own server.</p>
<h3 id="ping-maunium-net"><a href="https://matrix.to/#/#ping:maunium.net">#ping:maunium.net</a></h3>
<p>Join <a href="https://matrix.to/#/#ping:maunium.net">#ping:maunium.net</a> to experience the fun live, and to find out how to add YOUR server to the game.</p>
<table><thead><tr><th style="text-align: center">Rank</th><th style="text-align: center">Hostname</th><th style="text-align: center">Median MS</th></tr></thead><tbody>
<tr><td style="text-align: center">1</td><td style="text-align: center">envs.net</td><td style="text-align: center">221.5</td></tr>
<tr><td style="text-align: center">2</td><td style="text-align: center">nerdhouse.io</td><td style="text-align: center">294</td></tr>
<tr><td style="text-align: center">3</td><td style="text-align: center">plocki.org</td><td style="text-align: center">324</td></tr>
<tr><td style="text-align: center">4</td><td style="text-align: center">fostered.uk</td><td style="text-align: center">348</td></tr>
<tr><td style="text-align: center">5</td><td style="text-align: center">ilmari.org</td><td style="text-align: center">514.5</td></tr>
<tr><td style="text-align: center">6</td><td style="text-align: center">sulian.eu</td><td style="text-align: center">543</td></tr>
<tr><td style="text-align: center">7</td><td style="text-align: center">shema.lv</td><td style="text-align: center">752</td></tr>
<tr><td style="text-align: center">8</td><td style="text-align: center">matrix.sp-codes.de</td><td style="text-align: center">802</td></tr>
<tr><td style="text-align: center">9</td><td style="text-align: center">rom4nik.pl</td><td style="text-align: center">922</td></tr>
<tr><td style="text-align: center">10</td><td style="text-align: center">herkinf.de</td><td style="text-align: center">932</td></tr>
</tbody></table>
<h3 id="ping-no-synapse-maunium-net"><a href="https://matrix.to/#/#ping-no-synapse:maunium.net">#ping-no-synapse:maunium.net</a></h3>
<p>Join <a href="https://matrix.to/#/#ping-no-synapse:maunium.net">#ping-no-synapse:maunium.net</a> to experience the fun live, and to find out how to add YOUR server to the game.</p>
<table><thead><tr><th style="text-align: center">Rank</th><th style="text-align: center">Hostname</th><th style="text-align: center">Median MS</th></tr></thead><tbody>
<tr><td style="text-align: center">1</td><td style="text-align: center">nerdhouse.io</td><td style="text-align: center">127.5</td></tr>
<tr><td style="text-align: center">2</td><td style="text-align: center">dendrite.s3cr3t.me</td><td style="text-align: center">159</td></tr>
<tr><td style="text-align: center">3</td><td style="text-align: center">matrix.its-tps.fr</td><td style="text-align: center">182</td></tr>
<tr><td style="text-align: center">4</td><td style="text-align: center">matrix.maymundere.org</td><td style="text-align: center">219</td></tr>
<tr><td style="text-align: center">5</td><td style="text-align: center">dendrite.matrix.org</td><td style="text-align: center">305.5</td></tr>
<tr><td style="text-align: center">6</td><td style="text-align: center">inu.is</td><td style="text-align: center">310</td></tr>
<tr><td style="text-align: center">7</td><td style="text-align: center">neshweb.chat</td><td style="text-align: center">324</td></tr>
<tr><td style="text-align: center">8</td><td style="text-align: center">darkness.services</td><td style="text-align: center">531</td></tr>
<tr><td style="text-align: center">9</td><td style="text-align: center">herkinf.de</td><td style="text-align: center">936.5</td></tr>
<tr><td style="text-align: center">10</td><td style="text-align: center">jpeg.city</td><td style="text-align: center">1011.5</td></tr>
</tbody></table>
<h2 id="that-s-all-i-know">That's all I know</h2>
<p>See you next week, and be sure to stop by <a href="https://matrix.to/#/#twim:matrix.org">#twim:matrix.org</a> with your updates!</p>