It's great to see 3/4 of the options are open source! Whatever happens, I really hope the community get behind the open source options and don't let more things get eaten up by commercial silos cough slack cough.

I'm partial towards Matrix/Riot.im - the progress made on those projects is awesome and they really have a highly usable product, with bonuses such as e2e encryption and federation.

> they really have a highly usable product

Setting up a Matrix server is a lot harder than you might think, especially when you start talking about federation and identity management.

The mxisd[1] project has recently disbanded due to what I believe to be philosophical differences with the Matrix maintainers vision of identity management.

I like a lot of things about Riot/Synapse, but I would suggest you try setting up your own Matrix server if you haven't yet. It's not what I would call highly usable.

Mind you, I have only tried setting up the reference implementation (Synapse/Riot). I would be interested in seeing a write-up/comparison done by Mozilla as part of these trials.

[1] https://github.com/kamax-matrix/mxisd

It was pretty straight forward to install/set up? There are some requirements to be able to federate, namely having a domain and associated certs for encryption, but otherwise nothing stood out as overtly obtuse/difficult.

You have to either make a venv for a binary or just install a package, then reverse proxy 2 ports from your http daemon, and finally also hook things up to your Postgres database. After all that it's just a matter of configuring your homeserver's config (which is large, but you can easily get support via the community for any poorly documented options)

The documentation could definitely be improved, though.

If you don't mind Docker, I success this ansible playbook: https://github.com/spantaleev/matrix-docker-ansible-deploy

Great documentation and sane defaults. I have only 6 lines of custom config.