Settings

Theme

A Quick Overview of Matrix

juliette.page

44 points by julietteeb 2 years ago · 47 comments

Reader

dolmen 2 years ago

I recommend to have a look at the "Matrix 2.0" presentation that happened at FOSDEM 2023 in February: https://fosdem.org/2023/schedule/event/matrix20/

solarkraft 2 years ago

Does anyone else find it funny that the flagship SDK (JS) is largely undocumented? And that the UX of all clients in existence leaves a lot to be desired (yes, Element X is the best one but it lacks features for now)?

Matrix is annoyingly hard to get into, IMO. It has gotten better in the last years, but it isn't exactly good yet. It hurts because I want it to be good so that everyone can switch.

I plan to talk about this with the Element developers at CCCamp.

  • Arathorn 2 years ago

    It's probably fair to say that matrix-rust-sdk is the flagship now, not matrix-js-sdk. Yes, js-sdk's doc isn't exhaustive, but http://matrix-org.github.io/matrix-js-sdk/stable/ and guides like https://matrix.org/docs/legacy/usage-of-the-matrix-js-sdk/ tend to be pretty good.

    In terms of "Matrix sucks because not all clients have good UX" - you could say the same about the Web. Meanwhile Element X kicks ass, and is rapidly coming up to feature parity - to the extent that we're going to soft-launch it on the App Store tomorrow.

    > I plan to talk about this with the Element developers at CCCamp.

    No need; we have the message loud and clear... :|

    • solarkraft 2 years ago

      > No need; we have the message loud and clear... :|

      Almost all communications suggest that you don't, including this message. For years, whenever I'd mention the UX issues I encountered I'd get responses along the lines of "yeah but we're working on XY which will be amazing". Ever since the Riot days the Element (web) client has barely improved its core UX (I'm excited for the 10 year anniversary of the multi-account issue).

      > "Matrix sucks because not all clients have good UX"

      You may have misunderstood; I'm saying "not a single client has good UX". This is a very personal thing of course, but for me it means that Matrix is barely usable (my favourites are Element X and Hydrogen, but neither is feature complete).

      The Matrix 2.0 talk & accompanying efforts are very exciting to me, though. Element X is phenomenal (the first client I actually enjoy using) and the main thing that got me back into caring about Matrix.

      The whole reason I'm back here complaining is that I have hope again that one day Matrix can be pleasant to use and I want to help making it happen. I want Matrix to be amazing so that I can tell people to use it without getting laughed at.

      > It's probably fair to say that matrix-rust-sdk is the flagship now, not matrix-js-sdk.

      I have heard about this (great technical choice, btw!) from side-channels like conference talks, but the official matrix website still shows it as one of multiple libraries in beta and the JS SDK as stable. Using it on the web seems unsupported (the WASM bindings are only for the crypto module). On a Matrix live episode I had (I think) heard hints at the JS SDK eventually becoming a front for the Rust one, so I figured I'd go with that.

      Well, as a sibling comment points out, the documentation page very prominently states that it shouldn't be used. And where does the link to the updated documentation go? Of course, a tutorial for registering a Matrix account.

      The reason I'm (hopefully productively!) complaining is that I'm emotionally invested again. I want Matrix to be good and I'd like to somehow help making it happen. For now this probably means getting together with interested people at Camp.

      • tentacleuno 2 years ago

        > JS SDK as stable

        To play Devil's advocate, the documentation for the JS SDK was exponentially worse quite a while back. So much so that, in some cases, you'd have to view the actual implementation code to understand how to use it.

        This was made even worse by incomplete TSDoc which didn't cover the entire API surface, meaning using the SDK in TypeScript was a matter of casting the client to `any`, checking the implementation to see what a certain method required, understanding how the method worked with no documentation whatsoever, and using it without any editor suggestions etc. to help you. (yep, long sentence)

        Not sure if it's still as bad but wow, that was one of the worst JS libs I've come across in a while. Despite its shortcomings as a platform, the Discord ones were a lot more comfortable to use (Eris, Discord.js), as they had actual documentation.

        I'll finish up by saying I hope they've learned that developer experience is very important for such a platform. Look at Discord; bots were one of the things that put them where they are today. Being able to programmatically integrate into a platform is crucial to its success as, without it, you have something nobody knows how to actually use and integrate with.

    • tentacleuno 2 years ago

      The 2nd link you posted has a large red disclaimer stating the documentation is outdated. Does this mean it shouldn't be used ...? If so, why did you link it here?

    • 3np 2 years ago

      This comment could be read as "Element X solves the major UX issues and we're on top of things", in which case no, the message did not get through.

      • hammyhavoc 2 years ago

        Pull requests welcome.

        • 3np 2 years ago

          We have a few pending already (some for a couple of years since last follow-up) and Arathorn saying "don't come talk to us about it" doesn't inspire confidence _at all_.

          • Arathorn 2 years ago

            I'm not going to be at CCCamp. I'm sure the folks who do make it would love to discuss your PRs; I'm sorry if they've ended up getting stuck in review.

            The point I was making earlier that I am not in a huge rush to talk to someone who is focused on enumerating a whole bunch of complaints at me, issues which I am PAINFULLY aware of already. Managing a FOSS project is miserable at the best of times, and I'd rather focus on fixing the issues (e.g. solving UX hell by shipping Element X) than being berated about how shit we are and how much better we could be.

            • hammyhavoc 2 years ago

              I think both Matrix protocol and Element are some of my favourite pieces of software of all time. Use both every day and love every moment.

              As with anything software-related, yes, it can always be better, but neither Matrix nor Element are shit. Fucking love them.

            • solarkraft 2 years ago

              > Managing a FOSS project is miserable at the best of times, and I'd rather focus on fixing the issues (e.g. solving UX hell by shipping Element X) than being berated about how shit we are and how much better we could be.

              This is not what I mean to do at all. I am sorry if/that it feels like that. I don't want to berate you, I want to contribute to Matrix. We are of course better off with it than without it - that's the whole reason people care to invest the energy to complain. If it wasn't a project worth caring about, they'd just direct their energy somewhere else.

              I really want to help out. My hope voicing my pain points was (besides trying to get them prioritized up) to get information on how to work around and help fix them. Maybe I will be more successful in #matrix.

              > I am not in a huge rush to talk to someone who is focused on enumerating a whole bunch of complaints at me

              Please consider talking to someone who is bursting with excitement to dedicate time and energy to Matrix.

              Thank you for staying engaged. Matrix 2.0!

              • 3np 2 years ago

                +1 on all of the above.

                I'll be at camp as well and happy to meet up. Contact link in bio.

  • gtvwill 2 years ago

    Man it's the worst to get into. I've been reading about it for at least a few years now and Ive wanted in, have tried to get in a few times...but where the hell are the simple tutes to do so? Where's the paid youtubers holding my hand through this? Don't get me wrong I want decentralised self controlled Comms. But I don't want another degree to set it up or manage it or get my friends hosting it, I already did that for mikrotik n routing.

    Matrix has been a train wreck of a protocol deployment from a pleb consumer pov.

