
A Year Using Matrix and Riot - kasbah
https://itscode.red/posts/1-year-using-matrix/
======
Arathorn
Project lead for Matrix here. This is a pretty accurate post, and in terms of
the negative points we are _painfully_ aware that UX on Riot (and performance
on Synapse) still has a way to go. The current stuff we have in flight to fix
this are:

* Lazy-load all room members rather than push them proactively to clients. This should improve initial sync times and subsequent RAM usage by anywhere from 3x to 20x depending on how active your account is.

* Cross-sign E2E devices when you log in so nobody ever has to verify them again. This should kill the constant device verification (and key sharing) warnings.

* Refresh the whole UI/UX of Riot. We have an ex-Canonical/Ubuntu pro-designer working on a complete facelift of Riot/Web, coming in the next few months.

* Perf improvements across the board on Riot/Web - particularly optimising React when switching rooms, and switching from Draft to Slate in order to speed up and stabilise the message composer.

* Algorithmic improvements to Synapse to speed up the hottest paths (shifting from O(N) to roughly O(1) with the size of the room) - [https://matrix.org/_matrix/media/v1/download/jki.re/ubNfLtrm...](https://matrix.org/_matrix/media/v1/download/jki.re/ubNfLtrmXZMmlGjJZYPnlHHy)

* Algorithmic improvements to Synapse to avoid fragmentation of rooms by partitioning the DAG into 'chunks', avoiding stale/dead/orphaned chunks from contributing to the fragmentation of the overall room - [https://docs.google.com/document/d/1E0cmEeMDwcQarFYxpZ0b9aoQ...](https://docs.google.com/document/d/1E0cmEeMDwcQarFYxpZ0b9aoQbf1ODxwRx7YWIo5nWt8)

On the minus side, we've been badly slowed down by constant firefighting
keeping the Matrix.org homeserver operational despite massive growth, as well
having to do a lot of preparation for GDPR compliance - see
[https://matrix.org/blog/2018/05/08/gdpr-compliance-in-
matrix...](https://matrix.org/blog/2018/05/08/gdpr-compliance-in-matrix/).

On the plus side, we have a lot of new people joining during May to work
fulltime on Synapse, Dendrite and Riot/Web - which once we get past the
mythical man month stage should make a huge huge difference.

Fun times...

~~~
ksdf0m324
I use Riot on a daily basis and I like the overall concept, we love federated
where I communicate. So let me try to share some experiences that bugger me
the most because I really hope you could imporve on those things. Imho those
things are more important than UI. (form follows function, sorry guys ;D)

\- Messages that can't be decrypted on only some of my devices. This for
example forces me to use my phone while sitting in front of my riot desktop
application. This becomes worse if ppl send me URLs. I have to forward them
from my phone to my pc - using an empty channel with only me reading, having
riot telling me that noone is listening :D. Im-/exporting all keys on all my
devices only helps for a while and is impossible while not at home. This
mostly - but not only - happens with linux.

\- Searching the history doesn't work well at all. Shows zero results for a
string, scrolling up proves that wrong.

\- My phone doesn't stop to blink even tho I read the message on my pc.

\- I really do not like electron and things relying on 100+mb google sandbox
software. But well, I understand your need to use it... ;D

~~~
nickserv
Have you used any of the Qt based client? I'm asking because I'm interested in
Matrix, the idea and the protocol look great but there is no way I'm using an
electron app...

~~~
Arathorn
I use both nheko (Qt/C++), Fractal (GTK+/Rust) and Quaternion (Qt/QML) on a
regular basis, and they are all very usable albeit not as mature as Riot yet.
Definitely worth a go though.

------
orthecreedence
> Another huge issue is how painfully slow the client is. Simple tasks like
> switching between groups takes up to a second

Guess the author hasn't used Slack lately...

I run both Slack (for work) and Riot (for personal, on the matrix.org server)
and while I don't use Riot as much as Slack, I really love it. I think the UI
is great. I am fairly used to IRC though, and I think that's where Riot gets a
lot of its DNA from, so maybe I'm just used to that setup.

For the project being open source, and for the short time it has been alive,
it has come so incredibly far. I can't wait to see what else they do.

------
neilalexander
> This has improved a lot since a year ago but there still needs to be a
> massive change in the UI design to make it comparable to the competition.

I agree whole-heartedly with this. I am not entirely sure who decided on
Riot's garish green UI filled with circles and non-standard UI controls and
wildly variable padding/spacing and communities bar that takes up space even
when not joined to any communities, but it looks a mess.

If you look at Slack, Microsoft Teams etc, they are consistent, they are clean
and they look like they have been designed by professionals. Riot doesn't -
yet - and I can quite understand that putting people off, given that there
aren't many other Matrix clients for the average user.

~~~
Arathorn
You're always welcome to change the garish green in settings, and likewise
hide the communities bar (although we expect communities to be used more and
more in future, just as they are in Slack and Discord etc).

Meanwhile, the upcoming redesign pretty much removes the green and the circles
anyway :)

~~~
fredsir
Where can one sneak a peak of the redesign?

~~~
Arathorn
We'll do a blogpost shortly to show where it's at and gather feedback :)

------
rcthompson
After seeing a post on HN about Matrix a few weeks ago, I decided to see about
setting up a home server on the headless Ubuntu box in my closet. All in all,
it was pretty painless. The one thing I couldn't figure out was the built-in
audio/video calling functionality, although the Jitsi videoconferencing widget
did work (once my dad I managed to find all 20 of the volume knobs throughout
the OS that need to be unmuted to have both the speakers and microphone
working on both ends).

------
sandov
I Tried to use Riot.im with a friend of mine, who's also a hacker and we
couldn't figure out how to create a room for us to chat. We're probably too
dumb for this.

~~~
potatopolis
Bottom left; click the little person icon. A modal pops up asking you to enter
the user ID of the person you wish to chat with.

There are valid complaints to be made about Riot's UI, but I really don't
think that's one of them.

~~~
sandov
We did that many times, but nothing appeared on each other's screen, it seemed
as if the IDs were being sent to /dev/null.

------
awesomepeter
What confused me about Riot when I tried it was that when I picked a friend to
chat, it created some kind of new room instead of.. not sure how to call it, a
P2P chat? Like it's on slack or other services. For eg. I could remove
messages but my friend couldn't which makes it weird (I'm an admin in a P2P
conversation?)

