Skip to content
portfolio/foundry
TEAM CHAT PLATFORM

Foundry

A self-hosted team chat platform in Rust - its own graph engine, git as the store, no database.

Foundry is a self-hosted team chat platform - organizations, channels, and real-time messaging - built in Rust on its own in-memory property-graph engine, with git as the durable store and no traditional database. Everything is event-sourced: an append-only log and periodic snapshots are committed and pushed to GitHub for offsite backup and restore-by-clone. Video, voice, and screen sharing run on an embedded pure-Rust WebRTC SFU, and the desktop app is a cross-platform Tauri v2 + React client.

6Rust crates
0databases
WebRTCcalls + screen
RustaxumTokioWebSocketsWebRTC SFUWHIP/WHEPgitargon2idTauri v2ReactTypeScriptVite

In-Memory Graph Engine

A hand-built property-graph engine - labelled nodes, typed directed edges, id/label indexes, and a traversal API - is the authoritative runtime source of truth. No traditional database.

Git-Backed Event Store

Fully event-sourced: every mutation appends to an events.ndjson log the instant it happens, then snapshots are git-committed and pushed to GitHub for offsite backup - with restore-by-clone on a fresh boot.

Real-Time Messaging

Organizations, channels, users, and messages over WebSockets with per-org scoped delivery, plus content-addressed file attachments - images inline, other files as downloads.

Orgs & Access Control

Multi-org with admin settings, roles, ownership transfer, and invite codes; per-channel access by role/group, invisible channels, and request-to-join - all enforced server-side.

Embedded Rust SFU

Video, voice, and screen sharing over a pure-Rust WebRTC SFU (webrtc-rs) embedded in the binary, speaking the IETF WHIP/WHEP standard and forwarding RTP - it never transcodes.

Calls at Any Scope

Direct, group, and channel huddles with ring / accept / decline, simultaneous screen shares, ephemeral call tokens, coturn TURN credentials, and event-sourced call records.

Auth & Security

Argon2id password hashing, stateless HMAC-signed session tokens, GitHub OAuth device-flow backup, and optional TLS (HTTPS/WSS) with hot-reloading certificates.

Single-Port Deploy

Messaging, API, uploads, and call signaling all ride one port (the SFU mounts at /sfu); call media flows over a fixed, firewall-friendly UDP range.

Tauri Desktop Client

A cross-platform Tauri v2 + React + TypeScript app with a typed WebSocket client and runtime server config - one build targets any server; macOS, Windows, and Linux installers are built in CI.

Rich Link Previews

The sender resolves OpenGraph cards and inline YouTube / Vimeo / image embeds and shares them with the message; links open in the system browser.