Inspiration A viewer shouldn’t lose their voice in a community because the moderators don’t speak their language. Twitch communities bring together people from different countries, but moderators cannot understand every language, slang expression, or cultural reference. A harmless question can be overlooked or misunderstood. We built ChatBridge to help moderators understand a message before deciding how to respond. What it does ChatBridge is a Twitch-connected moderator dashboard with two core tools:

  • Translation: Translate a selected chat message into the moderator’s chosen language while keeping the original visible.
  • Context explanations: Inspect a message alongside nearby conversation for possible meaning, slang, ambiguity, and uncertainty. Moderators request AI assistance when they need it. ChatBridge does not automatically delete messages, issue timeouts, or ban viewers. How we built it Our four-person team split the work across backend integration, AI services, dashboard design, and integration testing.

We built a TypeScript monorepo with a React/Vite frontend, an Express backend, and shared API contracts. Twitch OAuth authenticates the broadcaster, EventSub receives chat messages, and Socket.IO delivers them to the dashboard.

The backend retrieves selected messages and bounded same-channel history before making AI requests. Credentials stay server-side.

For our final controlled demonstration, we use Groq-hosted openai/gpt-oss-120b for translation and context explanations. We also implemented optional Gemini, OpenAI, and local Ollama adapters during development.

We used OpenAI Codex throughout the build to scaffold the project, implement integrations, write tests, diagnose failures, resolve branch conflicts, and refine the responsive interface. We directed the product decisions and reviewed the resulting code and outputs. Challenges we faced Connecting separate contributions: Shared contracts and focused branches helped us combine four people’s work while preserving authentication and newer integration fixes.

Keeping Twitch connected: We traced repeated reconnections to a keepalive deadline race. A bounded grace period and regression tests addressed unnecessary reconnects while retaining detection of silent connections.

Finding a practical AI setup: We evaluated cloud and local options against cost, data handling, hardware, latency, and language quality. Small local models sometimes produced valid JSON but inaccurate translations or explanations. Those failures shaped our provider choice and evaluation process.

Making context useful: Early explanations sometimes paraphrased the wrong message or missed unresolved choices. We separated context-specific instructions, clarified the role of preceding messages, and tested new examples rather than hardcoding demonstration answers. What we learned A successful API response is not the same as a correct interpretation.

We learned to evaluate technical behavior and semantic quality separately. We also learned that uncertainty needs to be visible: an explanation should distinguish what the conversation establishes from what remains unknown.

Building with Codex helped us move quickly, but integration testing and human review remained essential. Accomplishments we’re proud of

  • Connected real Twitch chat to an authenticated dashboard.
  • Preserved original messages alongside translations.
  • Implemented translation and on-demand context through shared provider interfaces.
  • Added validation, caching, bounded requests, timeouts, and quota handling.
  • Built a responsive purple, black, and white interface.
  • Passed 120 automated tests, workspace typechecks, and production builds.
  • Documented unsuccessful evaluations as well as successful examples. Limitations and what’s next ChatBridge is a prototype. AI translations and explanations can be inaccurate, overstate ambiguity, or introduce unsupported interpretations. Our controlled evaluations do not establish broad language accuracy or production readiness.

The final demonstration uses team-authored synthetic messages sent through Twitch. Automatic translation remains disabled in that profile. Broader deployment requires further review of provider requirements, privacy handling, and real-world performance.

Next, we want to expand fluent-speaker evaluation, improve explanations of uncertainty, and test the workflow with moderators from multilingual communities.

Our goal is to help moderators make more informed decisions—and help more viewers feel understood.

+ 8 more
Share this project:

Updates

Submission history