This kind of process is extremely valuable and should be done by devs more often. Start from the start and <i>follow whatever your application tells you to do</i>. Note down when it doesn't tell you where to go or what to do. You'd be surprised by just how many things you do automatically while working because you <i>know</i> the little tricks and things to get by, and that wording doesn't necessarily match what the app requires now.<p>Side note - this kind of this is why good QA people are <i>awesome</i>. They'll show you what users will actually do.<p>I'll add in something here. Element the app said they were logging into matrix.org.<p>matrix.org has a "try matrix". The first thing is it tells me to choose a client (this feels like a loop), then says to choose a server but also maybe I don't need to, <i>then</i> has a create account button.<p>The create account button takes me to a docs page. Which <i>tells me to go to the element site</i>, and then <i>create an account with matrix</i>.<p>So that's matrix -> use element -> element says to use matrix -> matrix says to use someone else, ok you can use us -> to use us go to element -> element says you're making an account with matrix.<p>edit - oh you can and should also do this with your dev process.<p>Create an empty folder, check out the repo and follow the readme. Do you actually get a running system for local dev? Can you successfully run the tests? If you are able to, do this on a clean machine (maybe load up a docker image and see if you can follow it in a truly clear system). Does it turn out it assumes you already have tool X installed because your developers already have it from another project? Do you actually need postgres running with a specific user with specific login details?<p>If you're like me you don't like writing docs, so this may actually just push you to add scripts that do the setup required.<p>To not sound sanctimonious about this every time I've done this with my own code I've found issues with the documentation.
> All in all, this is a mess, and my recommendation is to avoid Matrix for at least two years.<p>Two <i>more</i> years. I've been a matrix user for almost a decade. Things have not gotten better at all.<p>I used to use Riot, I invested (and subsequently lost) a good amount of social capital on boarding my close circle, mostly non technical people, to using it. We used it. It was a little janky with the key sharing and verifying users and what not, but we managed. Then Element came out, and at first, whatever, but then a lot of those verification tools just stopped working. Several of our accounts became locked in some limbo where they couldn't be verified because the verification methods didn't support legacy verification. Nobody wanted to move to a new client which was less feature rich. We moved to signal eventually and have been mostly happy ever since.<p>I still use it with a couple of people. Its still just as janky as ever. First riot, then element. Now Element X? Dendrite... How many times are these guys going to rebuild from scratch before they realize they're in over their heads?<p>I just gave up on it, I still use it with the couple of people I'm connected to and I don't do new contacts on it with anyone. I treat it like I do Discord. For me now it's XMPP and email, and signal for real world contacts. I mess with some of the newer messaging tools out there like Simplex (which absolutely has a terrible onboarding flow, but they're new so they get a pass for now) and things, and I hope to get utility out of them, but I'm never going to burn myself again pushing people to use something new, I'll wait until these things prove themselves, a lesson I learned from Matrix which never did mature into anything worthwhile.
I've never used Matrix, directly.<p>However I use Beeper all day every day, via their iOS, Android, and macOS clients. Beeper (not the iMessage app, but their previous and continuing multi-network app) is pretty great. I get one consistent UX across all chat networks I use. Sometimes the networks drop out, but rarely due to Beeper issues.<p>Beeper is essentially a Matrix homeserver, plus a bunch of hosted Matrix bridges, and as far as I can tell, that whole part of Beeper was a great technical decision. The Beeper clients started off as forks of the Element clients, and honestly they were a trashfire at the beginning, but Beeper have been quickly iterating and replacing parts, and they're now pretty solid. They're not yet WhatsApp quality UX, but they're approaching it.<p>I don't think the problem is Matrix.
I tried to follow along with the author by going to the same pages and seeing the difference between what he should have done and what he actually did, and it convinced me that there's no way he was doing this in good faith (unless something has changed). I still can't figure out how he managed to get to some of the pages he described, when the thing that he said he wanted was clearly right on the page he said he was viewing before.
I really don't like the forced end to end encryption of chats. I do not care that much about the security of my chats to justify the complications of end to end encryption -- verifying devices, constant "reset" prompts that I don't even know what they do, but they seem like they are very destructive.<p>I trust my homeserver, since I host it myself. I do not need end to end encryption. I understand this is an issue of the client, not the protocol. But there aren't many clients. Prebuilt element for android from fDroid will connect to matrix.org, vector.im and other network hosts and I don't want that at all, although this tracking can't easily be disabled. It feels very centralised.<p>I run my own homeserver and want to chat with my friend that runs his own server. It is unacceptable to me that clients connect to anything other than those two homeservers (apart from CRL and OCSP, which should also be disabled by default, as I consider those protocols great spyware). Not to mention the fact that homeserver software itself is known to make connections to the servers of the developers by default, without ever talking to someone on matrix.org. This is also unacceptable. My homeserver should only connect to other homeservers.<p>3PID is a failed attempt, as it centralises identities and works by utilising a single point that gathers a lot of personat information at one place. I don't want it.<p>XMPP does not have those issues. Set up prosody and use dino or Conversations and they won't make any connections to non-essential servers. Furthermore, the end to end encryption is way easier to use in XMPP (OMEMO), and it's easy to turn it off if you don't need it.
It's nice to hear I'm not alone. I use Matrix/Element to chat with Rust embedded devs; I have heard about it in other contexts; generally favorably. In my experience, it is awful, and has been for years. Highlights:<p>- The verification is a mess (in the article; By the way: Once your account is set up, the verification failures don't go away). It has frequent verification popups and overlays; when I attempt to follow them, various errors occur, and it fails. So, the client nags you to verify, but the verification process is broken.<p>- The read notification system is broken; most chat groups will show as having unread messages, when there are none. This is possibly related to the thread system, but my results here are inconclusive in regards to the exact nature of the problem, nor the solution.<p>- Message posting and syncing is unreliable, especially after edits. Some messages will show on the PC program, but not the mobile, and vice versa. Sometimes edits I or someone makes will show up on one client, but not the other.
While it's never fun to receive negative feedback, it'll only help to improve the product.<p>Still, I run Matrix servers since inception of the project (10 years now \o/), and for an experienced system administrator this is not something difficult to do.<p>If you think running a Matrix server is difficult, you are probably not the intended audience: running an IRC server, an email server, or some other server, is mostly similarly difficult.<p>Matrix is a communication protocol, and it is not intended to be touched by end-users. If your goal is to just communicate on the matrix network as an enduser, stay away from matrix. I haven't seen an email enduser who browsers to <a href="https://www.rfc-editor.org/rfc/rfc5321.html" rel="nofollow">https://www.rfc-editor.org/rfc/rfc5321.html</a>, to figure out how to sign up for hotmail.....<p>Element on the other hand, IS intended to be userfriendly, and there is obviously a lot of room for improvement. But through the years I experienced that users who want to use Element to stay in touch with their loved once, have no problem with that.<p>Lastly I think comparing an open source project like Matrix/Element to Publicly traded corporations like Slack or Meta, is not fair. They operate with totally different business models. If you'd compare the quality of Matrix/Element to Slack in relation to annual budget, Slacks ROI would be depressing.
Really glad to see these discussions happening.<p>I started creating a similar post for matrix/element/server installs - a while back,<p>Screenshots and saving putty sessions.. (wondering if I should find a tool that records ssh input/output or just use the save sessions built in)..<p>I've succeeded with a matrix server install 2 out of 6 tries.<p>I am about to try again with a new install since I don't have faith in succeeding a multi-version upgrade.<p>I wish there was an easy way to export user names and email addys to port to a new install, as I worry that making a new install could allow for some nefarious people to come in and create accounts with another old user's name.<p>I love matrix and element and other clients, it's the best for what many need - although there are many rough spots in using it both server side and as an end user.<p>Moderation usability is a major issue for us, maybe with a new install I will jump into that rabbit hole of how to set things up for that and see if it's easier these days.<p>I hope the vucuum DB and such is better with the newer versions.<p>Looking forward to scouring the web for tutorials on all the basic things debian and perhaps logging the journey, maybe just screenshots will be fine, we'll see.
We also tried to use it, but frequently, messages will fail to decrypt with no option to retry. Threads is a mess, where messages will show as unread, but you can't actually see what message was unread.<p>Matrix/Element is so close to a great alternative to Slack, but in it's current state it's totally unusable.
We used Matrix for a couple of years at my company, but got kicked out from their managed hosting due to the new requirement of 50+ seats. The years we've been using it has been more of tolerating its flaws than a pleasant user experience.
We migrated to Slack and was blown away of how It Just Works.
I'm talking daily with friends on Element. Most of them don't work in tech, but are quite comfortable with computers.<p>It's ok. Most bugs concern threads. But it's one of the only chat apps that enable threads, so I'm ok with that, threads are absolutely needed in my opinion. Signal conversations can become such a mess because of that.<p>ElementX lacks threads, but apart from that is refreshing. Looks more like a chat app than an enterprise messaging app.<p>Still your article is very important. The UX should be improved.
Fantastic writeup. I’m a little confused by the screenshot with the caption “Servers marked as vulnerable, unavailable and with profanity in their name.” In the screenshot, three things are highlighted: labels for “Vulnerable”, “Unavailable”, and the server name “cyberfurz.chat”. Is “cyberfurz” supposed to be profanity?
Honestly, the matrix documentation is a total mess in general.<p>The protocol is from what I can tell pretty cleverly designed/usable as a casual chat app (even if it leans <i>heavily</i> towards IRC esque design), but actually figuring out how to use it is somewhere between "wisdom of the ancients" and actually impossible. A lot of very relevant information is stored in old documentation that is currently marked as outdated on the site but has no updated equivalent.<p>The bad apps and onboarding only hamper it further.<p>It's still baffling to me that the best way to actually <i>administer</i> a selfhosted matrix homeserver (specifically, synapse, the reference homeserver) is to do a database hack to promote a user to an admin and then use an external PWA hosted on GitHub[0] so you can actually do basic moderation actions without having to resort to using curl.<p>[0]: <a href="https://awesome-technologies.github.io/synapse-admin/" rel="nofollow">https://awesome-technologies.github.io/synapse-admin/</a>
A friend wanted me to switch to Matrix for our 1:1 conversations and group chat of 3 people. The onboarding and user experience have been very poor on Element for years. I'm left with the feeling it is not made to replace a 1:1 messaging app.
The protocol covers a broader use case, and the end-user apps are buggy and have a confusing user experience.<p>There is some complexity in educating due to its distributed nature, but a top notch UX is much needed to overcome it.
Huh, I've been using element for a while now, and the only problem I've encountered is that quite few of my friends use it. I've joined a few communities based around common interests, and never really had any technical issues with anything.<p>I don't really recall much about the sign-up process at all, which I guess I would've if it was anywhere near as difficult as this guy claims...<p>I'm on android tho, while he uses iPhone, maybe that's the issue?
Never used Element on iOS however on Android its... Ok. Not great, not terrible. Recently it's slower in loading chats in rooms and overall responsiveness is sometimes laggy. Desktop experience is without any issues.
I have been using matrix from time to time to chat with some folks who prefer matrix over other chat systems for reasons unknown.
Matrix is an absolute trash fire indeed. Every once in a while a chat session with someone just craps itself and my client is unable to decrypt received messages (both element and element x). The issue then usually fixes itself within a couple of days. The bad UX aside, a chat system should at let me reliably send and receive messages.
The other issues I had were related to the device verification. The last time I wanted to verify a new phone the verification request simply did not arrive on my other devices. At that point I gave up on matrix.
This feels like a mis-aimed article -- I use Matrix a lot, and Element, while annoying, is only one of many options.<p>Compare "The IRC trashfire" (an article about the infelicities of Mirc)
Me too<p>I tried to get Matrix working to have a conversation. Many worthy people I know use it<p>But I failed in a similar way<p>Do many people actually use it?<p>When it is so easy to use Signal or (Dog help us, WhatsApp)
Matrix protocol with Element on my own Synapse Docker container has been working great for me for two years at this point. Not really had any issues with it, whereas maintaining other solutions like Rocket.Chat became a real time-sink prior to switching to Matrix.
Pretty poor post. It highlights some issues, sure, though the author obviously never tried to actually try. Also, they say there's profanity but I don't see any; apparently the word "cyberfurz" is profanity? The author's prejudice is showing.
This is just stereotypical ineptitude and inability to RTFM or use common sense from somebody used to the spoonfed walled garden side of tech. I do not understand how anyone with a background in technology can't know "beta means buggy and poor support and use the flagship instance if you don't know what you want". I understood this as a teenager, as most people here also should have.<p>I think Matrix has a lot of problems. E2E encryption is too much for most laymen users to work with and it being so damn resource heavy being the too biggest ones. But come on.
Developers could also do these processes. And they probably do, often. But they usually have their heads so far up their asses that they don't see how inscrutable this onboarding process is even for very technical users.<p>It's like when you use one of those Linux phones and your reaction all along is "ew". Do developers not notice how bad this is? No, they don't. Some of them haven't used a good UI ever. They can't fathom <i>it could be better.</i> They really think they are doing a good job.<p>Why did Discord win? Oh, it must be dark patterns, regulatory capture, moat, etc. It can't possibly be because the UI makes sense!
I mean, this is quite silly. Matrix is the open-source network infrastructure, Element is the client. Of course if you go to the Matrix web-page, it's not particularly user-friendly - if you expect to just use the thing, you should be going to Element. The ActivityPub page won't exactly help you sign up to Mastodon either.<p>There are <i>plenty</i> of problems with Element and Matrix (I say that as someone who has been trying to migrate off Slack for 1+ year) but this comes off as the author just not doing basic reading.