Idiomdrottning’s homepage

Matrix and its bridges

Generally, people on Matrix can use its bridges to join rooms on other networks, even query individual people on that network. In other words, they can use Element or other Matrix clients as a fancy email client or a fancy IRC client or a fancy XMPP client. If they want to. Matrix users can join any room on Libera, for example.

What’s not as easy is vice versa, and that kind of makes sense. It’s not as if every Matrix user out there just automatically should get stuck with an account on every other protocol ever, like an email account anyone could just spam to. Instead, it’s the Matrix side that can use bridges, like how the main Matrix server is bridged to Libera.

However, that was how I misinterpreted Matrix’ original pitch. “Don’t worry, you can still use all your old networks.” I was like “OK, great, I don’t need Matrix. I’ll just join the rooms from IRC or email.” That’s what sent me down a road of frustration. Instead, it’s “You can use Matrix to reach all your old networks.” They can join our rooms, not vice versa. (For email, by rooms I mean threads.)

What’s the problem? Just that that’s not a particularly unique feature. XMPP had gateways way back when, and Pidgin can do IRC or email just fine. For now, this isn’t a unique selling point for Matrix at all.

Instead, the purpose of Matrix is the room-oriented data structure (as opposed to how IRC and XMPP have message-oriented data). You preserve a chat, sort of like on Mattermost or Gitter, as opposed to display a chat temporarily pieced together from messages. (This room structure is a bad fit for video/audio, which is why it shells out to XMPP for that.)

TL;DR: I’m probably not gonna hop on Matrix any time soon but I’ll check in from time to time to see if any good-quality reverse bridges are created, as opposed to bridges from the Matrix side.

Reverse bridges I know of


A currently pretty minimal IRC bridge. Aimed to support encryption. Maybe the best starting point for future hacking efforts.


An IRC bridge written in Elixir. Open ticket for future encryption support (maybe through libolm or Pantalaimon).

matterircd — addmatrix branch.

A branch that was never merged into to main.

Matrix IRCd.

An older IRC server that connects to Matrix. Not sure if ready for production. Apparently obsoleted in favor of matrirc.


A Prosody plugin. Unfinished sketch/prototype.


A libpurple plugin in alpha state. No OLM encryption.


A double-puppeteer between a synapse server and a jabber server. You can’t operate the bridge from the jabber side yet.

Let me know if there are more.