Your team chat. Your server. Your data.
A self-hosted, Slack-like platform for team chat, calls and screen sharing. Real-time messaging and video over its own pure-Rust SFU, on a custom in-memory graph engine that persists snapshots to disk. One binary, no external database; Git is used only for offsite backup.
# install the server (published release binary)
curl -fsSL https://devforge.io/foundry/install.sh | sh
# scaffold a production config: one public :443 + media UDP range
sudo foundry init
sudo foundry start# point at your TLS certs (hot-reloaded on renewal)
FOUNDRY_TLS_CERT=/etc/foundry/tls.crt
FOUNDRY_TLS_KEY=/etc/foundry/tls.key
# open the firewall (Ubuntu ufw)
sudo ufw allow 443/tcp # messaging, API, uploads, signaling
sudo ufw allow 16384:32768/udp # call media (SFU RTP/SRTP)
sudo ufw allow 3478:3479/udp # STUN/TURN (coturn) for NAT# download the installer for your OS from the releases page
# macOS .dmg Windows .msi/.exe
# then point it at your server (no rebuild needed):
# macOS ~/Library/Application Support/io.devforge.foundry/config.json
{ "server": "https://foundry.example.com" }Everything you need, batteries included.
Foundry gives teams Slack-style chat, calls and screen sharing without their conversations, files and identities living in someone else's cloud. Data lives in a custom in-memory graph engine that is the runtime source of truth; every change is appended to disk the instant it happens, so a crash loses nothing, and periodic snapshots are written to disk and read straight back on boot. Git is used only for backup: each snapshot is committed for a rollback history and pushed to a remote for an offsite copy, with restore-by-clone on a fresh boot. It is event-sourced end to end, so live state and recovered state are identical by construction, and it installs as a single self-hosted binary.
Organizations, channels & messaging
Multiple orgs per instance, each with its own channels and members. Messages round-trip over a single authenticated WebSocket, delivered only to that org's members. New orgs are invite-only by default.
Video, voice & screen sharing
An embedded, pure-Rust SFU (WHIP/WHEP) forwards calls at direct, group or channel scope, with ring, accept and decline. Several people can share their screen at once, each share can carry its own audio, and quality adapts to each viewer's connection.
Channel access control & groups
Restrict a channel by role, by named groups or by explicit membership; make it visible-but-locked or invisible; approve request-to-join. Calls are off by default per channel. All enforced server-side.
Git-backed backup & restore
Snapshots are committed and pushed to a GitHub remote (env config or in-app Sign in with GitHub); a fresh boot with no local data restores the whole instance by cloning the remote.
Link previews & attachments
Links unfurl as sender-resolved OpenGraph cards with inline YouTube, Vimeo and image embeds. File attachments are content-addressed, stored once, and images render inline.
Server & desktop client
Self-host the server binary (a start/stop/status daemon; foundry init scaffolds a production :443 config with HTTPS/WSS hot-reloading certs, a media UDP range and coturn for NAT). The desktop client is a normal download you point at your server. Argon2id passwords, stateless HMAC sessions.
Foundry in your pocket, coming soon.
Native iOS and Android clients are being forged: the same channels, calls and screen shares, pointed at the server you already run. Nothing extra to host, and nothing leaves your instance.
Coming soon
