Matrix, Mattermost, Rocket.Chat, and that's just off the top of my head. All three are free (as in speech) and aren't terribly hard to set up on-premise or spin up a container for somewhere else.
I like Slack a lot except for the fact that it's a sluggish web app hidden away in a native window. I understand it gives them a lot of freedom to change things constantly, but what I would really want is a proper native app.