rwxer 2 years ago

One of the really nice features of Matrix is the IRC bridge to Libera Chat. Libera Chat is the current home of open source projects' community and support channels.

Earlier it was necessary to set up an IRC bouncer if you needed a persistent connection to the IRC server. But now you can just create an account on Matrix and join a Libera IRC channel from Matrix. The Matrix bridge functions like an IRC gateway on Matrix. It's a great way to stay logged into the IRC channels and ensure that you don't miss any messages when you are away.

aaviator42 2 years ago

All my server back-ends send me alerts and logs via matrix, which I can check easily from any device, including my phone :)

https://github.com/aaviator42/MatrixTexter

  • mxuribe 2 years ago

    I'm like you @aaviator42! :-)

    I've been using matrix for chat since it first came out...and then stumbled upon using it as my system notifications tool...it was one of those "duh!" use-case moments for me. So by using matrix, there's one less app/client i have to use for notifications; all human-to-human chats go into relevant rooms, and system notifications go into dedicated "notifications" room(s). Matrix is truly so versatile!

    Now that i see that yours uses PHP, i can share with friends and colleagues who have the same idea as you and I, but prefer leveraging PHP on their infrastructure. My code happens to use python [0]...but the beauty of all of this is that - with open source - users get to choose their preference! Kudos to you!

    [0] = https://github.com/mxuribe/howler

  • justaj 2 years ago

    This is almost completely broken on non-GCF (Google Services) phones. I've seen message notifications arriving 12 hours (!!!) later.

    For those users it's recommended to use Matrix clients alongside something like https://ntfy.sh/ , which sends push messages to your phone. However, one could then also ask: What is the need for Matrix in that case? I suppose end-to-end encryption would be one argument, but you could also encrypt message (contents) client side with something like GPG. So, I'm left wondering what really is the benefit of Matrix for those users.

    • aaviator42 2 years ago

      The need is convenience, of course.

      Are you really going to encrypt alerts your servers are sending you with GPG?

      • justaj 2 years ago

        Super sensitive ones, yes. It's usually just a matter of copy and pasting the ciphertext into a GPG app and then see it get decrypted.

        Other common and non-sensitive notifications (like "Hey there's an SSH login on this machine!") I don't encrypt since I see no reason to having them encrypted in the first place.

the_gipsy 2 years ago

The "bridges" really work well if you can host your own and "puppeteer" your account. I only use Element on my phone now and all whatsapp messages come through without issues.

I am also spending some time hacking around some terminal matrix client. I don't have to worry about some corporation pulling the rug.

  • tentacleuno 2 years ago

    Does that mean I could set a bot to login to my account and post as me, all from the comfort of an IRC client? Any more deets?

    • the_gipsy 2 years ago

      I don't know if you can "puppeteer" a matrix account (that puppeteers a whatsapp account) from an IRC account/client.

      The matrix TUI client I am using is iamb[1]. It's still early WIP, but usable.

      [1]: https://github.com/ulyssa/iamb

