From f47f620d30c0862c7304f58b186f40309a0aa85a Mon Sep 17 00:00:00 2001 From: MTRNord Date: Fri, 24 Oct 2025 17:29:14 +0200 Subject: [PATCH 01/14] Publish TWIM 2025-10-24 Signed-off-by: MTRNord --- content/blog/2025/10/2025-10-24-twim.md | 322 ++++++++++++++++++++++++ static/blog/img/msc-crafter.avif | Bin 0 -> 50600 bytes 2 files changed, 322 insertions(+) create mode 100644 content/blog/2025/10/2025-10-24-twim.md create mode 100644 static/blog/img/msc-crafter.avif diff --git a/content/blog/2025/10/2025-10-24-twim.md b/content/blog/2025/10/2025-10-24-twim.md new file mode 100644 index 000000000..40ac2cde9 --- /dev/null +++ b/content/blog/2025/10/2025-10-24-twim.md @@ -0,0 +1,322 @@ ++++ +date = "2025-10-24" +title = "This Week in Matrix 2025-10-24" +path = "/blog/2025/10/24/this-week-in-matrix-2025-10-24" + +[taxonomies] +author = ["MTRNord"] +category = ["This Week in Matrix"] ++++ + +## Matrix Conference 2025 - The Matrix State of the Union + +{{youtube_player(video_id="2y8qtRLgalQ")}} + +### Matrix Conference Recordings + +Beyond the Matrix State of The Union you can also find all of the Matrix Conference recordings at + +## Dept of *Status of Matrix* 🌑️ + +[HarHarLinks](https://matrix.to/#/@kim:sosnowkadub.de) announces + +> ### Matrix.org Foundation to receive funding from FLOSS/fund +> +> We are excited this week that The Matrix.org Foundation is to [receive $25000 in funding](https://floss.fund/blog/second-tranche-2025-anniversary/) from [FLOSS/fund](https://floss.fund)! +> +> Quoting from their website, +> > Started in 2024 at [Zerodha](https://zerodha.com/open-source), FLOSS/fund is dedicated to supporting critical, impactful, and valuable Free/Libre and Open Source projects globally. +> +> Earlier this year, some Matrix nerds from [#community-events:matrix.org](https://matrix.to/#/#community-events:matrix.org) visited the [FOSSASIA](https://fossasia.org/) summit in Bangkok, Thailand, (watch this space for 2026! πŸ‘€) where we met the super enthusiastic folks from FLOSS/fund who urged us to join as they are very excited about Matrix and see it as important FLOSS infrastructure; both directly by itself, and also due to being supporting infrastructure used to make significant amounts of FLOSS projects happen. +> +> As we returned home and after getting approval from the Foundation, the [Website & Content Working Group](https://matrix.org/foundation/working-groups/) got to work and [published](https://github.com/matrix-org/matrix.org/pull/2660) the `funding.json` and related files to the website as well as some important projects of the Foundation, such that they would become indexed and available to easily browse at . This is a very interesting project in itself! It is really well implemented and in our eyes the setup matches the open source spirit perfectly. +> +> And just last weekend, as we are wrapping up [The Matrix Conference](https://conference.matrix.org) in Strasbourg, we receive word that Matrix has been [selected in the second tranche of 2025 to receive $25000](https://floss.fund/blog/second-tranche-2025-anniversary/)! +> +> We congratulate all of the other awesome projects who were selected! πŸŽ‰ +> A million thanks to FLOSS/fund for selecting us, as well as everyone else involved for making this happen. 🀩 +> We are excited to see where the road for FLOSS/fund leads next year! πŸš€ +> If you are able and looking to fund FLOSS projects you are building on, find worth supporting, or even just to discover new ones, we absolutely encourage you to browse the awesome directory at ! +> +> Find out how else you can support The Matrix.org Foundation at . Does your organisation rely on Matrix? [Join us as a funding member](https://matrix.org/membership/). + +### DINUM sponsors Matrix + +[Amandine](https://matrix.to/#/@Amandine:matrix.org) says + +> πŸ‡«πŸ‡· Very excited to announce that [DINUM, the French Interministerial Digital Directorate, is joining the Matrix.org Foundation](https://www.numerique.gouv.fr/sinformer/espace-presse/dinum-soutien-fondation-matrixorg/) as a Silver member and becomes the first government to join the Foundation! πŸš€ +> +> Matrix is the backbone of [Tchap](https://tchap.numerique.gouv.fr/), the secure messaging app for the French government, and it is great to see a State stepping up to concretely support and collaborate with an open source project so critical to their functioning. +> +> πŸ’‘ We hope this will show the way to all the other public sector organisations using Matrix, especially after we kicked off a Matrix for Public Sector group at the Matrix Conference last week, hopefully soon approved by the Governing Board as an official [Working Group](https://matrix.org/foundation/working-groups/) 🀞! +> +> ➑️ check out [the announcement blog](https://matrix.org/blog/2025/10/dinum/)! + +### Updated Support and Membership Pages + +[HarHarLinks](https://matrix.to/#/@kim:sosnowkadub.de) reports + +> Just in time for The Matrix Conference, the Website & Content WG have revamped the /support and /membership pages of matrix.org for clearer structure, making it easier to find the methods to support the Foundation, and collecting all info about membership on one page instead of spreading it across multiple. +> +> Check it out on , from where you can also navigate to learn more about . +> +> Please let us know your thoughts, and if there is anything else to add, at #matrix.org-website:matrix.org! + +## Dept of Spec πŸ“œ + +[Half-Shot](https://matrix.to/#/@Half-Shot:half-shot.uk) announces + +### MSC Crafter + +> Working on a new small project to render MSCs in a faster, learner format than GitHub currently allows with intelligent rendering of things like: +> +> - Comment theads +> - Ticky boxes for FCP +> - MSC state based on labels +> - Linking together mentioned MSCs and spec items to easily lay out how a spec maps to Matrix +> +> As well as that, primarily I want to add offline support to all of this so I can use it as a quick reference too when working on Matrix. +> +> It's already slightly functional: +> +> {{ figure( + img="/blog/img/msc-crafter.avif" + caption="The MSC Crafter UI" +) }} + +[Andrew Morgan (anoa) {he/him}](https://matrix.to/#/@andrewm:element.io) says + +### Weekly Spec Update + +> 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 . +> +> +> ### MSC Status +> +> **New MSCs:** +> +> - [MSC4373: Server opt-out of specific EDU types](https://github.com/matrix-org/matrix-spec-proposals/pull/4373) +> - [MSC4371: On the elimination of federation transactions.](https://github.com/matrix-org/matrix-spec-proposals/pull/4371) +> - [MSC4370: Federation endpoint for retrieving current extremities](https://github.com/matrix-org/matrix-spec-proposals/pull/4370) +> +> **MSCs in Final Comment Period:** +> +> - [MSC3782: Matrix public key login spec](https://github.com/matrix-org/matrix-spec-proposals/pull/3782) (close) +> - [MSC3779: "Owned" State Events](https://github.com/matrix-org/matrix-spec-proposals/pull/3779) (close) +> - [MSC3757: Restricting who can overwrite a state event](https://github.com/matrix-org/matrix-spec-proposals/pull/3757) (close) +> - [MSC2839: Dynamic User-Interactive Authentication](https://github.com/matrix-org/matrix-spec-proposals/pull/2839) (close) +> - [MSC2835: Add UIA to the /login endpoint](https://github.com/matrix-org/matrix-spec-proposals/pull/2835) (close) +> - [MSC2416: Add m.login.jwt authentication type](https://github.com/matrix-org/matrix-spec-proposals/pull/2416) (close) +> +> **Accepted MSCs:** +> +> - *No MSCs were accepted this week.* +> +> **Closed MSCs:** +> +> - *No MSCs were closed/rejected this week.* +> +> ### Spec Updates +> +> The barrage of MSCs marked as FCP close above are the result of the next-gen auth being merged to the spec, and the Spec Core Team going through and closing all the MSCs that it obsoletes. +> +> Otherwise, with the Matrix conference last weekend behind us, the SCT are continuing to focus on Matrix 2.0 MSCs with a more relaxed cadence. + +## Dept of Trust & Safety βš–οΈ + +### Draupnir ([website](https://github.com/the-draupnir-project/Draupnir)) + +A moderation bot for open Matrix communities. + +[Gnuxie πŸ’œπŸ](https://matrix.to/#/@gnu_ponut:matrix.org) announces + +> **Draupnir call for participation: reviewing the last development cycle and affirming the project direction** +> +> Hi everyone, if you value the work that we do on the Draupnir project and think that it is important then we need to hear from you. +> We are trying something new where we provide a short update and reflection about the project and an interactive vote where you can affirm contributors about the project direction. +> +> - Cycle review: +> - Next cycle selection: +> - Vote: +> - Discussion: + +## Dept of Servers 🏒 + +### Synapse ([website](https://github.com/element-hq/synapse/)) + +Synapse is a Matrix homeserver implementation developed by Element. + +[Andrew Morgan (anoa) {he/him}](https://matrix.to/#/@andrewm:element.io) reports + +> #### Deprecation of MacOS Python wheels +> +> The team has decided to deprecate and eventually stop publishing python wheels of Synapse for MacOS. This is a burden on the team, and we're not aware of any parties that use them. Synapse docker images will continue to work on MacOS, as will building Synapse from source (though note this requires a Rust compiler). +> +> Publishing MacOS Python wheels will continue for the next few releases. If you do make use of these wheels downstream, please reach out to us in [#synapse-dev:matrix.org](https://matrix.to/#/#synapse-dev:matrix.org). We'd love to hear from you! + +## Dept of Clients πŸ“± + +### Extera Next + +[OfficialDakari](https://matrix.to/#/@officialdakari:extera.xyz) reports + +> - Finally implemented polls. Extera Next now supports creating, viewing and participating in polls. +> - A privacy update: EXIF cleaning. Extera Next now removes EXIF metadata from pictures by default. You can change it in Settings β†’ Security. +> - Added notification actions from FluffyChat. +> +> Website: + +### Fractal ([website](https://gitlab.gnome.org/World/fractal)) + +Matrix messaging app for GNOME written in Rust. + +[KΓ©vin Commaille](https://matrix.to/#/@zecakeh:tedomum.net) reports + +> Ah, Autumn… The trees are wearing their warmest colors, the wine harvest is ending, developers are preparing to hibernate… and Fractal 13.rc is here! +> +> Our repository has been relatively quiet since the beta release, with mostly work on bug fixes for our new audio player, and a bit of code refactoring. +> +> As usual, this release includes other improvements, fixes and new translations thanks to all our contributors, and our upstream projects. +> +> It is available to install via Flathub Beta, see the [instructions in our README](https://gitlab.gnome.org/World/fractal#installation-instructions). +> +> As the version implies, it should be mostly stable and we expect to only include minor improvements until the release of Fractal 13. +> +> If you want to join the fun, you can try to fix one of our [newcomers issues](https://gitlab.gnome.org/World/fractal/-/issues/?label_name%5B%5D=4.%20Newcomers). We are always looking for new contributors! + +### Element X iOS ([website](https://github.com/vector-im/element-x-ios)) + +A total rewrite of Element iOS using the Matrix Rust SDK underneath and targeting devices running iOS 17+. + +[Mauro Romito](https://matrix.to/#/@mauro.romito:element.io) reports + +> - More features are coming to Spaces, like a way to check their members and invite new ones +> - Various fixes for iOS 26, one in particular fixes the scrolling behaviour not working properly sometime in the timeline. +> - Notifications are also getting improved so that they may bring you directly to a Thread if the lab feature is enabled + +[Mauro Romito](https://matrix.to/#/@mauro.romito:element.io) reports + +> - New RC has been sent for verification, it includes mostly fixes and stability improvements for iOS 26. +> - We are also working on having push notifications focus directly the events they are representing once you tap them. +> - Spaces work is progressing, we are implementing a way to view members of a space and manage their settings, while also taking the time to refactor and improve our codebase so that the flows that are common between rooms and spaces can be reused. + +### Element X Android ([website](https://github.com/vector-im/element-x-android)) + +Android Matrix messenger application using the Matrix Rust SDK and Jetpack Compose. + +[Jorge](https://matrix.to/#/@jorgem:element.io) announces + +> The team has been working hard on improving spaces and threads: +> +> - πŸ“³ We want you to be able to have separate notification groups for threads in rooms, and these should take you to the thread when opened. +> - 🏠 We're improving the architecture of the app to improve how spaces integrate with it, and also improving the design. +> - πŸ”„ There is a new feature flag enabled by default in nightly builds to use [WorkManager](https://developer.android.com/develop/background-work/background-tasks/persistent) to fetch the notification content for push notifications. We had to implement this since there are some restrictions on Android 15 and higher that won't allow the app to make network requests when it's on background, even after receiving a push notification. This should now be fixed, but since it's a new implementation there might be some regressions. Please try it out and let us know! +> - 🏎️ There is some planned work for improving the overall performance of the Element X Android application, focused on the bottleneck caused by fetching data from the Rust SDK and other rough edges. If all goes well, expect to see performance improvements soon! + +### Element ([website](https://element.io)) + +Everything related to Element but not strictly bound to a client. + +[Matthew](https://matrix.to/#/@matthew:matrix.org) reports + +> Element finally got around to renaming its legal entity from New Vector Ltd to Element Creations Ltd, as fun as it was having the company misnamed under the 2015 vintage brandname of Vector. This is purely cosmetic and has no impact on anything other the name used on appstore accounts (once updated), copyright statements and legal docs. + +## Dept of Ops πŸ›  + +### synadm ([website](https://codeberg.org/synadm/synadm)) + +Command line admin tool for Synapse (Matrix homeserver). + +[jacksonchen666 (they/it)](https://matrix.to/#/@jacksonchen666:jacksonchen666.com) says + +> Here's the summarized release notes for [v0.49](https://codeberg.org/synadm/synadm/releases/tag/v0.49): +> +> - Unix socket support! +> - synadm now sends a user-agent of its own now, including the version in the user-agent +> - `synadm media purge --before-days 0` now works (deletes all remote media before now). This also applies to local media deletion which has the same arguments. +> - Speaking of local media deletion, local media deletion now prompts for confirmation. +> - synadm correctly honors the "Verify certificates" setting (self-signed TLS/SSL certs should work now) +> - Forgot to include this in release notes, but there's also now a detailed [Getting Started](https://synadm.readthedocs.io/en/latest/getting_started.html) guide on the documentation. It will eventually replace the instructions in the README, but I am just getting started on the documentation (heh). +> +> The additional 2 hotfix patch releases ([v0.49.1](https://codeberg.org/synadm/synadm/releases/tag/v0.49.1) and [v0.49.2](https://codeberg.org/synadm/synadm/releases/tag/v0.49.2)) really are just bug fixes for new things in v0.49. The latest is now v0.49.2. +> +> Oh, and [#synadm:peek-a-boo.at](https://matrix.to/#/#synadm:peek-a-boo.at) is our matrix room, and [the Code is on the berg](https://codeberg.org/synadm/synadm) (uh, Codeberg). That's all! + +## Matrix in the News πŸ“° + +[MTRNord (they/them)](https://matrix.to/#/@mtrnord:mtrnord.blog) announces + +> <-- Matrix Conference 2025 has an article at heise (german). + +## Dept of Services πŸš€ + +### Synapse Admin Updates + +The last TWIM entry about [etke.cc's Synapse Admin fork](https://github.com/etkecc/synapse-admin) was *very* long ago - we stopped publishing them because the big / major changes were already implemented, and while each new release increased QoL and UX, there were not so much TWIM-worthy things. + +But today we have a big thing to announce: + +**OIDC Auth support has been implemented** by @beastafk:etke.cc + +It was requested [in the upstream project in 2023](https://github.com/Awesome-Technologies/synapse-admin/issues/429), and finally [implemented in etke.cc's Synapse Admin fork](https://github.com/etkecc/synapse-admin), making it more convenient for servers deployed with MAS. + +Apart from that, there were a lot of smaller-yet-convenient changes: + +- New localizations: Japanese (thanks to @shirahara:etke.cc ) and Ukrainian (thanks to [khvalera](https://github.com/khvalera)) +- External Auth Provider-compatible mode (less painful for OIDC, LDAP, etc.) +- Ongoing mobile UI improvements +- Support 3pids in bulk registration (csv import) +- Improved user account status toggles +- And many more small improvements here and there + +And for [etke.cc](https://etke.cc/) customers specifically, [more exclusive features](https://github.com/etkecc/synapse-admin/tree/main/src/components/etke.cc#etkecc-specific-components) have been added + +[Source code](https://github.com/etkecc/synapse-admin), [admin.etke.cc (CDN version)](https://admin.etke.cc), and don't forget to say hi in the #synapse-admin:etke.cc room! + +## Matrix Federation Stats + +[Aine [etke.cc]](https://matrix.to/#/@aine:etke.cc) announces + +> collected by [MatrixRooms.info](https://matrixrooms.info/?utm_source=twim&utm_medium=matrix&utm_campaign=federation-stats) - an [MRS](https://github.com/etkecc/mrs) instance by [etke.cc](https://etke.cc?utm_source=twim&utm_medium=matrix&utm_campaign=federation-stats) +> +> As of today, `10603` Matrix federateable servers have been discovered by matrixrooms.info, `3018` (`28.5%`) of them are publishing their rooms directory over federation. +> The published directories contain `18062` rooms. +> +> The most popular server software among the online servers is: +> +> - synapse: `9187` (`86.6%`) +> - conduit: `419` (`4.0%`) +> - dendrite: `366` (`3.5%`) +> - continuwuity: `263` (`2.5%`) +> - tuwunel: `217` (`2.0%`) +> +> Stats timeline is available on [MatrixRooms.info/stats](https://matrixrooms.info/stats/?utm_source=twim&utm_medium=matrix&utm_campaign=federation-stats) +> +> [How to add your server](https://matrixrooms.info/indexing/?utm_source=twim&utm_medium=matrix&utm_campaign=federation-stats) | [How to remove your server](https://matrixrooms.info/deindexing/?utm_source=twim&utm_medium=matrix&utm_campaign=federation-stats) + +## Dept of Ping πŸ“ + +Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by [pingbot](https://github.com/maubot/echo), a [maubot](https://github.com/maubot/maubot) that you can host on your own server. + +### [#ping:maunium.net](https://matrix.to/#/#ping:maunium.net) + +Join [#ping:maunium.net](https://matrix.to/#/#ping:maunium.net) to experience the fun live, and to find out how to add YOUR server to the game. + +|Rank|Hostname|Median MS| +|:---:|:---:|:---:| +|1|codestorm.net|181| +|2|nexy7574.co.uk|185| +|3|vibb.me|211| +|4|beeper.com|240| +|5|gingershaped.computer|312.5| +|6|calitabby.net|374.5| +|7|tomfos.tr|390| +|8|yipping.zone|551| +|9|skhron.org|623| +|10|mailstation.de|645| + +## That's all I know + +See you next week, and be sure to stop by [#twim:matrix.org](https://matrix.to/#/#twim:matrix.org) with your updates! + +To learn more about how to prepare an entry for TWIM check out [the TWIM guide](@/twim-guide.md). diff --git a/static/blog/img/msc-crafter.avif b/static/blog/img/msc-crafter.avif new file mode 100644 index 0000000000000000000000000000000000000000..7f0e2f8d424f094b48723379d5c292406fa3e64a GIT binary patch literal 50600 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

