I would argue that the audience for Mattermost, Slack, and Zulip are pretty different from Discord.

what would be a good stack to replace discord?

teamspeak + signal(desktop client) + ???

To be a real discord replacement it needs to not be a stack. It also needs to use the server/channel model discord does, rather than rooms like signal or matrix.
Stoat or Fluxor do just that.