I just set up Conduit, a Matrix homeserver, for use in the household to replace our reliance on Discord, and so far it’s been pretty neat!

My wife has been wanting to not depend on having Discord open all the time, which is difficult, because we both are usually at our desks all day and want to stay in touch, but dislike the idea of always needing to have that chat program up and running. In addition, we both would like to have a more convenient way to share links and files with eachother, and sometimes the kind of data we want to share is personal, which should make anyone a little wary of using a third party service for that.

I evaluated a few different directions to go down - Matrix, XMPP, and Mattermost. There was something quite nostalgic about setting up an XMPP server and having an old school IM experience that tickled the elder millennial in me, but when evaluating the client experience, I was finding that the nostalgia would likely wear off quickly.

Mattermost is a product I’ve been personally interested in for a while now, but I haven’t really been keen on how they’ve been clawing back features from the community product for the enterprise product. I’m not opposed to this in general, especially in a professional setting, but for a home service, I’m willing to trade a little bit of convenience for the ability to add features.

Matrix as a protocol is something I have a bit of experience with - I was heavily considering running Synapse as the chat backend for Altair, the streaming service I worked on during the Quarantine Days, but we discovered that the overhead of Matrix and the likelihood that we’d need to fork Synapse and maintain significant changes didn’t really make it a good fit for the product. That said, the options for Matrix home servers and the protocol itself have changed in the years since then, and of the options available, Conduit seemed like a great option.

Setting up Conduit is infinitely less complex than setting up Synapse (which provides its own Ansible playbook for setting up the server). The documentation is a little out of date if you decide to run the “next” branch, but the setup is pretty straightforward, and my in-house (hah) deployment tooling made managing both config and deployment a breeze. And at 70 MB of RAM usage (admittedly with just my user connected right now), I gotta say I’m pretty pleased with the footprint.

I’ll do a follow up post in a few weeks with an update on how we like it, whether we stick with it or try out something else.