Hacker News new | past | comments | ask | show | jobs | submit login

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...

* 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...

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....

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...




Thanks for the work you're doing here! I want to commend you on how well and consistently you communicate the priorities and progress of this project. Between the This Week in Matrix[0] blog posts, the Matrix Live chats for the Patreon patrons, and your presence here and on matrix/irc, I'm impressed at your organization and the results you've managed to produce!

I'm happily using Riot with my wife and our 60+ year old parents, as well as with my peers, and we all really like it. This project is really shaping up to be a gem of the open-source community, and I'm excited to see it grow!

[0]https://matrix.org/blog/2018/05/04/this-week-in-matrix-2018-...


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


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...


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.


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

This is because search doesn't work at all in encrypted rooms since it's implemented server-side.


We’re working on clientside search to fix this: https://github.com/matrix-org/matrix-search/tree/two-headed-...


From what I understand, Electron is a very temporary stopgap.


I would love to see a PWA.. In my experience those work (a lot) better than their native counterparts. Some good examples are mobile.twitter.com, instagram.com and maps.google.com


The problem is that in these cases, temporary stopgaps have a tendency of becoming permanent solutions.


Matrix/Riot have been what I've been wanting for a long time. My biggest issue at the moment is that communications is an intrinsically social thing. Getting friends and family to swap when there are all these minor polish issues means I'm sitting in a room all by myself. I refuse to give up.

The fact that you all are working so hard on performance and polish really gives me hope that soon I'll be able to pull some less technical people off of hangouts.


As others have said, thanks for everything. I am a Patreon supporter, I would highly encourage others to support Matrix/Riot as well. I have been able to transition the vast majority of my personal and professional communication to Riot.im on Android, iOS, and web. Voice, video, text, memes, all of it. I know it has its rough points, but even non technical family and friends have been able to use it, getting off of the proprietary, nonfree alternatives. Thank you very much.


Tangential shout out for a nice FOSS alternative to Patreon ... Liberapay.

Matrix has an account with them, you can support them there, and 100% of your money goes to Matrix.

https://liberapay.com/matrixdotorg


I was a Patreon supporter until they received funding from that crypto currency company. I'm waiting to see how that pans out and don't think my money matters much now anyway.


Patreon does actually help very significantly - at the current rate it effectively funds one fulltime developer for the project. Or to think of it another way, it adds several months onto the total runway that the funding from Status gives us, and this is a massive boost given the scale and ambition of the project - we need all the time we can get. So: huge huge thanks both to everyone who supported us in the past (without whom it would have been impossible to justify raising larger funding from folks like Status) - and likewise to everyone who continues to support Matrix today, as it genuinely is helping us keep the lights on.


Is there any reason Dendrite hasn't gotten more attention than it has? I can understand why you wouldn't want to write a new homeserver to begin with, but I'd think you'd want to focus heavily on it once you made that decision.

Speaking of Dendrite, do you all have a general idea when it will be production-ready? I'm looking forward to being able to use it, even before it's hit full feature parity with Synapse. Just out of curiosity, how beefy is the server that the Matrix.org homeserver runs on? My VPS basically had a meltdown when I opened #matrix:matrix.org, and it wasn't even hosting the channel.

All in all, I'm pretty pleased with Matrix. It does pretty much everything I could ask, and seems very nice to develop against. The only problems I've had with it in my past few months of (admittedly, relatively light) use were related to misconfiguration on my end and Matrix.org being cripplingly overburdened.


The problem with Dendrite is that we've had no choice but to focus on keeping the current servers (i.e. Synapse) scaling and alive, especially the matrix.org server. The problem is compounded by the two devs who originally led Dendrite sadly leaving during the funding uncertainty we had last year.

However, we have new folks joining to work on Dendrite over the coming weeks, and we should be able to get it moving again. But it's now looking like a two-pronged attack; one to mature Synapse to being usable - and another to keep Dendrite headed in the right direction to be a good alternative (initially for AS traffic, then full CS traffic).

https://news.ycombinator.com/item?id=16940880 has a lot more info on this.


Thanks, that was a nice write-up.


