Channels, direct messages, file sharing, search. The Slack alternative that doesn't send your team's conversations to a SaaS. No per-seat pricing, no message history limits.
Every operation in Saloon is available through a JSON REST API. No SDK required — use curl, fetch, or any HTTP client.
GET /api/channels — list all channels with optional search and filter query parametersPOST /api/channels — create a new channel recordGET /api/channels/{id} — retrieve a single channel by IDPUT /api/channels/{id} — update an existing channelDELETE /api/channels/{id} — remove a channelGET /api/stats — aggregated statistics with status breakdownGET /api/health — health check endpoint for monitoringThe overhead of managing channels tends to grow quietly until someone asks why the team is paying four different subscriptions for overlapping features. Saloon replaces that stack with a single process that starts in under a second.
A freelance consultant keeps Saloon running on a home server. Client channels stay on local disk, which simplifies the privacy section of every contract. The search endpoint powers a custom dashboard built with a static site generator. Total infrastructure cost: the electricity to run a Raspberry Pi.
The dashboard opens at /ui and gives you a search bar, status filters, and a create form. Double-click any channel to edit it inline. Behind the dashboard, every operation maps to a REST endpoint under /api/channels. Responses are JSON. Authentication is handled at the network level — put Saloon behind your VPN or reverse proxy, and it serves requests to whoever can reach it.
GET /api/channels — List all channels. Supports ?q=keyword for search and ?status=value for filteringPOST /api/channels — Create a new channel. Send JSON with at least nameGET /api/channels/{id} — Fetch one channel by IDPUT /api/channels/{id} — Update fields on an existing channelDELETE /api/channels/{id} — Remove a channelGET /api/stats — Returns total count and breakdown by statusGET /api/health — Returns {"status":"ok"} for uptime monitoringSelf-hosted team chat. Self-hosted on your infrastructure. Your data never leaves your server.
curl -fsSL https://stockyard.dev/install.sh | sh -s -- --tool saloon
PORT=8790 ./saloon
http://localhost:8790
Single binary. Embedded SQLite. No Docker. No database. No dependencies.
Your license key arrives by email within 5 minutes of checkout. Set it as an environment variable and restart the binary.
export SALOON_LICENSE_KEY=stockyard_xxxxxxxxxxxxxxxxxxxx ./saloon
No cloud connectivity required. The binary validates the key offline with Ed25519 signatures.