Looked around for a while now, these are the alternatives I found.
- Zulip: More like a Slack alternative for an organization/team/group, can be self hosted, seems to be pretty mature and well made. Has good client apps. No screen sharing/voice chat.
- Stoat: Seems to be mostly similar to Discord, doesn't seem mature though, self hosting documentation doesn't seem refined, could be okay if you use their server, not sure about mobile apps
- Spacebar: 1:1 Discord clone, voice chat features seem to be incomplete but seems pretty good otherwise, I tried to install their server but it doesn't run for me..
- Matrix: Feature complete, but kinda buggy, may work well enough for some but my friends complained for poor UX
- Mattermost: Gotta self host or pay, there seems to be some weird limitation: https://news.ycombinator.com/item?id=46861331 and https://news.ycombinator.com/item?id=46594673
- IRC: maybe not for non-techies, but IRCv3 has some "modern" features and Goguma(Android)/TheLounge(Web) looks quite decent
- XMPP: Seems like it should be good, but I'm having trouble setting it up so can't tell
- Tailchat: UI looks just like Discord, but I just heard of it now so haven't tried