All products
TEAM CHAT & VIDEO

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.

v0.1 · BetaBuilt in RustSelf-hostable
# 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" }
Self-hosted server: one binary, one public port + a media UDP range
Desktop client for macOS and Windows, pointed at your server
Video, voice and screen sharing over its own pure-Rust SFU
Custom in-memory graph engine; snapshots on disk, Git for backup
What's inside

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.

Mobile

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.

iOSDownload on the App StoreComing soon
AndroidGet it on Google PlayComing soon

The foundry, where a team is cast together.

Ready to build with Foundry?