A major issue is security concerns, especially when it comes to discussing IP. Since Slack hosts your workspace on their own servers, you can’t be entirely certain that it’s locked down. Slack is very secure, and the Enterprise Grid tier includes tools for working with IP, but some companies would prefer to host an internal solution.
Intranets are very common among corporations that want to protect their IP. If your business has a private network, you may want the chat to be entirely internal, and not accessible when your employees are at home. You can’t do that with a cloud-based app like Slack.
Hosting apps internally doesn’t automatically make them more secure—your business’s network needs to be secure too—but it puts the responsibility on you (rather than on Slack, in this case). If you’re hosting your workspace on a cloud provider like AWS, it’s not owned entirely by you, but you still have more control over it than you would. For example, you can still lock access down to specific IP addresses, or put the whole thing behind a VPN.
Price is a huge factor, and this depends entirely on how big your company is. Slack has a free tier, but you’re limited to 10k messages stored across the workspace, so it’s not ideal for larger teams. Their standard plan costs $6-8 per user, depending on whether or not you pay the year upfront, which can easily scale into hundreds of dollars as you add more people.
While open source may seem free, there’s a hidden cost in the hosting. You’ll have to maintain a server, which costs money, and will scale up as you add more users. If you want to store a lot of messages and file uploads, you’ll need the space for that. You’ll also need someone to fix it if something goes wrong, and someone to set it all up for you.
But, you’ll be paying much less per user than a hosted service like Slack charges, especially for their enterprise plans. So there’s a break-even point somewhere, after which the cost of hosting and maintenance starts to justify itself, but whether or not it’s a good option for your business depends on how much your hosting costs and how easily you can manage a chat server.
If you’re used to Slack, Rocket Chat should be easy to use. It supports message threading, but prefers you use a feature called “Discussions,” which work like temporary channels split off from the parent. Everyone in the channel will be notified when a discussion starts and can join in.
The app itself also bears a resemblance to Slack, with the dark sidebar listing out channels and direct messages. It also includes video conference calling, with screen sharing and guest access.
You can have Rocket Chat hosted for you (just like Slack), but since it’s open source, you can take the latest release and install it on your own server. If you need to make changes, you have access to the source code, and can modify it to suit your needs.
The Rocket Chat mobile app is also open source. You can install the official builds from your mobile store, but if your company wants to make any changes, you can roll out sideloaded builds to your employees, signed with your company’s developer certificate.
Mattermost is an app built with business in mind. It’s focused on corporate compliance, and it should meet the security requirements of your company. After all, it’s used by the US Federal Reserve System and NASA. You can have it hosted in the cloud, or deployed on-premises.
Mattermost also integrates well with DevOps tools. They’re partnered with Atlassian to bring Jira and BitBucket integrations to the platform, and also supports other tools like Jenkins, GitLab, and Github.
Functionally, Mattermost is a lot like Slack, sporting a similar sidebar design with channels and direct messages, and supporting threading on individual messages. They don’t support any kind of conference calling, but there are integrations available for services like Skype. They also have a mobile client, which is open source as well.
The Matrix protocol is an open source standard for real-time messaging, upon which apps can be built to send messages with. It’s very similar to IRC in that regard; users can use any client they prefer, even going so far as to connect different services over “bridge integrations.” It’s also decentralized, allowing for multiple servers to host your workspace.
Riot is built on top of the Matrix protocol, and functions similarly to other hosted options. They have desktop and mobile apps, but you can also use their hosted web app, similar to Electron based apps (like Slack). You’re still responsible for hosting the workspace on your own server.
It’s low tech, but if you just need simple instant messaging, hosting a regular IRC chat using a server like InspIRCd may work for you. But IRC isn’t a great protocol for getting work done (no searchable message history, no offline messages, etc.), and isn’t particularly secure.