~~~
Stephen304
It seems Matrix really blurs the lines between a direct chat and group chat,
it's one of the things I would like to be clearer.

For example, when you start a direct chat, it's realy just a group chat with 2
people. If you invite another person (or even just an integration like giphy
search!), the UI stops listing it under the other user as a direct chat and it
seems indistinguishable from a chat room. Even removing the extra user seems
to not get it classified again as a direct chat.

If Matrix people are reading this - it would be great to have better
distinction between direct and group. And it would be nice if integrations
could somehow not break that illusion. And perhaps a warning if adding an
integration / user will irreversibly make a chat a group chat.

~~~
dharma1
Yes! This is (one of the many things) addressed in the redesign. Also found it
confusing, but don't worry, it will be fixed :)

Can't wait to share some of the new designs with everyone!

If anyone has other suggestions or frustrations, send them to me - contacts
are in my description.

I'm the guy working on a major UI/UX redesign for Matrix/Riot that Matthew
mentioned above.

~~~
stevenicr
the closer we could get to the realchat interface from 2003 / 2007 - I'd love
to see it. ( [http://weblog.globaladvancedmedia.com/2018/realchat-
backend-...](http://weblog.globaladvancedmedia.com/2018/realchat-backend-
pages-one/) )

rooms, pms, all kinds of options, modern design in a layout that worked even
at 1/4 monitor screen fine.

Of course it did not work on mobile - so it didn't have to think about how
that would re-arrange and look. However it is clean and intuitive for many I
think.

The backend options for changing colors and making / trading entire themes was
decent as well.

------
codetrotter
One thing I discovered when introducing other people to Riot.im and that even
confused myself was the sign-up procedure. You think you are signing up but
instead you are trying to sign in.

Other than that I am happy with Riot.im.

------
jtl999
Is multi-account support being actively worked on for Riot? So (as a use case)
I can be signed in to my personal matrix.org account and my (work) private HS
account at the same time?

If not I was planning on taking a look at it myself despite my JS being rusty
and have never done anything with Electron before but I haven't had time to go
through the code and see how much of it is designed being built around just a
single user account. I remember the old Matrix Console app for Android had
multiple account support.

~~~
confounded
What’s wrong with multiple tabs in a browser?

~~~
Qwertie
Even more resource usage and doesn't work on mobile.

------
newscracker
I would've liked a better segregation of how it was a year ago and how it is
now, along with some kind of bullet list showing the salient points that the
author wants to highlight.

I've tried Riot briefly, and am very much interested to see such a
decentralized solution becoming mature. I really can't wait for it to become
something that can be "sold" to people who aren't into technology but care
about the user experience and ease of use.

------
seba_dos1
For 1-to-1 chat, XMPP seems way better suited. However, Matrix feels like a
really nice IRC successor. I hope both can live in a somewhat symbiotic
relationship.

~~~
majewsky
What makes XMPP "better suited" for 1-on-1 chats? I use both XMPP and Matrix
for both 1-on-1 and group chats and found neither lacking in any case.

~~~
seba_dos1
What I meant is rather "chatting with friends and family, Facebook style", as
opposed to "chatting in organized teams and groups, Slack style".

------
fb03
What Matrix offers differently from Jabber?

\- Jabber has definable custom xml schemas where you can also define your own
protocol on top of it for media exchange, voip and etc.

\- Also, it is pretty decentralized.

In the current incantation jabber also has performance advantages, having a
server implemented in low level language and all the existing jabber clients
around.

EDIT: Keep in mind I am not criticizing Matrix, I just found it to have a
staggering amount of features similar to Jabber, which is "kinda" used but
sadly didn't quite fly like other not-foss alternatives like
Telegram/Whatsapp. We all really need a good decentralized and open IM
protocol.

------
fegul
One thing I noticed when I tried it out a year or so ago was the high data
usage on mobile devices even when messages weren't being sent or received.

I had set up our own Synapse server but the high data usage, quirky 1-1 vs
rooms chats, etc. made it tough for me to adopt fully.

I do hope to use it in the future though as I really like the concept but it
wasn't quite there for me yet.

------
stevenicr
really excited about this. Just need a way to give some users moderator powers
to click to see ip addys of other users when issues arise - and the power to
ban them by ip, subnet, as, cidr, hostname. (and any other options)

One troll with a couple of VPNs and wow, the damage that can be done is
something else.

Would hooking [https://access.watch/](https://access.watch/) into a home
server or something like it make any sense / make it easier / faster to roll
something like this out?

Can't wait to get into this more, so many possibilities.

I am right in thinking that having a home server that does not connect to the
main rooms on the main matrix server would save 80% of the ram and much of the
lag?

------
josefresco
Off topic, but I love the simple & clean design of this site/blog. I think
I'll borrow it for my personal blog.

Did some homework, looks like it was built using Hugo:
[https://gohugo.io](https://gohugo.io)

------
arthurcolle
Is there interop with existing chat server protocols? I would think this is
hard to achieve but I figured it would be worth the question

~~~
eat_veggies
Yep, you can bridge Matrix with a lot of stuff.

------
rterrero
Hola

