what? that's like saying "you should implement TLS instead of HTTP"!
They do entirely different things: MLS is a key agreement protocol, equivalent to the Double Ratchet that Matrix uses for E2EE today. Matrix can use both.
MLS is an IETF standard. The server is easy to write, and easy to make scalable (no complicated merge algorithm required, unlike Matrix). Finally, individual chatrooms scale to an order of magnitude larger size vs. Matrix.
MLS is superior in every way to Matrix as it exists today if you need to implement encrypted chat rooms for your app.
Source: Guy who has implemented both, including extending Matrix to scale the server to Twitter scale (by, in essence, making it working like MLS, only worse due to the merge algorithm).
What on earth are you talking about? They do entirely different things! MLS is an E2EE protocol, whereas Matrix is effectively a conversation-syncing protocol which supports multiple E2EE mechanisms, including MLS.
Source: Guy who started Matrix, was in the room at IETF 101 when MLS was proposed and ratified it for Matrix, and has been working away on the various approaches to use MLS on Matrix.
If Matrix now supports MLS, you should ask the site owner to update this: https://arewemlsyet.com/
Based on my inspection of the Rust crate [0] as of today, it does not. YMMV.
Separately, as you well know, Matrix has its own encryption (Olm, Megolm) that competes with MLS for group chat use-cases. Why you are acting like it doesn't is beyond me.
I eliminated the ability to run multiple home servers and forced clients to submit to the server so that every update was a git-style fast forward, eliminating the ability to have merges. (This means that messages could "fail", requiring a rebase + retry, just like git. Anyway, it works.)
You need a custom Matrix client to do that, which I built on top of the Rust crate.
But I didn't release any of it because MLS is exactly that + better (faster) crypto due to how key ratchets work for group members. So I added MLS' crypto to an existing chat implementation I had which already had all of the Matrix-style chat sync implemented, and dropped my Matrix client and backend. Haven't looked back.
As long as you take ownership, test your stuff and ensure it actually does what you claim it does, I don't mind if you use LLMs, a book or your dog.
I'm mostly concerned that something we used to see as a part of basic "software engineering" (verify that what you build is actually doing what you think it is) has suddenly made a very quick exit from the scene, in chase of outputting more LOC which is completely backwards.
I review every line of code I generate, and make sure I know enough that I can manually reproduce everything I commit if you take away the LLM assistant tomorrow.
This is also what I ask our engineers to do, but it's getting hard to enforce.
If you take ownership of the code you submit, them it does not matter if it was inspired by AI, you are responsible from now on and you will be criticized, possibly you will be expected to maintain as well.
Vibing is incompatible with engineering and this practice is disgusting and NOT acceptable.
It's ridiculous to say that the UI/UX of a protocol sucks.
Matrix has clients with good UX and ones with less good UX (especially in the past). I would challenge anyone to install Element X and say that it has a bad UI/UX - it's objectively at least as good as WhatsApp/Signal/iMessage. It's probably not as good as Telegram yet (but TG has it easy given it's not E2EE).
Synapse via ESS Community (https://element.io/server-suite/community), as it just works and is trivial to update, and tracks the best practices from Element in running a deployment with all the Matrix 2.0 stuff (sliding sync, OIDC auth, Element Call) enabled. The Helm charts are literally the same underlying codebase that powers ESS Pro for folks like NATO and the UN; the only difference is that ESS Community doesn't have the horizontal scaling and enterprise-privileging features that ESS Pro has.
The only gotcha is that Synapse is still not very resource efficient, especially for disk space, although work is finally under way to solve that.
(Meanwhile all our customer deployments run Synapse Pro + ESS Pro in order to get the scalability and Rust worker implementations in Syn Pro.)
remember when you agreed with me that it was maybe regretable that the Favorites space was removed in favor of a process that required multiple clicks? and now it's months later and Element still has this redesign shipped, with every single one of the original flaws mentioned, still present.
I think Matrix has a lot of smart people involved, and I can't believe I'm saying this, but dear god, are you hiring for a TPM, by chance?
Every, single, time I have to go "Home" -> "Expand" -> "Favorites" to do what used to take one click, I lose a bit more faith in Element/Matrix.
Though, y'all did finally fix the notification sound that made me want to kill myself every single time it violated my ear drums. Only took.... 4 years? for that?
What were meant to be fast-follow fixes to the new left panel after it shipped in September ended up getting starved out by deadlines for paying customers, frustratingly. The work is happening now however.
Matrix has a pretty comprehensive featureset with clients across a broad range of platforms.
The accusations of it being overengineered come typically due to the Synapse server implementation being slow. This is basically an artefact of Matrix being quite complicated to provide a byzantine fault tolerant decentralised equivalent to WhatsApp or Slack etc - and time has gone into fixing stability and usability rather than performance. Meanwhile performance is getting better, but progress is slow due to tragedy-of-the-commons related funding challenges. We will get there in the end, though.
Thanks for the response Matthew! But please go to sleep!
Yes it's unfortunate how much Synapse's unperformant implementation has decreased general confidence in the protocol itself. I'm confident it will get better
Synapse has improved; Dendrite has stagnated due to lack of funding; meanwhile there are also rust-native homeservers like Conduit which are beta but smaller footprint. The plan on the Element side is to keep optimising Synapse - the main win to be had is https://docs.google.com/presentation/d/1pKtLl4vCV3-8xz8crvxW...
reply