We have lift-off Element X, Call and Server Suite are ready
element.io
element.io
We ran Element for our dev team for 6 months and had to give up because frequently a person would just not be able to decrypt a message, warnings would appear but there was no way to solve this. So literally people where missing messages and just having to ask people to post the message again (because there was no way to request the keys be sent). It was a complete disaster and only got worse over the 6 months.
The notifications icon was a mess too. You would frequently see the "unread messages" indicator for a message that was in a thread sub conversation somewhere, even though all the messages had been read. So again people were missing messages.
Despite numerous people begging for threads to be disabled while Element fixed the bug, they refused to put that option in.
In the end, we had to give up and just move to Slack. I really want Element/Matrix to work. I feel like we need it to work, but the lack of support and understanding from the development team would make be warn people to not use this in a professional/day job environment.
That being said, I'll defo be trying it out again personally with the hope they've listened to the community and fix these important bugs.
Last time I tried the threads-feature (with Element) maybe a year ago, it was still in beta.
Anyhow, if you're ok with Slack, then you probably could have just not use E2EE at all and avoid issues related to that?
my experience is based on regular old element clients and my own server and will be moving to x and sliding sync probably at the end of the year
So, the point of this blog post is to try to spell out that we've fixed this.
Meanwhile if you see ANY unable to decrypt errors, PLEASE submit debug logs on both the sender & receiver, and we will jump on it aggressively.
In terms of threads: yes, the stuck unread notification bug(s) were a disaster, but also fixed last year. Behind the scenes, 2023 was an absolutely awful year for Matrix & Element along many axes, c.f: https://matrix.org/blog/2023/12/25/the-matrix-holiday-update.... Sorry that you got caught in the disruption.
See also https://cfp.matrix.org/matrixconf2024/schedule/ for all the other Matrix stuff happening over the next 2 days :)
As the operator of a small instance for family and friends, that's an important topic. The very frequent use case is : "I lost/replaced my phone and didn't save my passphrase". Does that mean that the account would be lost ?
That was the annoying issue, I could not trust it.
Secondly, we're making it much less likely to actually need to ever enter a recovery key - with QR login meaning you just scan a QR code to launch your account, complete with all e2ee state (assuming you're already logged in somewhere; same as WA or Discord etc).
In the end, though, if you lose all your devices, you have no choice but have some kind of recovery key to get back in. We could use your account password, but (particularly in an OIDC world) it's then challenging to avoid exposing the account password to your server admin (thus breaking E2EE).
So instead, we're hoping that users will either save their recovery key, or worst case, if they do, they can reset it... but that will inevitably mean they won't be able to access their old messages from backup any more.
Was the Android version flow-tested by anyone at all at element.io?
When I tried registering a new account, it did not accept my handle. I guessed this because the handle text was red.
But why it didn't like it I can't see because the little box with the error message is outside to the right of the screen (I guess there is a box because I see a little arrow on the right and I understand that this just a web view of something not originally designed for mobile/portrait).
Basically, if this was my ma or any of my non-techie friends, they would close the app now without ever registering.
After I login with my existing account and verify the device via my Linux client it asks me to enter a "recovery key or security phrase".
I enter my security phrase, I get a spinner, the spinner disappears, the 'Continue' button is grayed out. Nothing happens.
These are both flows that (a) a new user would see or (b) an existing user would see, immediately when using the app for the first time.
How is it possible they're broken like this?
Sorry you got bitten by this. I'd be very interested if you can compare it with the flow if you specify beta.matrix.org as the homeserver.
There's a lot of talk of Element competing with mainstream chat applications, but I don't see how it does that with what feels like an incomplete UI. I also just don't quite get how you ship a chat application in 2024 with issues like this, considering chat UI itself is somewhat of a solved problem. It's like one of those things that just has no reason to be badly laid out.
(Is this just SwiftUI being less than ideal for some types of views...?)
To be clear, I like and use Matrix daily. It's definitely still got rough edges but I appreciate the work they're doing and I think it'll eventually "get there", so I don't want to just be a (total) detractor.
But, every time I've looked at Matrix Chat it's been a disaster. That it tries, at all, to authenticate every personal(?home?) server as soon as you join #matrix is... Bad, from a lot of perspectives.
Privacy? Just put up your own DNS and find out what new servers are joining.
Security? Easy slowloris type attacks at several layers- DNS, http, etc.
Performance- eagerly enumerating all federated servers before joining a channel places a hard cap on channel and overall network size. And it provides a terrible experience.
The more I look, the less I like what I see. As a potential user, a software dev, and an admin it leaves me with two impressions: sloppy at best, braindead at worst.
Can you link to a bug on github.com/element-hq/element-x-ios/issues please?
"Main chat view" is the actual chatroom view. The bubble layout has spacing that makes it hard to scan messages - there's small padding on the bubbles themselves, but then you have inconsistent spacing on e.g if there's a list or something in that bubble, with lists in particular having a seemingly different line-height or spacing between items. Bubbles themselves have little spacing between each other, and then day separators also have odd spacing.
Additionally, I still have a weird green floating box showing up in the chat input box. It's on and off with every update and it's not click/tap-able, and I have zero clue why it's there.
the green box sounds like an accessibility helper feature of some kind which has got confused?
I mean, I'm not asking you to help me, I was just curious whether there was any more resources dedicated to the UI/UX of that particular view. If the answer is "no, and we feel the view is fine", then just say that. I might not agree with your choices but it's not going to stop me using the app. ;P
I'm unlikely to stop and annotate a bunch of screenshots and put them on GitHub as I've other things to do with my time. The older I get, the more protective I am of my free time... as much as it sucks from an OSS perspective.
> the green box sounds like an accessibility helper feature of some kind which has got confused?
You mean in Element X itself? I have no accessibility features enabled on my devices, so I doubt it's an OS-level control in the way.
> If the answer is "no, and we feel the view is fine", then just say that. I might not agree with your choices but it's not going to stop me using the app. ;P
It's more "no, and i can't understand the spacing problems which you're describing, and i'm wondering if you're on a strange aspect ratio screen or have zoomed the dynamictype lots or are RTL language or some other edge case that we haven't considered, so i'd like to see a screenshot to understand what you're seeing and if we're on the same page".
> > the green box sounds like an accessibility helper feature of some kind which has got confused?
> You mean in Element X itself?
Nope, in iOS
> I have no accessibility features enabled on my devices, so I doubt it's an OS-level control in the way.
Huh. this really sounds like Button Shapes in iOS (https://osxdaily.com/2014/06/25/enable-button-shapes-ios/) or similar - and it getting confused by the fancy half-rust-half-SwiftUI rich text editor that EX has.
My co-op uses matrix as our primary communication method, replacing slack because it was too expensive, and we're very happy with it, but I was always surprised that element x was even on the app store considering how primitive it was compares to Element (the first app).
We used it as a drop in replacement for slack including automations etc. The bonus was we got, I can't remember the technical term but mirrors or duplicators for Instagram etc set up, so people can use the element app to message people on Instagram, Whatsapp, etc, if they'd like. I like it because I can message people without Instagram first trying to suck me in with Algo bs.
Matrix is mostly a victim of the government forks taking up their time in different directions instead of having just one app like signal.
We did all the super-hard groundwork to make non-atomic joins possible - but then ran out of time & $ to go further (plus none of the Element paying customers are complaining about it). There's another order of magnitude speedup to be had there, though.
Between this and https://github.com/matrix-org/matrix-spec-proposals/blob/mat... we should be able to fix things unrecognisably, but just haven't got there yet.
> Matrix is mostly a victim of the government forks taking up their time in different directions instead of having just one app like signal.
It's a double-edged sword. On one hand, it generates $ to work on Matrix. On the other hand, it means that if none of the $-payers care about faster remote room joins, they get deprioritised :|
I definitely want an open chat standard to succeed and I suppose the best candidate (among astonishingly few!) is Matrix. There’s just still a loooooong road until I can get my friends/acquaintances on it.
This is false. We check issues which people file and try to reproduce them, and we certainly don't ask randoms to contribute PRs to fix stuff - we'd much much rather fix them ourselves.
Meanwhile, you can see the issue stats at github.com/element-hq/element-x-ios/issues and github.com/element-hq/element-x-android/issues - it's not like we're ignoring or failing to close issues.
Disclaimer: I am the CEO of Zitadel ;-)
The story is, at first I used Zitadel, after trying out multiple other things like Keycloak or Ory, and then switched to Authentik, because I didn't really like the UI of Zitadel (too "enterprisy" for me, I like it more minimal, and for my setup it felt like I needed to configure too many things.).
But with Authentik I needed to configure like 3 three separate things to create a new "Application", I still don't understand why all these things are required, and if this is really needed to configure all these flows & stages, providers, outposts, ... (don't rememeber all the names, or how they were related to each other). I always just clicked through the UIs and left everything on default settings, which got really annoying after a while.
So I switched back to Zitadel, which has a pretty good UX for just creating a new application. Though it is still very confusing, all these settings which are specific for organizations or user specific, project specific etc., it's very often that I'm screaming "Where are the normal settings?".
I really would prefer to have something, where I don't need to worry about "Organizations" or "Projects", I understand that these are very useful if you use Zitadel "normally" (i.e. in an organization with multiple real people), but for my use-case it just adds too many layers which I don't need. I only need to create new users, and applications, that's it.
I see what you mean with "enterprisy", that has some truth to it ;-)
We have some ideas to improve this and to reduce the learning curve for that. I guess from many people we could "hide" the whole multi-tenancy part and just given them a single organzitation to start with.
ESS uses Matrix Authentication Service (https://github.com/element-hq/matrix-authentication-service/) which is a very lightweight Matrix-aware rust OIDC IdP intended for embedding into Matrix homeservers to make them OIDC-capable. It provides the same featureset as pre-OIDC Matrix auth, and then lets you delegate to an upstream IdP (keycloak, authentik, forgerock etc) for a full featureset (2FA, MFA, etc).
When we did our tests, messages would get dropped, arrive out of order, be impossible to decrypt, joining a room was slow (sometimes days), mobile notifications would be swallowed by the desktop client left running, webhook were hard...
I don't want to speculate too much as it is just a feeling, but it felt that the protocol itself had unfixable flaws.
This is the main difference with Signal in terms of functionality...
Also, raising the issue on github gave no comment https://github.com/element-hq/element-x-android/issues/2831 a few months later.
This makes reading conversations with threads painful on mobile with Element X.
Can we expect the same bugs to be fixed on Element not-X ?
I can't test right now myself, maybe somebody else knows.
> Upgrade available. Your server supports a new, faster protocol. Log out and log back in to upgrade now. Doing this now will help you avoid a forced logout when the old protocol is removed later.
Meanwhile the desktop client upon launching flashes old analytics and UI "tips" notifications that I closed already.
You can search on the Desktop app, but not sure why you can't on mobile...
But it has only happened a few times for me. I have not created any github issues. I only have 1 friend on matrix so I don't get that many messages :)
But each time I open the app, the syncing is kinda slow, much slower than on the computer in my experience. Isn't it possible to enable fetching in the background?
That said, from these symptoms, it really sounds like you are on an older build of the app - and probably using the old sliding sync proxy rather than native sync implementation which has now landed in Synapse. The new builds also fetch in the background (whenever you get a push).
Please upgrade, try again, and failing that, file bugs on github.com/element-hq/element-x-android!
In most juridictions and industries you must be able to audit internal and b2b communication.
If you want audit, you then add it on separately, in a separate locked-down deployment, compartmentalised from the rest of your infra and the chat server, so that an attacker would need to pwn an audit client connected to that instead.
Element: The most popular client (like Thunderbird)
Element X: Rewrite of Element based on Rust and native UI components
Synapse: Most popular Matrix server (like Dovecot)
Element Call: Video/Audio conferencing (like Jitsi)
Element Server Suite (ESS): Paid SaaS solution that wraps all of the mentioned components into a simple turnkey solution.
Thats at least how I understand it, because to "get" ESS you need to fill out a contact form.
I mean i wouldnt have a problem paying one-time fee of around $100 if that would mean I can get that soft running locally for my groups, but I guess I am not the target potential customer group.
It looks like ESS is mostly managed deployment of otherwise opensourced software like Synapse, Element Web, Element Call, and friends. And I guess they have some backoffice with a glossy web UI for account/user management.
https://github.com/spantaleev/matrix-docker-ansible-deploy is a good starting point!
ESS is a paid, fully managed service by the Element team for ease of use.
-
They ship a k8s operator that deploys Synapse, will try that later. Supposedly it's free up to 200 users. But it seems like there's 0 documentation past the README.
Otherwise looks great, it seems the app loads much faster.
And for the UI they use Jetpack Compose for the Android App and SwiftUI (I think that's how its called, correct me if I'm wrong) for iOS.
This way only the UI is "duplicate" but the core logic is maintained in the rust library.
EDIT: Okay just found my comment from 300 days ago: https://news.ycombinator.com/item?id=38402710
Proper language.
> We have lift-off! Element X, Call and Server Suite are ready!
Just some url/tag parsing/generation gone wrong.