JPjtBU@Ujw7L& z92I*?!Zz{C*)o1ar>QacR&&|Bt)9h#@PM^U0PE&OnwIoXOv~tKCes~Au20z99!fRF zV_AMw(HuiC;1Y7lLsia=Q#kiU_66bs)=yRMc#!vlM-jn+Y7v(Mw(Qw;{gLPIO5;d5Il|F^4DD-jdbS>A!hi-e9m)vOBJ&SQgPuWkG%b~+J7*W_-_~+s|>)fg$ zf1G2#KYU3?C;d?~ks-W;;$EXS>!Po+YDu&b7FvR1fXANuA}G0grc~nW(TuEeFd}zO z!ccJ6S0*$}dSzC{1e9PGL!c3i4J{jw8Gpn<_Jt^p^O!&~>T5Cg+39l&5J<1JWi+@(U?r!t&liwHIpj4Xvbm-l1S z>UQ-k=kI)@(T$8#y$0EV)xEXCd(xYCSO5}7+zVq?(23{ZqZR+1)TBz~#}Wr^to_=Z zz3bHo6>|T7D3WL11h<|KJ<{c!U{~BG8KJ5sBs_Izwrl%#){_NK$ zgrrGH1MEZ}bB7?a{+sCM8shh>@1d)Mj%y;a6J*HJwd1x0f_5)^)M@&=P$n)!v^?`e z$t@_5|L0*7=4bWqR2#z)67V3E_2fkimSiC-n*FUtiO)`e#_ zMha`X+otvb1hz;1;4r0+B1?2i)5Qp9L$CI&A`gU9$_dfndqGuYHumspVwKlSISp<% z!!||@-h#&fNu=(MqqWkbPnUrHl$o@zFTaNKSs=1xqT$jJ#0O#lQ=C5Cn7{l-3?WJz zt3Ek+Kru?X%AKf0u5AUWyA82YDMEogaT7bA6AyMse@iK{Jv{(-

