Synchronous Messaging at Mozilla: The Decision

You can scroll down to the punchline if you like, but I want to start by thanking the Mozilla community, contributors, industry partners and colleagues alike, for the work everyone has put into this. Hundreds of invested people have weighed in on our hard requirements, nice-to-haves and long term goals, and tested our candidates with an eye not just to our immediate technical and community needs but to Mozilla’s mission, our tools as an expression of our values and a vision of a better future. Having so many people show up and give a damn has a rewarding, inspiring experience, and I’m grateful for the trust and patience everyone involved has shown us in helping us get this over the line.

We knew from the beginning that this was going to be a hard process; that it had to be not just transparent but open, not just legitimate but seen to be legitimate, that we had to meet our hard operational requirements while staying true to our values in the process. Today, after almost a year of research, consulting, gathering requirements, testing candidate stacks and distilling everything we’ve learned in the process down to the essentials, I think we’ve accomplished that.

I am delighted and honored to say that we have one candidate that unambiguously meets our institutional and operational needs: we have decided to replace IRC with Riot/Matrix, hosted by Modular.IM.

While all of the candidates proved to be excellent team collaboration and communication tools, Riot/Matrix has distinguished itself as an excellent open community collaboration tool, with robust support for accessibility and community safety that offers more agency and autonomy to the participants, teams and communities that make up Mozilla.

Community Safety

That Matrix gives individual community members effective tools for both reporting violations of Mozilla’s Community Participation Guidelines (“CPG”) and securing their own safety weighed heavily in our decision-making. While all of the candidates offered robust, mature APIs that would meet the needs of our developer, infrastructure and developer productivity teams, Riot/Matrix was the only candidate that included CPG reporting and enforcement tooling as a standard part of their offering, offering individual users the opportunity to raise their own shields on their own terms as well as supporting the general health and safety of the community.


Riot/Matrix was also the preferred choice of our accessibility team. Mozilla is committed to building a company, a community and a web without second class citizens, and from the beginning the accessibility team’s endorsement was a hard requirement for this process.

Speaking personally, it is an enormous relief that we weren’t forced to make “pick-two” sort of choice between community safety, developer support and accessibility, and it is a testament to the hard work the Matrix team has done that we can have all three.

Next Steps

Now that we’ve made our decision and formalized our relationship with the Modular.IM team, we’ll be standing up the new service in January. Soon after that we’ll start migrating tooling and forums over to the new system, and as previously mentioned no later than March of next year, we’ll shut down

We’ll have a wider announcement out shortly, but I wanted you to hear it first. Thank you all for your help getting us here; I’m looking forward to seeing you on the new system.

  • mhoye

Thanks @mhoye for the update!

First I want to appreciate your role leading this project and transition, it’s a tremendous effort to get everyone in the same page and run something like this, thanks so much.

Second, I’m super exited about the new tool and really looking forward to use it and see communities and team adopting it.

I believe it will provide our communities, teams and volunteers huge value, a modern messaging tool that enables a safe space for everyone, everywhere.


Update: It seems the team over Matrix is as well exited about this :smiley:


That is awesome news - the fact that we have a decision as much as the process that was followed and it’s openness (many, many thanks to @mhoye for that) as well as the result being a piece of FLOSS that can still fulfill all the criteria that were set. This is IMHO a huge victory for the open source movement (which Mozilla helped to grow in its infancy 20+ years ago) as the closed-source options were definitely tempting, even more with a lot of Mozilla being on Slack right now.
I’m looking forward to participating more in the real-time channels again one this fully launches (as my personal Slack policy is to only use it when I have to)! :smiley:


This is awesome! Riot is the 21st century IRC.


Really good to hear you went for matrix. I’ve been using it for close to a year now and love the technology so far.

I was a little surprised to read on the blog that the Mozilla instance will be federated (at least partially). If that is true, this is even cooler - I didn’t expect a federated instance from Mozilla.


Will there be an option for those of us who prefer IRC? For example, an IRC bridge to this new web-based service?

1 Like

Hi @mhoye,

thanks for leading the immensely important infrastructural effort for Mozilla’s communities. Your collaboration style including consultation, alignment, decision-taking, and broad & deep listening stands unrivaled.

This decision will most likely impact generations of Mozillians to come. Thank you for handling it the way you did.

I am looking forward to signing up to the new service in January.



The Matrix blog post mentions one:

It’s also worth noting that even though Moznet is being turned off, matrix-ircd exists as a very promising project that exposes any Matrix homeserver as an ircd - so for all you IRC die-hards, Moznet can absolutely live on in the afterlife!


Nice. I do hope we’ll have something like that available, so that those of us who prefer IRC don’t have to use the web-based stuff. It’s unfortunate that a change from such a simple protocol has to take place simply because a few people had issues using IRC modes for moderation, but I guess that’s the way things are headed these days. The times sure are changing.

I fear you might be slightly connfused. Matrix is no more web-based than IRC is. Riot is a web-based Matrix client, same as Mibbit is to IRC.

Though most are in an alpha/beta state, there are a lot more Mtrix clients than this one. Here is a partial list.


The Matrix protocol is based on HTTP requests. IRC is a simple TCP protocol, so simple that you can literally connect to an IRC server using netcat, if you don’t mind sending PONGs manually every now and then.

Purely out of curiosity, do we expect our Slack workspace to be shut down as we transition to Matrix? I could be wrong, but I suspect that many people would be tempted to keep using it unless we officially shut it down.

Great decision! As I said in my feedback, Matrix might not be perfect right now, but it has a ton of potential. Thanks for all the work y’all have put into this.


My understanding is that the internal staff slack is not part of this plan, so no expected changed there.

Which is somewhat sad as it means that employee chat and volunteer chat will stay segregated (at least for now), but let’s see how that develops in the longer run. Hopefully more and more stuff will move to Matrix over time and we’ll have a common and FLOSS setup for sync chat across Mozilla.


I suspect, and hope, that any employee and project that engages with contributors will have a place at Mozilla’s Matrix, which should avoid any communication gaps.


Same. I thought the goal was to make FxA mandatory to anyone who wants to join the server. @mhoye can you confirm the server will be federated or not?


Smart decision. Thanks, folks.

Reactions in Reddit:

For users of the web interface to Riot:

Matrix-Static (debatably the most lightweight web client – read-only) is described as stable but I often find it down, or not working as expected.

Both of these lead to an error, I don’t know whether it’s expected (maybe some tightening of security) or a bug:


Matrix Static - Alias ERROR

Unable to Join Room.

This Room does not exist or does not permit guests to access it.

The second is somewhat peculiar because on the IRC side, there’s a public log e.g.

There’s no way to know if a logbot’s in an IRC channel from the matrix side though. In general, the moznet rooms are all set up with the same minimal rights as far as I know on the matrix side. So this seems like an accurate error.

1 Like


Yep, I just found e.g.!$ working as expected. Thanks :+1:

Hopefully no more extended down-times …