June 4, 2020

The state of Matrix

The developers behind Matrix (in their own words, An open network for secure, decentralized communication”) have recently published a post about a demo they’ve built of truly peer-to-peer communication on the Matrix network. It’s a bit of a hack, but shows what’s possible. Running code provides real-world feedback and allows them to find and focus on unexpected problems.

I’m a keen advocate of decentralised tools and the need to escape ubiquitous, casual surveillance of our online lives, so I want to see Matrix succeed. I’m not using it yet as a daily driver.

Matrix is yet another project I don’t have the mental bandwidth to follow in detail, so I appreciated the summary by a participant on the Binary Times Audiocast Telegram channel on the current state of Matrix. I quote verbatim:

I use RiotX on Android on a — probably weekly — basis. There’s a bit of change going on at the moment in the Matrix ecosytem with the device cross-signing.

I want to like Matrix, and still use it instead of an IRC Bouncer. There’s also a couple of small communities I follow who are only on Matrix, which is good. The UI for new threads isn’t great however, so I find myself clearing notifications for many chats instead of just a single group.

I’ve also used Matrix as a bridge to other systems, like Telegram and Slack, and I find it a bit crap for those, sadly, although it does (in theory) give you a singlular pane of glass for all your communities. The problem is exacerbated by the fact that New Vector (the firm who run Matrix) only host bridges to Slack and IRC. For all other bridges, like Telegram, Discord etc, you either need to host your own or use someone else’s service. The Someone else’s service” is the real sticking point, as once it gets loaded, you rapidly risk losing messages, at which point the benefit to the bridge is lost.

As an open source distributed IM system, it’s capable and being developed in a sensible way, BUT, it has nowhere near the resources it needs to push it beyond Signal, WhatsApp or Slack, so it’s always going to be second or third tier.

The fact that Mozilla have backed it is good, and should have brought it more recognition, but frankly, it’s been more like a preaching to the choir” moment. People who know open source, and care about IM know that Mozilla backed it… But that’s a niche of a niche of a niche.

There are three key things for me:

  1. the flexibility of the project. Technically, it’s not an IM platform, it’s a distributed database. People have used it for blogging and diaries and all-sorts.
  2. baked in e2ee for multiple devices. With megolm (an iteration on the Double Ratchet techniques) and cross-device signing, there’s the capability to be an exceptional replacement for services like Signal, particularly if they sort out P2P mode.
  3. possibly currently the biggest letdown in the project, but the thing that’s likely to attract most attention is the bridging. It’s a gateway drug to Matrix…. If they could make it compelling… But they’re generally flaky and not well implemented.

There are some very interesting challenges ahead for the Matrix team, and not just in technical terms.

I suspect I’m like many others who learned of Matrix because of its bridging feature. The name of the project didn’t invite me to dig deeper; I thought bridging was all there was to Matrix.

The incomplete bridging feature is a distraction for the team and a possible PR nightmare. Bridging to muliple protocols is a hard problem to solve and it’s not the core point of Matrix.


Previous post
Getting the most out of Cygwin A default install of Cygwin can feel very alien, even if you’re familiar with command-line Linux. Part of that is down to Cygwin’s not-great default