A week in Matrix
23 points by PuercoPop
23 points by PuercoPop
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:
MondayElement does this, it sets "events_default": 100
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.
WednesdayIn order to not leak the existence of private rooms, there are two ways of defining a room to be part of a space.
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
ThursdayI 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.
FridaySometimes 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.
SaturdayWhen 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).
SundayAgain 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
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.
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.
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?
I have been reasonably happy with Continuwuity and the development is very steady. It has had some minor growing pains, but they are generally ironed out now.
The main issue with it is that you have to run a command to back up the database (rocksdb)--it cannot be hot backed up otherwise. Be sure to set up regular backups because the db can get corrupted if the server is not shut down gracefully!
Even Element has always felt clunky to me to be honest. At least not as polished and intuitive it could be for how long it has been under development. One obvious example is joining and previewing rooms, I can go get a coffee while the spinner is busy with that. Ordering rooms is not obvious to me and can only be done with preset sorting unless I mess around with sections. Joining rooms with bridges will also open random other rooms with bridge status stuff I would be highly confused about if I wasn't familiar with things like IRC. There is a lot more like that.
The same is true for other clients, every time I check there seems to be relatively small progress. But, those aren't official flagship clients either.
To be clear, Element is serviceable but it has taken a long time for it to arrive at a serviceable state and it still doesn't quite feel right to me. Since none of the other clients have feature parity (or like nheko are still in beta and also feel fairly clunky) Element effectively is the only choice.
Matrix might in theory have all of the features to compete with things like discord. But in practice every time I get the strong feeling it is being hampered by underlying technical complexity. Well, not just a feeling, I have looked at the protocol and it is quite a bit.
Part of that comes from federation, you see a lot of the same struggles with other federated communities (mastadon, lemmy, etc). Although I also do see the appeal, as you otherwise have dedicated instances where you need to sign up separately which would cause friction.
But, I strongly believe it has limited the creation of clients and development of those that have been created.
I am not quite sure where I am going with this. Other than that I feel there is a huge gap between the stupid simplicity that is the IRC protocol and the massive complexity that is the Matrix protocol.
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.