A week in Matrix

23 points by PuercoPop


dandellion

These are real pain points of using Matrix, and I very much agree with the conclusion.

I think it's sad that whenever I discuss using Matrix as an alternative (and I have had the opportunity to do this a lot), that I cannot in good consciousness recommend anything other than Synapse and Element, and that even then, there are a bunch of caveats that have none or complicated workarounds. It has been like this for a decade, the story never changed, and tales like this whenever someone dares to deploy dendrite, or a conduit-descendant always reinforce that idea.

I still think this stack (synapse+element) is generally the best alternative we have in the chat space. It's just that the protocol and interoperability stories are so disappointing. At least there is a lot of creativity to be had with creating integrations, tools and bots.

I must say that the communities I'm in that have successfully integrated into matrix - without straying from the synapse+element path, even when acting more like "big serious-communities", and that I actually have had more issues transferring casual users who rely on features like stickers, custom emotes, and working cross-platform video calls.

I'm going to post some comments/context on each issue, not to diminish their status as issues, or in any other way diminish the article's experiences, but just to fill out some context:

Monday

Element does this, it sets "events_default": 100

Tuesday

Element search is so bad, I feel like it's just doing a postgres LIKE search on the column and returning it with no processing.

Mjolnir and Draupnir should have more features, including a priority for lists, along with an allow event. And when you query for a rule maybe it should link to the event, or at least also list who issues the ban, and not just the room and reason..

But these are just bots automating moderation, you can make your own, or edit it. Draupnir is a community resource, so if you want to improve it, please do so! Integrating on matrix is fun and easy. Even though Element search is bad, the actual spec is (as usual) fairly simple to grok and way more flexible, just a curl away.

In this specific instance, I think policies are state events, so you could have opened devtools (not that this is at all obvious how to do without the ability to type /devtools) and filtered the state events there.

None of these alternatives are great or even at all viable casual user experiences.

Wednesday

In order to not leak the existence of private rooms, there are two ways of defining a room to be part of a space.

  1. The space room lists the room publicly as a child
  2. The room lists the space as its parent.

In the second case, to avoid that "anyone" can invite someone to a impersonating room and having it show up in a trusted space, (which are matrix's equivalent of a discord "server" - for the uninitiated). These rooms should only list themselves as part of the space, if the person who claims the room is part of the space "could" have added it to the space as child.

It's surprising behavior that this would change with just room presence however, as it should only be based on the sender of the event being in the space

Thursday

I want to make it very clear to the audience that Dendrite was never advertised as production ready, it was just hyped a lot that it would one day (and soon™) replace synapse. And there were very real scaling issues that made the choice difficult for smaller servers. Eventually matrix.org got so unusable that they made some emergency work on adding worker-support and speeding up synapse.

I think this approach was so much more effective than they thought it might be, and the need for dendrite fell away. For a while it was maintained for matrix/element's more experimental work, especially P2P matrix, because it was much easier to embed and scaled down much easier. (quite opposite of what it was designed for).

I remember this era and being uneasy about all the new users in that period which deployed Dendrite, I really think they should have had scarier warnings for people not versed in the ecosystem yet.

Friday

Sometimes there are bugs in decentralized systems, which is why room versions exist. This is just upgrading and fixing a bug, users not "patching" their software is an issue. And maybe the client should yell more at admins for not having their rooms up to date.

Saturday

When matrix works, it's generally very difficult to not notice a user missing on one server. State and join events shouldn't be special, and the room timeline should eventually sync again.

It's really bad if the home server doesn't handle this. But I find that after an outage it can take a while for all the retry-delays to time out on other servers (in weird ways).

Sunday

Again there's really nothing I disagree with here, the matrix community feels very jaded, and a lot of it is for good reason.

I really do apologize because it really isn't my intention to insinuate you are using matrix wrong or deny your experiences, but I recognize my comment may come across that way.

Overall I think the Matrix experience can be pretty great as long as you have at least one power user who is very familiar with the stack, and bless/only care about some clients

scraps

oh I too ran Dendrite for a bit, with the plan to migrate a small Discord group of about 30 people onto it. We opted not to go forward with it, Dendrite was a little too rotting. One of my friends set up a Synapse server and everything worked on his homeserver, but with the Dendrite homeserver that most of us were on a bunch of features seemed to not work correctly with different clients. Getting our servers to federate to one another was good fun, but the inconsistencies with client support affected everyone that tried it, not just the people that wanted to run homeservers. We ultimately bailed on it and stayed on Discord. Maybe we'll try again in the future, but realistically not with Matrix: once bitten, twice shy.

nemin

I've been giving Matrix a shot every once in a while for the past five or so years, but every time I quickly start feeling the same 'unease', despite all the technical improvements they've done in the period between attempts. "Unease" in the sense, that the whole thing feels brittle, I often experienced decryption failures, messages hanging for 30s or so, friends not being able to join, etc.

And even when things are technically stable, there is still the issue of client choice. You can go with Element, since that's the flagship, but then you cannot do custom emojis, which is a big step back from Discord for instance, so you look around and see that there's 10-15 other clients and it's not really obvious what supports what and how well.

And then even if you're past that hurdle, there is the whole thing about moderation and the horror stories about how despite heroic attempts, CSAM drive-bys are still common enough to be talked about.

All this is such a shame, because having a modern, open chat protocol, that can rise to contemporary needs is such an obvious good, but until it's as simple as pointing your technologically illiterate friend at a URL and the app then guiding them through everything, with no mysterious errors and no random breakage, it'll never be able to truly compete with closed platforms.

hongminhee

Matrix is great but only if you use the flagship client on a flagship server made by the flagship company

I've used Matrix casually for two years and been mostly happy with it. Turns out I'm the user in that sentence: matrix.org and Element.

I'd like to run my own homeserver at some point, but I've heard Synapse is pretty resource-hungry. Is there a lighter alternative that's mature enough for everyday use?

vegai

I think Matrix is a great example of what happens when complexity of the design is too high. You simply cannot hide all that under libraries or an application layer. It seeps through.

IRC is still there though. And there are some pretty neat new implementations: soju, senpai, halloy.