Self-hosted Slack alternative: keep your whole chat history with Mattermost

Team chat is where a company's real memory lives -- the decisions, the context, the half-finished threads you search six months later. Slack knows this, which is why the free tier quietly hides everything older than 90 days and the paid tiers bill you per person, every month, forever. Your conversations become a subscription you can't cancel without losing them. Mattermost does it the other way: the same channels, DMs, and integrations, running on a server you own, with your history staying yours. Not the last 90 days of it -- all of it.
What Mattermost is
Mattermost is a full, open-source team messaging platform, not a stripped-down clone. The server is genuinely complete: public and private channels, direct and group messages, threaded replies, file sharing, emoji reactions, and search across every message you've ever sent. Where Slack's free plan caps history at 90 days and limits integrations, Mattermost's free Team Edition gives you unlimited history and unlimited webhooks and bots out of the box, because there's no upstream vendor rationing your own data. And if you're coming from Slack, Mattermost imports your Slack export, so you don't start from an empty workspace looking at the last three months you happened to keep.
It's built for teams that take chat seriously -- software teams, ops crews, anyone coordinating work across time zones. It speaks Markdown, renders syntax-highlighted code blocks, and ships native desktop and mobile apps alongside the web client. The difference isn't the feature list; it's who holds the keys.
The features that actually matter
- Channels, DMs, and threaded conversations — Organize by topic in public or private channels, message people directly or in small groups, and keep side-discussions in threads instead of drowning the main flow.
- Unlimited, searchable history — Every message stays, and full-text search reaches all of it. This is the one thing Slack's free tier takes away at 90 days and charges you to get back.
- 1:1 calls and screen sharing — Built-in Calls gives you one-on-one audio with screen sharing straight from a DM, no third-party tool required -- handy for a quick pairing session or a "let me show you." Group calls and video are a paid Mattermost tier, so a whole-team huddle isn't in the free edition; worth knowing before you count on it.
- Webhooks, slash commands, and bots — Incoming and outgoing webhooks, custom slash commands, bot accounts, and a plugin framework wire Mattermost to CI, monitoring, and anything with an API. Slack meters integrations on its free plan; Mattermost doesn't.
- Notifications and a sidebar you control — Per-channel notification levels, keyword alerts, mute, plus saved and pinned posts and sidebar categories you group yourself, so a busy server stays readable instead of turning into a firehose.
- Markdown, code, and file sharing — Real Markdown formatting, syntax-highlighted code blocks, and drag-and-drop attachments make it comfortable for technical teams specifically.
- Native apps and a full REST API — Desktop clients for Windows, macOS, and Linux, mobile apps for iOS and Android, plus a documented REST API and personal access tokens for building your own tooling.
Why self-host it instead of the hosted version
Three reasons.
Your data stays on your server. Team chat is the most sensitive record a company keeps -- salaries, incidents, customer names, the honest version of every decision. Self-hosted, that history sits in a database you control, not on a vendor's servers subject to their retention windows, their analytics, and their legal process.
The bill doesn't scale per seat. Slack charges per active user, every month, and the price only climbs as you grow. Mattermost's Team Edition is free software; a managed instance costs the same whether you have eight people or eighty. Adding a teammate is a click, not another line item.
You control the whole thing. Your logo, your URL, your retention policy, your integrations, your upgrade schedule. Nobody deprecates a feature you depend on, sunsets your workspace, or changes the terms under you between one login and the next. If you want something that doesn't exist yet, the API is open and the server is yours to extend.
Who it's for
- Software and DevOps teams who want chat that speaks Markdown and code, and wires into CI and alerting through webhooks so build failures and monitoring alerts land in the same channel the work happens.
- Privacy-sensitive organizations -- legal, healthcare, finance, government contractors -- who can't put internal conversations on someone else's cloud and need the data on infrastructure they control.
- Growing teams tired of per-seat pricing who've watched their Slack bill climb with every hire and want the same daily experience without paying more each time the team grows.
The honest setup notes
Running Mattermost yourself is real work. It wants a PostgreSQL database, and that database is your entire history -- so you own the backups, and an untested backup is not a backup. Upgrades ship regularly and you apply them; skip too many and the jump gets harder. Email notifications, password resets, and invites all need working SMTP, which you configure and keep deliverable. It wants a reverse proxy in front terminating TLS, so certificate renewals become one more thing on your list. It's more resource-hungry than a toy chat app -- a real server with room for the app, the database, and file storage, and more of each as your team and history grow. Even 1:1 calls need a UDP port open and reachable to connect.
None of that is hard, exactly. It's just ongoing, and it's all yours. Or let us run it: we handle the database, the backups, the SMTP, the upgrades, and the ports, and you get a Mattermost that simply works.
Deploy it in one click
Rolling your own means provisioning a server, installing PostgreSQL, configuring the Mattermost server, wiring up SMTP, opening the port calls need, setting up a reverse proxy with TLS, and then owning every upgrade and backup after that. It's a weekend to get right and a standing chore to keep right.
On Caliber Node, you deploy Mattermost in one click and it's running in a few minutes -- database, storage, TLS, and mail handled, with the resources it needs already provisioned. You get a real instance at your own subdomain, not a sandbox: full admin, your own users, your own integrations. Coming from Slack, you can import your export into it and bring the old conversations along instead of leaving them behind. When an update lands, it's managed. When you need your data, it's exportable.
First run
- Create your admin account. The first user to sign in becomes the system administrator -- that's you. Set a strong password.
- Name your team and create a channel. Set up your first team, then make a channel like `general` or `incidents` to give conversations a home.
- Invite your people. Send invite links or add teammates by email, and set which channels they land in.
- Wire in one integration. Add an incoming webhook and point a build, a monitor, or a cron job at it so real events show up in chat.
- Try a call. Open a DM, hit the call button, and share your screen -- your first face-to-face without a single third-party tool.
The bigger picture
Chat is the one tool a team lives inside all day, and it slowly becomes the record of everything you've built together. Renting that record from a vendor who paywalls your own past and bills you per head is a strange bargain once you look at it directly. Owning it -- history, integrations, and all -- is the saner default, and it's finally easy enough that there's no real reason not to.
Deploy Mattermost in a few minutes →
Or browse the full app catalog.
One-click self-hosted apps, managed for you -- real logs, SFTP, and your data always exportable. Never a black box.