3-minute demo: https://www.youtube.com/watch?v=1Tc_oZq25qw

30-second promo: https://www.youtube.com/watch?v=xg2sgLNiB9g

Inspiration

Twitch's Shared Chat feature is a game-changer for streamer collaborations with live community involvement. The authors of this project have implemented Shared Chat support in a leading library to interact with Twitch's API (twitch4j) and have added Shared Chat support to a popular third-party chat client that is often used by "power-mods" (Chatterino).

When moderating channels using Shared Chat, we found ourselves wanting a convenient interface to review shared bans and timeouts, since these actions are automatically lifted at the end of Shared Chat sessions. See https://link.twitch.tv/SharedChatMod for the official, complicated table that explains the intricacies of moderating shared chats.

What it does

Our project displays messages from users that were banned or timed-out by other channels within a Shared Chat session. Moderators can then decide whether to reinstate these moderation decisions to boost long-term channel safety (otherwise these potentially problematic users would be able to participate in chat again).

Streamers can also create content using the pool while democratizing moderation decisions via the built-in poll functionality, similar to "unban request" streams that are already popular like https://www.youtube.com/watch?v=WcJ1PaJ5010

How we built it

We utilize Twitch's EventSub Conduit transport (via twitch4j) to obtain real-time events such as chat messages and moderation actions. This data is stored in a SQL database hosted with Cloudflare, and a Cloudflare Worker is used to surface a REST API to access this data for the frontend. The frontend is built using React/Radix/TanStack/TailwindCSS/Vite, and renders relevant data for moderators while utilizing Twitch's Helix API to perform additional moderation actions.

What's next for Shared Chat Mod Helper

We plan to expand the project to cover other common use cases moderators encounter when managing Shared Chat sessions, including real-time tooling. For example, blocked terms and diverging automod settings do not apply to shared messages, so we plan to provide moderators more automation for handling messages that may otherwise not be permitted within the local channel.

Built With

Share this project:

Updates