Recently I accidentally made a Fediverse post which went viral:

stop using discord for your open source communities

That post is short, punchy, opinionated, and prescriptive, which I suspect is the cause for its virality.

Unfortunately, like many micro-blog posts, it lacks nuance, which many replies highlighted. I made the post to vent my frustration at needing to join a Discord server to interact with a community, so it is far from a measured critique of the subject.

This blog post is an attempt to address those nuances in greater detail. This is not an exhaustive analysis, and I’ve resolved to not let “perfect” be the enemy of “done”.

  • I’d love to switch from discord to something like Matrix, but the reality is that Matrix clients aren’t really ready for mass distribution, and it’s going to be hard to get people to adopt it or anything similar if there’s no overlap with discord.

    What we really need is an independent discord client that also supports another protocol. That way you can ease people out of their dependence on discord a little at a time. Offer a couple of neat features with a stable interface and integration with another client and people will take notice. Once you’ve got their attention, make the new protocol more appealing than the old one.

    Would you rather be on the client that lets you access one stagnant communication network, or the one that lets you access both the old network and something that offers features for free that the previous network charges for?

    At the moment, though, the alternatives aren’t there. I tried changing a theme in Element last night and the UI broke so badly that it took me about 20 minutes of struggling with giant auto-scrolling screen-sized icon buttons to find my way back to a broken version of a menu where I could switch back. I managed, and I think the client looks sleek and beautiful when it isn’t broken, but it’s not exactly a user friendly experience at this point.

    So no. Not yet. But I hope there’s a viable alternative some day soon.