[Slightly naughty crosspost from
https://drewdevault.com/2015/11/01/Please-stop-using-slack.h...]
There are an increasing number of plausible FOSS alternatives to Slack out there like Zulip, Mattermost, LetsChat, RocketChat etc. Classic IRC simply doesn't compete in terms of the featureset, glossy clients and web-dev friendliness. However, most of the FOSS Slack clones miss one vital point: they just provide a random custom API to their clients which may not even be published. Despite being FOSS software they're not actually promoting Open Communication - they are just building yet more silos that fragment your conversation history and contacts/contactability even further. If you want to pick your own client, or pick your own server, or interoperate with other comms networks (other than naive bridging), you're generally out of luck.
This is why I personally believe it's vital to support open standards for communication like Matrix.org or XMPP or IRCv3, and build glossy clients and services on top, so that rather than being locked into a single server & client from any given project, we retain the freedom to pick the clients, servers, services and service providers that we want rather than being forced into using particular ones for particular communities. A good start would be for the Zulips and Mattermosts of this world to federate with Matrix or XMPP out of the box, even at the lowest-common-denominator functionality set, to support open communication rather than causing yet more fragmentation.
[Disclaimer: I work on Matrix.org]