N(!@|Cgj~0a= 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 UTO{FPa_kc&B@$ Date: Fri, 24 Oct 2025 17:30:57 +0200 Subject: [PATCH 02/14] fix title Signed-off-by: MTRNord --- content/blog/2025/10/2025-10-24-twim.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/blog/2025/10/2025-10-24-twim.md b/content/blog/2025/10/2025-10-24-twim.md index 40ac2cde9..ee47b8cbf 100644 --- a/content/blog/2025/10/2025-10-24-twim.md +++ b/content/blog/2025/10/2025-10-24-twim.md @@ -20,8 +20,8 @@ Beyond the Matrix State of The Union you can also find all of the Matrix Confere [HarHarLinks](https://matrix.to/#/@kim:sosnowkadub.de) announces -> ### Matrix.org Foundation to receive funding from FLOSS/fund -> +### Matrix.org Foundation to receive funding from FLOSS/fund + > We are excited this week that The Matrix.org Foundation is to [receive $25000 in funding](https://floss.fund/blog/second-tranche-2025-anniversary/) from [FLOSS/fund](https://floss.fund)! > > Quoting from their website, From edeff133a9130a0127281dc1639156a55fc68f0b Mon Sep 17 00:00:00 2001 From: MTRNord Date: Fri, 24 Oct 2025 17:38:20 +0200 Subject: [PATCH 03/14] add missing fold indicator, missing dot and fixup capitalization Signed-off-by: MTRNord --- content/blog/2025/10/2025-10-24-twim.md | 28 +++++++++++++------------ 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/content/blog/2025/10/2025-10-24-twim.md b/content/blog/2025/10/2025-10-24-twim.md index ee47b8cbf..204cad8ba 100644 --- a/content/blog/2025/10/2025-10-24-twim.md +++ b/content/blog/2025/10/2025-10-24-twim.md @@ -14,10 +14,24 @@ category = ["This Week in Matrix"] ### Matrix Conference Recordings -Beyond the Matrix State of The Union you can also find all of the Matrix Conference recordings at +Beyond the Matrix State of The Union you can also find all of the Matrix Conference recordings at . ## Dept of *Status of Matrix* 🌑️ +### DINUM sponsors Matrix + +[Amandine](https://matrix.to/#/@Amandine:matrix.org) says + +> πŸ‡«πŸ‡· Very excited to announce that [DINUM, the French Interministerial Digital Directorate, is joining The Matrix.org Foundation](https://www.numerique.gouv.fr/sinformer/espace-presse/dinum-soutien-fondation-matrixorg/) as a Silver member and becomes the first government to join the Foundation! πŸš€ +> +> Matrix is the backbone of [Tchap](https://tchap.numerique.gouv.fr/), the secure messaging app for the French government, and it is great to see a State stepping up to concretely support and collaborate with an open source project so critical to their functioning. +> +> πŸ’‘ We hope this will show the way to all the other public sector organisations using Matrix, especially after we kicked off a Matrix for Public Sector group at the Matrix Conference last week, hopefully soon approved by the Governing Board as an official [Working Group](https://matrix.org/foundation/working-groups/) 🀞! +> +> ➑️ check out [the announcement blog](https://matrix.org/blog/2025/10/dinum/)! + + + [HarHarLinks](https://matrix.to/#/@kim:sosnowkadub.de) announces ### Matrix.org Foundation to receive funding from FLOSS/fund @@ -40,18 +54,6 @@ Beyond the Matrix State of The Union you can also find all of the Matrix Confere > > Find out how else you can support The Matrix.org Foundation at . Does your organisation rely on Matrix? [Join us as a funding member](https://matrix.org/membership/). -### DINUM sponsors Matrix - -[Amandine](https://matrix.to/#/@Amandine:matrix.org) says - -> πŸ‡«πŸ‡· Very excited to announce that [DINUM, the French Interministerial Digital Directorate, is joining the Matrix.org Foundation](https://www.numerique.gouv.fr/sinformer/espace-presse/dinum-soutien-fondation-matrixorg/) as a Silver member and becomes the first government to join the Foundation! πŸš€ -> -> Matrix is the backbone of [Tchap](https://tchap.numerique.gouv.fr/), the secure messaging app for the French government, and it is great to see a State stepping up to concretely support and collaborate with an open source project so critical to their functioning. -> -> πŸ’‘ We hope this will show the way to all the other public sector organisations using Matrix, especially after we kicked off a Matrix for Public Sector group at the Matrix Conference last week, hopefully soon approved by the Governing Board as an official [Working Group](https://matrix.org/foundation/working-groups/) 🀞! -> -> ➑️ check out [the announcement blog](https://matrix.org/blog/2025/10/dinum/)! - ### Updated Support and Membership Pages [HarHarLinks](https://matrix.to/#/@kim:sosnowkadub.de) reports From 4a514547a1d8df25b1aee04bcea04f417faab316 Mon Sep 17 00:00:00 2001 From: MTRNord Date: Fri, 24 Oct 2025 17:39:13 +0200 Subject: [PATCH 04/14] fixup DINUM header Signed-off-by: MTRNord --- content/blog/2025/10/2025-10-24-twim.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2025/10/2025-10-24-twim.md b/content/blog/2025/10/2025-10-24-twim.md index 204cad8ba..048d3e09d 100644 --- a/content/blog/2025/10/2025-10-24-twim.md +++ b/content/blog/2025/10/2025-10-24-twim.md @@ -18,7 +18,7 @@ Beyond the Matrix State of The Union you can also find all of the Matrix Confere ## Dept of *Status of Matrix* 🌑️ -### DINUM sponsors Matrix +### DINUM joins The Matrix.org Foundation [Amandine](https://matrix.to/#/@Amandine:matrix.org) says From 57dbcd6c3843bb749c8b7bc6be8a52c8b961a3d9 Mon Sep 17 00:00:00 2001 From: MTRNord Date: Fri, 24 Oct 2025 17:41:34 +0200 Subject: [PATCH 05/14] fix links Signed-off-by: MTRNord --- content/blog/2025/10/2025-10-24-twim.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/blog/2025/10/2025-10-24-twim.md b/content/blog/2025/10/2025-10-24-twim.md index 048d3e09d..8ac3f97c7 100644 --- a/content/blog/2025/10/2025-10-24-twim.md +++ b/content/blog/2025/10/2025-10-24-twim.md @@ -58,11 +58,11 @@ Beyond the Matrix State of The Union you can also find all of the Matrix Confere [HarHarLinks](https://matrix.to/#/@kim:sosnowkadub.de) reports -> Just in time for The Matrix Conference, the Website & Content WG have revamped the /support and /membership pages of matrix.org for clearer structure, making it easier to find the methods to support the Foundation, and collecting all info about membership on one page instead of spreading it across multiple. +> Just in time for The Matrix Conference, the [Website & Content WG](@/foundation/working-groups/index.md) have revamped the /support and /membership pages of matrix.org for clearer structure, making it easier to find the methods to support the Foundation, and collecting all info about membership on one page instead of spreading it across multiple. > > Check it out on , from where you can also navigate to learn more about . > -> Please let us know your thoughts, and if there is anything else to add, at #matrix.org-website:matrix.org! +> Please let us know your thoughts, and if there is anything else to add, at [#matrix.org-website:matrix.org](https://matrix.to/#/#matrix.org-website:matrix.org)! ## Dept of Spec πŸ“œ From 70d71a8e667194c8ae3dc165308a8aa6f2c968f2 Mon Sep 17 00:00:00 2001 From: MTRNord Date: Fri, 24 Oct 2025 17:42:45 +0200 Subject: [PATCH 06/14] fixup header order Signed-off-by: MTRNord --- content/blog/2025/10/2025-10-24-twim.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/content/blog/2025/10/2025-10-24-twim.md b/content/blog/2025/10/2025-10-24-twim.md index 8ac3f97c7..e787f9022 100644 --- a/content/blog/2025/10/2025-10-24-twim.md +++ b/content/blog/2025/10/2025-10-24-twim.md @@ -32,10 +32,10 @@ Beyond the Matrix State of The Union you can also find all of the Matrix Confere -[HarHarLinks](https://matrix.to/#/@kim:sosnowkadub.de) announces - ### Matrix.org Foundation to receive funding from FLOSS/fund +[HarHarLinks](https://matrix.to/#/@kim:sosnowkadub.de) announces + > We are excited this week that The Matrix.org Foundation is to [receive $25000 in funding](https://floss.fund/blog/second-tranche-2025-anniversary/) from [FLOSS/fund](https://floss.fund)! > > Quoting from their website, @@ -66,10 +66,10 @@ Beyond the Matrix State of The Union you can also find all of the Matrix Confere ## Dept of Spec πŸ“œ -[Half-Shot](https://matrix.to/#/@Half-Shot:half-shot.uk) announces - ### MSC Crafter +[Half-Shot](https://matrix.to/#/@Half-Shot:half-shot.uk) announces + > Working on a new small project to render MSCs in a faster, learner format than GitHub currently allows with intelligent rendering of things like: > > - Comment theads @@ -86,14 +86,14 @@ Beyond the Matrix State of The Union you can also find all of the Matrix Confere caption="The MSC Crafter UI" ) }} -[Andrew Morgan (anoa) {he/him}](https://matrix.to/#/@andrewm:element.io) says - ### Weekly Spec Update +[Andrew Morgan (anoa) {he/him}](https://matrix.to/#/@andrewm:element.io) says + > 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 . > > -> ### MSC Status +> #### MSC Status > > **New MSCs:** > @@ -118,7 +118,7 @@ Beyond the Matrix State of The Union you can also find all of the Matrix Confere > > - *No MSCs were closed/rejected this week.* > -> ### Spec Updates +> #### Spec Updates > > The barrage of MSCs marked as FCP close above are the result of the next-gen auth being merged to the spec, and the Spec Core Team going through and closing all the MSCs that it obsoletes. > @@ -254,6 +254,8 @@ Command line admin tool for Synapse (Matrix homeserver). ### Synapse Admin Updates +[Aine [etke.cc]](https://matrix.to/#/@aine:etke.cc) announces + The last TWIM entry about [etke.cc's Synapse Admin fork](https://github.com/etkecc/synapse-admin) was *very* long ago - we stopped publishing them because the big / major changes were already implemented, and while each new release increased QoL and UX, there were not so much TWIM-worthy things. But today we have a big thing to announce: From 8b007b6f5f7a74a2b0bbae19474ec101c14bc231 Mon Sep 17 00:00:00 2001 From: MTRNord Date: Fri, 24 Oct 2025 17:43:25 +0200 Subject: [PATCH 07/14] correctly quote the synapse admin post Signed-off-by: MTRNord --- content/blog/2025/10/2025-10-24-twim.md | 40 ++++++++++++------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/content/blog/2025/10/2025-10-24-twim.md b/content/blog/2025/10/2025-10-24-twim.md index e787f9022..48253edeb 100644 --- a/content/blog/2025/10/2025-10-24-twim.md +++ b/content/blog/2025/10/2025-10-24-twim.md @@ -256,26 +256,26 @@ Command line admin tool for Synapse (Matrix homeserver). [Aine [etke.cc]](https://matrix.to/#/@aine:etke.cc) announces -The last TWIM entry about [etke.cc's Synapse Admin fork](https://github.com/etkecc/synapse-admin) was *very* long ago - we stopped publishing them because the big / major changes were already implemented, and while each new release increased QoL and UX, there were not so much TWIM-worthy things. - -But today we have a big thing to announce: - -**OIDC Auth support has been implemented** by @beastafk:etke.cc - -It was requested [in the upstream project in 2023](https://github.com/Awesome-Technologies/synapse-admin/issues/429), and finally [implemented in etke.cc's Synapse Admin fork](https://github.com/etkecc/synapse-admin), making it more convenient for servers deployed with MAS. - -Apart from that, there were a lot of smaller-yet-convenient changes: - -- New localizations: Japanese (thanks to @shirahara:etke.cc ) and Ukrainian (thanks to [khvalera](https://github.com/khvalera)) -- External Auth Provider-compatible mode (less painful for OIDC, LDAP, etc.) -- Ongoing mobile UI improvements -- Support 3pids in bulk registration (csv import) -- Improved user account status toggles -- And many more small improvements here and there - -And for [etke.cc](https://etke.cc/) customers specifically, [more exclusive features](https://github.com/etkecc/synapse-admin/tree/main/src/components/etke.cc#etkecc-specific-components) have been added - -[Source code](https://github.com/etkecc/synapse-admin), [admin.etke.cc (CDN version)](https://admin.etke.cc), and don't forget to say hi in the #synapse-admin:etke.cc room! +> The last TWIM entry about [etke.cc's Synapse Admin fork](https://github.com/etkecc/synapse-admin) was *very* long ago - we stopped publishing them because the big / major changes were already implemented, and while each new release increased QoL and UX, there were not so much TWIM-worthy things. +> +> But today we have a big thing to announce: +> +> **OIDC Auth support has been implemented** by @beastafk:etke.cc +> +> It was requested [in the upstream project in 2023](https://github.com/Awesome-Technologies/synapse-admin/issues/429), and finally [implemented in etke.cc's Synapse Admin fork](https://github.com/etkecc/synapse-admin), making it more convenient for servers deployed with MAS. +> +> Apart from that, there were a lot of smaller-yet-convenient changes: +> +> - New localizations: Japanese (thanks to @shirahara:etke.cc ) and Ukrainian (thanks to [khvalera](https://github.com/khvalera)) +> - External Auth Provider-compatible mode (less painful for OIDC, LDAP, etc.) +> - Ongoing mobile UI improvements +> - Support 3pids in bulk registration (csv import) +> - Improved user account status toggles +> - And many more small improvements here and there +> +> And for [etke.cc](https://etke.cc/) customers specifically, [more exclusive features](https://github.com/etkecc/synapse-admin/tree/main/src/components/etke.cc#etkecc-specific-components) have been added +> +> [Source code](https://github.com/etkecc/synapse-admin), [admin.etke.cc (CDN version)](https://admin.etke.cc), and don't forget to say hi in the #synapse-admin:etke.cc room! ## Matrix Federation Stats From fbf1c2eda567fb56fc4a475fe908126573ad88ab Mon Sep 17 00:00:00 2001 From: MTRNord Date: Fri, 24 Oct 2025 17:44:15 +0200 Subject: [PATCH 08/14] downgrade title to bold Signed-off-by: MTRNord --- content/blog/2025/10/2025-10-24-twim.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2025/10/2025-10-24-twim.md b/content/blog/2025/10/2025-10-24-twim.md index 48253edeb..1deb796ed 100644 --- a/content/blog/2025/10/2025-10-24-twim.md +++ b/content/blog/2025/10/2025-10-24-twim.md @@ -150,7 +150,7 @@ Synapse is a Matrix homeserver implementation developed by Element. [Andrew Morgan (anoa) {he/him}](https://matrix.to/#/@andrewm:element.io) reports -> #### Deprecation of MacOS Python wheels +> **Deprecation of MacOS Python wheels** > > The team has decided to deprecate and eventually stop publishing python wheels of Synapse for MacOS. This is a burden on the team, and we're not aware of any parties that use them. Synapse docker images will continue to work on MacOS, as will building Synapse from source (though note this requires a Rust compiler). > From 071dddc002fe0cbcc95e9d812cf54f3a63561351 Mon Sep 17 00:00:00 2001 From: MTRNord Date: Fri, 24 Oct 2025 17:46:21 +0200 Subject: [PATCH 09/14] Improve text about Matrix Conference at Heise Signed-off-by: MTRNord --- content/blog/2025/10/2025-10-24-twim.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/content/blog/2025/10/2025-10-24-twim.md b/content/blog/2025/10/2025-10-24-twim.md index 1deb796ed..2852124b2 100644 --- a/content/blog/2025/10/2025-10-24-twim.md +++ b/content/blog/2025/10/2025-10-24-twim.md @@ -248,7 +248,11 @@ Command line admin tool for Synapse (Matrix homeserver). [MTRNord (they/them)](https://matrix.to/#/@mtrnord:mtrnord.blog) announces -> <-- Matrix Conference 2025 has an article at heise (german). +> The Matrix Conference 2025 has been in the News at Heise: +> +> In German: +> +> Or in english at: ## Dept of Services πŸš€ From e1ff607378314744e10e02966ea64f3b3d611e76 Mon Sep 17 00:00:00 2001 From: MTRNord Date: Fri, 24 Oct 2025 17:49:59 +0200 Subject: [PATCH 10/14] Make sure MXIDs and Room Alias are linked Signed-off-by: MTRNord --- content/blog/2025/10/2025-10-24-twim.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/blog/2025/10/2025-10-24-twim.md b/content/blog/2025/10/2025-10-24-twim.md index 2852124b2..4230953c9 100644 --- a/content/blog/2025/10/2025-10-24-twim.md +++ b/content/blog/2025/10/2025-10-24-twim.md @@ -264,7 +264,7 @@ Command line admin tool for Synapse (Matrix homeserver). > > But today we have a big thing to announce: > -> **OIDC Auth support has been implemented** by @beastafk:etke.cc +> **OIDC Auth support has been implemented** by [@beastafk:etke.cc](https://matrix.to/#/@beastafk:etke.cc) > > It was requested [in the upstream project in 2023](https://github.com/Awesome-Technologies/synapse-admin/issues/429), and finally [implemented in etke.cc's Synapse Admin fork](https://github.com/etkecc/synapse-admin), making it more convenient for servers deployed with MAS. > @@ -279,7 +279,7 @@ Command line admin tool for Synapse (Matrix homeserver). > > And for [etke.cc](https://etke.cc/) customers specifically, [more exclusive features](https://github.com/etkecc/synapse-admin/tree/main/src/components/etke.cc#etkecc-specific-components) have been added > -> [Source code](https://github.com/etkecc/synapse-admin), [admin.etke.cc (CDN version)](https://admin.etke.cc), and don't forget to say hi in the #synapse-admin:etke.cc room! +> [Source code](https://github.com/etkecc/synapse-admin), [admin.etke.cc (CDN version)](https://admin.etke.cc), and don't forget to say hi in the [#synapse-admin:etke.cc](https://matrix.to/#/#synapse-admin:etke.cc) room! ## Matrix Federation Stats From 8ab1179ca486676f871a3268c842b92aa706b638 Mon Sep 17 00:00:00 2001 From: MTRNord Date: Fri, 24 Oct 2025 17:51:12 +0200 Subject: [PATCH 11/14] link to media.ccc.de Signed-off-by: MTRNord --- content/blog/2025/10/2025-10-24-twim.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content/blog/2025/10/2025-10-24-twim.md b/content/blog/2025/10/2025-10-24-twim.md index 4230953c9..2bce2fb5b 100644 --- a/content/blog/2025/10/2025-10-24-twim.md +++ b/content/blog/2025/10/2025-10-24-twim.md @@ -12,10 +12,14 @@ category = ["This Week in Matrix"] {{youtube_player(video_id="2y8qtRLgalQ")}} +Alternatively you can find it on media.ccc.de at . + ### Matrix Conference Recordings Beyond the Matrix State of The Union you can also find all of the Matrix Conference recordings at . +They are also available on media.ccc.de at . + ## Dept of *Status of Matrix* 🌑️ ### DINUM joins The Matrix.org Foundation From c596280de4385a11a92678a5085c3508817d4bdc Mon Sep 17 00:00:00 2001 From: MTRNord Date: Fri, 24 Oct 2025 17:52:10 +0200 Subject: [PATCH 12/14] linkify "Silver Member" Signed-off-by: MTRNord --- content/blog/2025/10/2025-10-24-twim.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2025/10/2025-10-24-twim.md b/content/blog/2025/10/2025-10-24-twim.md index 2bce2fb5b..d23f1328f 100644 --- a/content/blog/2025/10/2025-10-24-twim.md +++ b/content/blog/2025/10/2025-10-24-twim.md @@ -26,7 +26,7 @@ They are also available on media.ccc.de at πŸ‡«πŸ‡· Very excited to announce that [DINUM, the French Interministerial Digital Directorate, is joining The Matrix.org Foundation](https://www.numerique.gouv.fr/sinformer/espace-presse/dinum-soutien-fondation-matrixorg/) as a Silver member and becomes the first government to join the Foundation! πŸš€ +> πŸ‡«πŸ‡· Very excited to announce that [DINUM, the French Interministerial Digital Directorate, is joining The Matrix.org Foundation](https://www.numerique.gouv.fr/sinformer/espace-presse/dinum-soutien-fondation-matrixorg/) as a [Silver member](@/membership/index.md) and becomes the first government to join the Foundation! πŸš€ > > Matrix is the backbone of [Tchap](https://tchap.numerique.gouv.fr/), the secure messaging app for the French government, and it is great to see a State stepping up to concretely support and collaborate with an open source project so critical to their functioning. > From 70ddd690e05b9075d78d5a1e965ed8f1df798cbc Mon Sep 17 00:00:00 2001 From: MTRNord Date: Fri, 24 Oct 2025 17:54:55 +0200 Subject: [PATCH 13/14] fixup missing underscore Signed-off-by: MTRNord --- content/blog/2025/10/2025-10-24-twim.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2025/10/2025-10-24-twim.md b/content/blog/2025/10/2025-10-24-twim.md index d23f1328f..46ddefb9f 100644 --- a/content/blog/2025/10/2025-10-24-twim.md +++ b/content/blog/2025/10/2025-10-24-twim.md @@ -26,7 +26,7 @@ They are also available on media.ccc.de at πŸ‡«πŸ‡· Very excited to announce that [DINUM, the French Interministerial Digital Directorate, is joining The Matrix.org Foundation](https://www.numerique.gouv.fr/sinformer/espace-presse/dinum-soutien-fondation-matrixorg/) as a [Silver member](@/membership/index.md) and becomes the first government to join the Foundation! πŸš€ +> πŸ‡«πŸ‡· Very excited to announce that [DINUM, the French Interministerial Digital Directorate, is joining The Matrix.org Foundation](https://www.numerique.gouv.fr/sinformer/espace-presse/dinum-soutien-fondation-matrixorg/) as a [Silver member](@/membership/_index.md) and becomes the first government to join the Foundation! πŸš€ > > Matrix is the backbone of [Tchap](https://tchap.numerique.gouv.fr/), the secure messaging app for the French government, and it is great to see a State stepping up to concretely support and collaborate with an open source project so critical to their functioning. > From 2c6dd475df6b36658073adcbace3fc7a83b7ee70 Mon Sep 17 00:00:00 2001 From: MTRNord Date: Fri, 24 Oct 2025 18:39:34 +0200 Subject: [PATCH 14/14] add missing mxid link Signed-off-by: MTRNord --- content/blog/2025/10/2025-10-24-twim.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2025/10/2025-10-24-twim.md b/content/blog/2025/10/2025-10-24-twim.md index 46ddefb9f..264b7741a 100644 --- a/content/blog/2025/10/2025-10-24-twim.md +++ b/content/blog/2025/10/2025-10-24-twim.md @@ -274,7 +274,7 @@ Command line admin tool for Synapse (Matrix homeserver). > > Apart from that, there were a lot of smaller-yet-convenient changes: > -> - New localizations: Japanese (thanks to @shirahara:etke.cc ) and Ukrainian (thanks to [khvalera](https://github.com/khvalera)) +> - New localizations: Japanese (thanks to [@shirahara:etke.cc](https://matrix.to/#/@shirahara:etke.cc)) and Ukrainian (thanks to [khvalera](https://github.com/khvalera)) > - External Auth Provider-compatible mode (less painful for OIDC, LDAP, etc.) > - Ongoing mobile UI improvements > - Support 3pids in bulk registration (csv import)