Skip to content

Instantly share code, notes, and snippets.

@ara4n
Last active August 1, 2025 12:57
Show Gist options
  • Save ara4n/8422ae8eae68a8993a5e831691b441f8 to your computer and use it in GitHub Desktop.
Save ara4n/8422ae8eae68a8993a5e831691b441f8 to your computer and use it in GitHub Desktop.
Matrix fails & successes

(Context: this is a lightly edited transcript of a self-appraisal I posted as Matrix project lead into the TWIM offtopic room a few months ago: https://matrix.to/#/!xALORqBdeiSfgdrmUb:bpulse.org/$4bGbRTxNAa4inTTo8zb5rQnmU5HQCyF3J0poX5qnTw8?via=matrix.org&via=envs.net&via=element.io, posted as a gist here so I could link to it from https://news.ycombinator.com/item?id=44621077 for the benefit of folks who might not want to follow a permalink).


i spend quite a lot of time talking about the things i've screwed up (c.f. much of my FOSDEM talk this year: https://youtu.be/lkCKhP1jxdk?t=740)

fwiw, a current snapshot of things i feel i've got wrong would look like this:

  • Not investing enough in trust & safety. It was always seen as “well, that’d be a good problem to have, let’s fix it when we get there”. I can literally remember the ~2014 vintage conversations of saying “what are we going to do about spam” and everyone shrugging, saying it’s a hard problem, and agreeing to cross that bridge when we come to it.

  • Getting carried away with the enormous spectrum of potential that Matrix has, and not being focused enough:

    • Overinvesting in ‘applications beyond chat’ before getting chat & VoIP excellent, and generally not being targetted enough in spending $ when we had it.

    • Getting too carried away with setting up the protocol before having a truly excellent flagship chat/voip product (i.e. the thing Bluesky has learned from)

    • Splitting energy/focus between Synapse & Dendrite, diluting both

    • Splitting energy/focus between Olm/Megolm and DMLS, diluting both

  • Not figuring out a way for Matrix to grow faster (c.f. focus)

  • Taking a long time to get a sustainable model in place for Element (quite alone Matrix as a whole).

  • As a side-effect of getting carried away while trying to whip up excitement and enthusiasm and funding: overpromising.

  • Completely failing to realise that Matrix’s success would not automatically translate into sustainability for Element; overrelying on VC funding for Element; failing to understand cyclical economics and failing to anticipate the 2022 economic crash; being way too overenthusiastic on betting on success at Element, and then having to lay-off half the company in 2023; generally being too naive and idealistic and hopeful that if an open source project is successful the people who depend on it will line up to fund it. Whereas the opposite is true: the more successful it is, the more people line up to exploit it. So if you want to be funded, you have to have some lever to force it (e.g. selling AGPL exceptions, or selling a Pro distribution, etc) - at least until governments finally get their act together on funding Digital Public Goods at any sensible scale.

  • Element donating too much stuff to the Foundation, meaning Element then gets seen as the Bad Guy who’s exploiting the foundation rather than the org who funded it all in the first place.

  • Not evicting toxic members of the community more forcefully

  • Spending way too much time arguing with toxic members of the community or toxic folk in general

  • Leaving some of the fundamental problems (state resets; canonical json issues) to fester for way too long

  • Taking way too long to get encryption usable and stable.

  • Not finding a way to rapidly progress and unblock bikesheddy things which aren’t on Element’s immediate radar (e.g. custom emoji, extensible profiles)

  • The fact that mainstream Matrix still isn’t here; while Matrix is going great guns for public sector stuff right now, the public federation is niche - neither D2C Element nor alts like Beeper or FluffyChat have taken over the world yet.

  • Not investing enough in metadata-protection from the outset. It was always on the radar (c.f. https://matrix.org/~matthew/2015-06-26%20Matrix%20Jardin%20Entropique.pdf) but we’re now in an awkward situation where antispam relies to some extent on being able to spot the spam. So it would have been way better to hide metadata before we got to that point.

  • Running late on Matrix 2.0 MSCs given lack of bandwidth, and prioritising implementation over spec.

  • Failing to get more of Matrix 2.0 into the hands of normal users (e.g. the whole "Element X" versus "Element" mess; either have fast or fully featured)

  • Failing to raise more non-profit funding for the Foundation (so far); e.g. we still haven’t had a successful Sovereign Tech Fund application, which is largely my fault.

on the other hand, I think there's some stuff i've got right:

  • All the stuff we take for granted: a protocol that empirically is usable, and that a lot of people use successfully (especially to argue about how awful matrix is)

  • Thinking it was a good idea in the first place and making it happen

  • Managing to raise funding to get to where we are today (by raising $55M for Element and then routing most of that into Matrix)

  • Stubbornly chipping away introspecting and learning from and addressing the various places i’ve screwed up (e.g. huge progress in state resets this year, to be announced shortly)

  • Being transparent, like this

  • Setting up the MSC process (even if not perfect, in terms of off-focus MSCs getting stuck)

  • Prioritising product over protocol (at least at first) and implementation over spec, requiring proven implementations for MSCs to be considered

  • Setting up the Foundation

  • Finding a great Exec Dir

  • Building a (generally) enthusiastic community

  • Initiating stuff like The Matrix Conference to keep building that community/ecosystem

  • Advocating hard for Matrix in things like DMA, CRA, OSA, Digital Public Goods and other regulation

  • Continuously improving Matrix, even if not as fast as some would hope.

  • Getting Matrix 2.0 implementations out the door, showing that you can build Matrix apps which outperform the mainstream options.

  • Spiking stuff like Aurora to keep the bleeding edge advancing

  • Investing in matrix-rust-sdk as a solid reusable SDK rather than trying to build loads of per-platform SDKs (really wish we’d done it sooner, given the huge amounts of $ burnt doing everything in triplicate/quadruplicate).

  • My hope is that P2P Matrix will turn eventually out to be something I got right in the end; time will tell.

  • Empirically the public network continues to grow exponentially (30-day-retained users has doubled in the last 12 months).

Screenshot 2025-07-14 at 23 01 14

I’d say it’s net positive, and the story isn’t over yet, but who can say :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment