# Owncast–IRC Bridge: Brainstorm & Design Session **Date:** 2026-03-10 ## Task Design a bidirectional chat bridge between Owncast (`https://owncast.bowlafterbowl.com`) and IRC (`irc.zeronode.net` / `#BowlAfterBowl`). ## Decisions Made - **Language:** Rust - **Architecture:** Tokio async runtime with concurrent tasks (IRC, Webhook, WebSocket, Health Poller, Router, Control Socket) communicating via mpsc channels - **Owncast ingest:** Webhooks (primary) + WebSocket (fallback) - **Identity:** Prefixed messages — `[IRC] ` / `[OC] ` - **Extras:** Stream start/stop announcements in IRC, auto-reconnect with exponential backoff - **Owncast lifecycle:** Three-state model (Online, OfflineChatOpen, Unavailable) with health polling - **Runtime control:** Unix domain socket + `bridge-ctl` CLI tool - **Deployment:** Binary + Dockerfile (multi-stage) ## Files Created - `docs/plans/2026-03-10-owncast-irc-bridge-design.md` — Full design document - `docs/plans/2026-03-10-owncast-irc-bridge-impl.md` — 15-task implementation plan ## Follow-up - Open a new session and execute the implementation plan using `superpowers:executing-plans` skill - Plan file: `docs/plans/2026-03-10-owncast-irc-bridge-impl.md`