palata 2 years ago

I used IRC for 15 years, and then was quite into Matrix (and their bridging) for a while. I used Matrix for 2 years, until I realised that almost all of the channels I used were on IRC.

Moving back to IRC, I realised how heavy Matrix seems to be.

I understand IRC is very old and lacking a few features, but Matrix seems like a completely overkill solution. It seems so complex that the only way to write a third-party client is by using the official libs, and even that seems so hard that they keep suggesting that Element is the only good alternative (while acknowledging that it still has pretty big UX issues, after all those years).

Also I remember reading from one of the leads that performance was not their main concern. They would rather work on academic features than make sure the protocol is very efficient. That's a problem for me.

At this point I am not sure if Matrix can succeed...

  • matricaria 2 years ago

    I still wonder if I’m doing thing wrong, if so, please tell me.

    For me, IRC just doesn’t work. I can’t receive messages when I’m offline. I can’t read what other wrote while i was offline. These for me are just plain red flags.

    I also can’t search if somebody else asked the same question before.

    There is no good mobile (iOS) app. I tried Palaver, it’s ok but every other chat app is much better.

    Lastly, IRC is really hard to set up and log into. And I would call myself pretty tech savvy. This just eliminates it from ever becoming mainstream.

    • progval 2 years ago

      If the networks you are connecting to don't support persistence / chat history (most don't, because of the technical and legal complications), then you need to either setup a bouncer (pounce, Soju, ZNC), pay someone to host it for you (chat.sr.ht, IRCCloud), or find a free host you feel you can trust (plenty of results when googling "free IRC bouncer")

  • panick21_ 2 years ago

    If you restrict yourself to features that IRC has, then there are lots of clients that are fine.

    Also, Matrix Client-Server API is just HTTP calls, it isn't really that hard.

    But using the SDK gives you things like encryption and other features.

plantroon 2 years ago

I got Element on my desktop, Schildichat on my phone. Bridged to all other messengers I used. IRC is handled with Heisenbridge. Before this I used weechat+bitlbee. Matrix is better, more capable, but way heavier, on both the server side and client side. I even dabbled in XMPP but in the end just bridged it into Matrix as it's not much better by itself (though it also supports extensions and can connect to many IM networks). The clients are buggy, especially on Android, they overheat the phone for no reason (when in use. Notifications are handled via push so background usage is great). But XMPP wasn't better in any other way so Matrix remains my go-to solution.

preya2k 2 years ago

I'm beginning to doubt whether Matrix can actually succeed. It's a great idea, and there are great people involved, but there's just so many different problems/features that it's still lacking. And the progress is painstakingly slow. I really want them to succeed and I still try to get everyone on board and evangelize all my clients to join Matrix – but the truth is, I'm loosing hope.

Example: About a year ago, "Threads" went out of Beta and the feature is pretty much still unusable, because Notifications get stuck all the time. Even though there was a lot of progress to fix this – it's still not up to par with other Messengers.

  • doubled112 2 years ago

    This is roughly my feeling too.

    I've been running my own home server for a while now, and talked a friend or two into doing the same. We use it daily and it is "good enough" for us, but I'd never try to sell it to somebody that isn't already interested.

    Notifications seem get a little better, then get a little worse again, and then the cycle repeats. Unless I've watched the system notification come in, I just ignore it. Definitely not perfect. I've also managed to get into a state where it'll notify me about messages from days ago that are marked as read, and never clear without a logout.

    I was really excited about the possibility of third party clients, but in general, they all have some big missing features and/or show stopping bugs.

  • Arathorn 2 years ago

    Agreed that the stuck notification problems with threads is a real embarrassment. However, I wouldn't give up on the whole project over one nasty class of bugs (which i am very hopeful we're close to nailing...)

    • gtvwill 2 years ago

      Why not? One nasty class of bugs can make any project entirely unusable. In business it's all it takes to make me use your competitor over you.

      As a dev you need to not fall into the trap of lumping users problems and faults off onto your own scale of what is or isn't important. This will ruin your business. You as the dev/on the inner circle have bias to what you think is or isn't important. If you disregard something as small but your users are like yea it's small but it's a major problem that makes the platform unusable your gonna drop users quicker than you can blink all the while asking yourself why?

      Dangerous position, be wary of judging your clients problems importance on your own scale. Matrix will fail with that attitude. You won't focus on what your consumers want.

      • Arathorn 2 years ago

        As I said, we're close to nailing the problem, and the element web team has literally been working on nothing else for weeks.

        I have no clue why you think we're disregarding it; it drives me nuts too.

Fabeltjeskrant 2 years ago

What about beeper.com?

dolmen 2 years ago

Very quick.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection