We’ve been using Discord at BTC Map for quite a while, but it was never smooth sailing. The first time I tried to set up an account, it was immediately blocked. This could have been due to a Russian phone number, a Linux user agent, or both. There was no appeal and no explanation. It worked the second time with a Thai phone number and the official Android app, but it became pretty clear that we needed to migrate to something better in the long run.
The second irritant arrived recently when Discord decided to enforce some questionable age verification laws. BTC Map is all about defying KYC, so this kind of development was totally unacceptable, and we started researching alternatives.
Matrix was my favorite, and most people on the team also liked it. None of us had any serious experience with it, so it was a bit of a leap of faith. We’ve already partially migrated, and I must say it’s a pretty cool thing.
Although we signed up for a public server, the Matrix protocol doesn’t have a deplatforming risk, since we can self-host if we need to. Having such an option is crucial, but it doesn’t mean it should be used by default. I’m currently the only ops person and I simply don’t have the time to self-host and maintain all the services we rely on. I also don’t think BTC Map is controversial enough to worry about being deplatformed from a public server that hosts many other FOSS projects.
Aside from deplatforming risk mitigation, Matrix also supports E2E encryption, which is a pretty big deal for a growing project dabbling in donations and some stealth/surprise campaigns like the Square integration.
Finally, Matrix provides a robust bot/automation API. Working with the Matrix SDK is much more pleasant than being limited by Discord’s webhooks.