I wanted to mention the issues surrounding Communities. Late last year I was really interested in the possibility of migrating a community I run from Discord to Matrix, but the featureset and UI for Communities was just not flexible enough for our needs. Things like community-internal roles/subgroups, subflairs, & subchannels are very important for any group larger than a dozen people. Plus in Riot the focus on global channels made the UI quite confusing. (I opened an issue for one of these points but it seemingly hasn't received much dev progress so far.)

(Admittedly, Matrix's focus on global chats rather than Communities makes for a pretty complicated model/system when Communities and subflairs and subchannels need to be implemented.)

I really hope Matrix and Riot will be able to catch up with the other players in this respect, because Communities is a major reason why Discord has grown as big as it has. Powerful group administration tools encourage people to start communities on a platform, invite more people to them, and advertise those communities. It's imo a major driver of growth, and I'd like to see Matrix gain lots of market share.

It'll be hard, but best of luck, we're cheering for you.


Is Discord built using Electron? I think I read something like this recently.


Is there a bunch of work going on from the team there in preparation for the Purism Librem 5, or is that mostly their efforts that happen to rely on your tech?


Sadly it’s ended up being the latter. We’d like to help them, but doing so would pull time away from the core Matrix stuff, which would require us to fund more people to cover the work. They haven’t been able to supply any funding, so we’re supporting them on a best effort basis instead.


That's concerning. One of the reasons I bought a Librem 5 is that I thought this would fund development of Matrix.

The Librem 5 page says “partnering with Matrix” but it now sounds like that has no meaning.


I guess it depends on your definition of 'partnering'. Right now I'm sitting in a Fractal / Librem5 workshop in Strasbourg with a bunch of GNOME and Purism folk, trying to advise on how GNOME can use Matrix well. We were also expecting to be funded to work on the Librem5 on a better than best effort basis, but it seems there wasn't enough $.


Gotcha. Thanks for your response.


I'm using Slack & Riot ... and from my point of view Slack has many of the same issues that riot has as well (performance, room switching, etc).

I agree the UX is not as intuitive as on slack, but I'm sure the get there.

One thing that I did not ever find out in the UX is how to change own presence and how to get the others presence (it's always offline).


Not sure if it's still true, but I read a while ago that the matrix homeserver has presence turned off due to load.


this is still true on the matrix.org server, sadly.


ok thanks for clarifying. I thought "matrix homeserver" people always refer the own synapse install.... but matrix homeserver is matrix.org ;-) so it makes sense. thanks


Another problem I've seen quite often in regards to Riot performance is that viewing large images in an E2E room results in massive lag within Firefox (on Linux at least).

Presumably it's because you're decrypting a 5MB image in JS, but it seems a little bit odd that the entire browser effectively locks up as long as the image is visible.

It's not the end of the world for me, but it is fairly frustrating (the people I talk to use the Android app and don't have this problem, leading).

Keep up the great work Arathorn (and the rest of the folks working on Matrix/Riot)! I've been donating quite a bit to the Matrix project ever since you started accepting funds, and I don't regret it one bit.


IIRC I think I remember him saying in a room that this bug had been fixed in the develop branch :)


Yup, it's already fixed on riot.im/develop - as per https://github.com/matrix-org/matrix-react-sdk/pull/1864


The only thing that holds back my personal slack groups from moving to Riot is Slacks under message reactions (especially the custom ones).

I did see there was an issue opened for it on github, but can't seem to find it now.


https://github.com/vector-im/riot-web/issues/1357 is the issue and we want to get it done asap, but performance and polish (as per the OP) has to take priority.


I'd like to help as well. Is there a way to contact you?


You can find me in #matrix:matrix.org or any of the public rooms about Matrix :)


Are chunks / hot path improvements going to help with the forward_extremities problem? https://github.com/matrix-org/synapse/issues/1760


Yup. The hot path speedups for state resolution should make things go faster when you do have a fragmented graph (ie lots of extremities) - in the best case O(1) rather than guaranteed O(N). And then the chunking should reduce the number of extremities which build up over time anyway.


Thank you for fighting the good fight!


Please initiate creation of a plugin for Pidgin... (it feels most of the issues would be easier to solve that way as well)


> once we get past the mythical man month stage

Oh dear.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: