How we hosted FOSDEM 2021 on Matrix
matrix.org
matrix.org
Still though, the progress they're making is great, and I think portable identities will be a huge deal.
I'm beginning to build a couple of projects on matrix and am really hopeful for its long-term success.
Shameless plug to the Matrix client, I'm contributing too: https://invent.kde.org/network/neochat
Neochat looks great by the way!
Not sure which are packaged, though. You usually want the latest goodies, so AUR/flatpak it is for me.
I'm not super interested in the chat/IM aspects of Matrix. What I really like is the protocol and the built-in federation and pub/sub mechanism that you can use to build cool decentralized apps that pass events around.
Matrix is a non-profit open source project that defines a decentralised communication protocol that forms an open global end-to-end encrypted communication network. Anyone can run a server to participate, and anyone can use whatever client they like. You could see Matrix as descended from IRC, and Discord from AOL chatrooms.
The only advantage to Discord is that historically it has slicker UX than flagship Matrix clients like Element, more users, better room management, and exposes voice/video chat as dedicated chatrooms. Matrix is steadily catching up however.
I want this for all conferences :D
I wonder if your stack can become a pattern to host large-ish to large conferences on-line!
I generally use Matrix quite a bit, but I didn't find FOSDEM a convincing example. I guess some people like having everything squeezed into one tab, but it didn't work well for me, other than that it didn't have much of a value proposition over any other chat system for me personally, and as initially described even the experience as a chat system wasn't great.
In terms of membership changes being ratelimited - yes, this is an anti-abuse mechanism, and the default synapse config is overly conservative. We don't have a way of overriding that globally though, and the FOSDEM use case of loads of rooms flying around meant some people fell over it a bunch. Sorry you got bitten by this.
There were a few pain points, given the special nature of the rooms. Here's my workflow for joining a room:
- I have my own homeserver and am using Element Desktop
- When I'm interested in a talk, for a room I'm not already in, I need to get the room. I can't simply copy-paste it, because there's a link to https://matrix.to and I don't want to fill my own homeserver every time. I need to click on that first link _then only_ I can extract the "#room:matrix.org" I'm interested in. I wish there was just a "matrix://" or something I could click and that my system could understand.
- I joined many rooms just for FOSDEM and I didn't want to "pollute" my usual rooms. So I used the Communities thing from Element but it's counter-intuitive: in all other applications (Discord, Slack, I assume others) that button is a "namespace" at the top of a usual hierarchy (namespace/channel). In Element it's more like a tag: when I put the room in the community, I'm actually saying that the community is a view that lists all rooms with the corresponding tag. I don't know yet if I prefer this way of working or not, but maybe the elements should have a different appearance than other tools
- Linked to the above, there's no "community" for the default view, which is "all of them" if I understood correctly; I have to know that I need to click after the list, below the "+"
- Adding a room to a community is not exactly straightforward as well. I need to go in the Community, then add the room... but it must already be added beforehand, because #room:server.org doesn't seem to work.
All in all it's a lot of manual manipulations for being able to use Element the way we're expected to be able to use it. Surely your backlog already has some items for the points above, so I'm going to wait patiently :)
Communities are going away in favor of spaces (relatively?) soon. That was the topic of Matthew's talk at FOSDEM [2], and the entire experience should be vastly better.
[1] https://github.com/matrix-org/matrix-doc/pull/2312 [2] https://www.youtube.com/watch?v=TzUfS08lMek
Hm, for Element Desktop matrix.to should deeplink into the app, and so prioritise your client's settings there. If that's not working, please file a bug at https://github.com/matrix-org/matrix.to/issues.
For Element Web, the theory of matrix.to is that it remembers the URL of your preferred client (and ideally your homeserver) and so fixes up the links to do the right thing. In practice we rushed this in for FOSDEM and got it so you can provide the client in the URL (e.g. https://matrix.to/#/#misc:fosdem.org?web-instance[element.io... means "join this via the element web at https://chat.fosdem.org") - but we didn't hook it up to remember the default. I've just filed this as https://github.com/matrix-org/matrix.to/issues/197. Meanwhile, specifying a default homeserver (as opposed to client) is https://github.com/matrix-org/matrix.to/issues/15.
> I used the Communities thing from Element
Communities are a mess and being replaced by Spaces. Ironically Spaces behave the same way fundamentally (they filter your room list rather than switch you between namespaces), but we hope this will feel okay if executed better.
> There's no "community" for the default view
This should be fixed with Spaces (although quite how is still up for debate - the current behaviour still makes you 'click in the background' to unselect a Space).
So, good news: spaces should solve most of this. Meanwhile i've bumped the priority on the matrix.to issue you hit :)
I haven't had the chance to attend your talk about Spaces, I'm waiting for the video. Can't wait to see how Spaces change the landscape :)
I feel this is strictly superior in the same way tags are superior to categories. The latter imposes a strict and rigid hierarchy which quickly enters into ontological problems because you have to decide which single category a room belongs to, so your choice of categories matters too much.
On the other hand, I cannot think of a single reason why you would specifically need categories since they can be recovered by simply ensuring that each of your rooms is contained in only a single space (i.e. tagged by only a single tag). If this use case is important to a user, they can easily achieve this.
That said using tags is also more difficult than folders, because they're a "relatively" new concept. We tech people are completely used to it, but I'm pretty sure if I ask people around me they would not be comfortable using it. The visual cues need to be different from the standard hierarchy organization.
https://github.com/vector-im/element-web/issues/2630
This issue has 149 thumbs up, as I noted I don't know of any other chat software without the ability to save discussion to a local file.
Thanks!
I installed a debian 11 VM, installed then launched the matrix-archive.py script --all-rooms with my not-for-profit ISP matrix+element credentials. I follow mostly my not-for-profit ISP channels (quite small) and may be 4 or 5 rooms on matrix.org, fosdem.org and mozilla.org.
After 30 minutes it has written 878 MBytes of archives and it's not done yet.
I don't see an option to resume / append to an existing archive. So I assume I will have to restart from scratch each day?
I wonder: will it scale if everyone uses this script?
The 'right' solution is presumably to give Element a button to maintain ongoing archives on desktop (it already archives your encrypted rooms into an encrypted sqlite DB for indexing) - with a control to limit how far back in time it goes. Separately, having a "save the last N days/msgs of this room" button would be useful in Element Web. But both simply haven't got to the top of the todo list yet.
I noticed the archive json files have timestamps, so may be 'archive since previous archive timestamp' would do the trick (if there's a way in the matrix protocol to do that, and if matrix software is efficient in ressources in this timestamp to timestamp case).
And having a starting timestamp being channel join time minus a user specified number of days to go backward a bit in your archive.
P.S. The FOSDEM 2021 video team was three people. With day jobs. Humans. One of us with kids. Not perfect. Volunteering our time. During a pandemic. One of us of was at a funeral service on Saturday morning. A close friend had died of covid-19 . Another had professional obligations on Sunday afternoon. It was great fun though, so chances are you'll see us again at FOSDEM 2022...
Congratulations to the Matrix and FOSDEM teams.
So if I’m understanding this right, you have “private video conference -> web browser -> desktop capture -> ffmpeg -> public video stream"… why not “private conference -> ffmpeg -> public stream”? Having a web browser in the middle of your livestream setup feels very weird :P
The alternative would be to use a system where the conference is rendered serverside in the first place - a so called MCU (Multipoint Conferencing Unit) like FreeSWITCH. But this has a different set of tradeoffs, and having integrated both with Matrix we currently default to Jitsi.
Totally agreed that it feels unintuitive to spin up a farm of 50 headless chromiums in order to livestream a conference though!
The traditional tool for digital communication at CCC congresses is IRC. I personally still like IRC, but I think the matrix web client at FOSDEM made channel discovery and navigation a lot easier.
I also think promoting Matrix could help with promoting open ecosystems in general. IRC works well, but it doesn't have the potential for mass adoption, which we need in order to curb WhatsApp's influence.
We tried to give visitors the freedom to use their preferred tools to join FOSDEM.
Whether you were using matrix with the latest Chromium or irssi in a tmux session on OpenBSD, you were able to speak to people at the conference.
Same for the streaming. Inside the matrix channel would have worked, but mpv on some framebuffer without X or wayland too...