FUNFAB · LET’S PLAY FAIR
Privacy Policy
Last updated: November 4, 2026
FunFab is operated by FunFab.io, a corporation ("we," "us"). This policy covers the FunFab website, the FunFab Twitch Extension, and our live stream games, and explains the separate data used by local play and earlier pilots. Contact team@funfab.io with questions or privacy requests.
Visiting The Website
The public website offers game information, local interactive examples, studio updates, and contact links. You do not need an account. When the website is deployed on Vercel, the hosting service receives ordinary connection information such as your IP address and requested URL to deliver and protect the site. Avoid putting private information into a page URL.
Optional Website Analytics
Analytics is off by default. If you allow it, we use PostHog to understand public page visits and fixed categories of interaction: interest in games, completed sample interactions, clicks to ask about hosting or joining the maker community, locally prepared contact drafts, community links, calendar downloads, podcast links, and audio or video playback starts. We also collect basic page performance measurements and limited error categories to improve the site.
We do not send contact messages, room codes, account identifiers, URL fragments, exception text, or session recordings through this analytics integration. The only URL query values we keep are campaign tags (utm_source, utm_medium, utm_campaign, utm_content, utm_term), which say which link a visit came from, such as Twitch or Substack; every other query value is discarded before anything is sent. We suppress analytics when a referrer could contain private information. PostHog processes analytics requests and associated technical connection information. We do not create PostHog person profiles or link website analytics to your Twitch or FunFab identity. A random visit identifier is stored in this tab’s session storage after permission, renewed after 30 minutes of inactivity, and removed when you turn analytics off. It helps connect page visits and actions within a visit; it is not an account identifier. This website does not use analytics to track you across websites.
Privacy Settings lets you allow or turn off analytics. We store the choice in your browser for 180 days; clearing site storage removes it. Global Privacy Control and Do Not Track signals keep analytics off. Withdrawing permission stops future analytics from this browser; it cannot retract requests already delivered.
Contact And Community Links
The contact form prepares an email draft on your device. Nothing is sent to us until you send that draft through your email service. We then receive your email address and the information you include, and use it to respond, investigate reports, or handle your request. Please leave out passwords, recovery credentials, and payment details.
Newsletter subscriptions happen on Substack. Streams open on Twitch. Published podcast episodes may link to another publisher. Those services have their own terms and privacy policies. We do not embed their subscription trackers or third-party page frames. Our website audio and video players connect to Substack and its media providers only when you press Play. These services receive your IP address and the media requests needed to deliver the episode. Video is delivered through Mux. There is no autoplay or media preloading. Substack and its providers may measure playback under their own privacy policies; this is separate from optional FunFab website analytics.
The FunFab Twitch Extension
The FunFab Extension runs on Twitch channels that install it. It is provided through Twitch. When you open a channel that has it, the Extension shows the host’s current game; you take part from the panel, the video overlay, or the mobile view. The Extension does not use website analytics.
Who you are to us. Twitch gives the Extension an opaque identifier for your viewing session. Until you choose to share your Twitch identity, that opaque identifier is all we receive, and it is what we store with anything you do in the room. If you share your identity through the Twitch prompt, we also store your Twitch user ID and login so your Twitch name can appear beside your contributions and your seat can be recognized when you return; the login is stored only after you share it. You can play without sharing identity in the ways a game allows, and you can decline the prompt.
What a room keeps. Each host room stores what happens in it: the lines you write, your votes, your predictions, your Charades clues and guesses, Mafia Live seats, roles, night actions and votes, scores, and the room’s game history across the titles it has played. If you choose a character for a room, we store that choice with your place in the room; it is cosmetic and doesn't affect scores, votes or roles. Hosts can hold or remove any line before it is shown, and hosts may show contributions, with your Twitch name, on their broadcast; recordings and clips of that broadcast are outside our control. Written lines are anonymous to the audience until the reveal; private answers, votes, predictions, and guesses are never posted to chat.
Moderation. Text you submit may be checked by an automated classifier before it is shown and may be reviewed by the host. The classifier is OpenAI’s moderation service: it receives only the text of your submission, not your Twitch identity, and OpenAI states that moderation inputs are not used to train its models. When a classifier is configured and cannot answer, the text is held for the host rather than published or discarded. Moderation decisions are kept with the room’s history.
Presence. While the Extension is open it polls the room state every few seconds, and we keep a last-seen time for you. Only people whose Extension is open count as present: presence decides who can be cast to write, who is counted in the audience, and who is shown as sitting out. The last-seen time is not a location or a browsing history.
Bits. Cosmetic reactions may use Twitch Bits in eligible sessions. Twitch processes the payment; we receive a signed transaction identifier to verify the reaction and prevent duplicate redemption, and we keep it for that purpose. FunFab does not receive payment-card details. Reactions never change votes or scores.
Where it runs. The Extension’s server runs on Vercel and stores room data in Supabase. Submitted text is sent to OpenAI for moderation as described above. Twitch delivers the Extension itself under its own terms and privacy policy.
Retention. Rooms and their history are kept until the host closes the room or we retire it. Closing a room ends the show; it does not by itself erase the room’s history, which we remove when we retire the room. Transaction identifiers may need to remain to prevent duplicate redemption. Hosting retention depends on the configured service plan.
What we do not do. We do not sell personal information. We do not use Extension data for advertising, and we do not link it to website analytics. To ask what a room holds about you, or to have it corrected or removed, email team@funfab.io or use the contact form; tell us the channel or room and the Twitch account involved, without sending credentials.
Local Play And Earlier Pilots
Players in the local browser version and in earlier pilots use a name and a locally stored room credential. Those rooms store submitted answers, votes, scores, game history, and creator-pack drafts and versions. Local storage supports room recovery and interrupted writing. A game ending does not automatically delete its records. Hosts may publish contributions on their broadcast; recordings and clips can remain outside our control. Recognition or returning-player features, where enabled, use game records. Cosmetic reactions do not affect scores or votes.
Live Stream Games And YouTube
FunFab live stream games run on a host’s broadcast. A host connects a live stream from a private game panel; viewers participate by typing in that stream’s public chat. These games use YouTube API Services when the host chooses YouTube. Google’s handling of information is described in the Google Privacy Policy. Using these features also means agreeing to the YouTube Terms of Service.
What we read and why. Our server reads public live-chat messages, display names, YouTube channel IDs, message times, moderation and ban events, and paid-chat or sticker events when provided by YouTube. We also look up the live video and its concurrent viewer count. We use this information to recognize participants, count guesses and votes, keep scores, apply moderation, and report participation. A host may enter a live-video link or channel handle so we can find the live chat. This connection uses our server’s API key; it does not ask for your Google password or permission to access your private Google account.
Where information appears. Game servers hosted on Railway process chat data and send game information to the host panel and broadcast board. Display names, game contributions, and results may appear on the host’s broadcast. Recordings and clips can remain on services outside our control. We do not sell this information or use live-chat data for advertising or link it to optional website analytics.
Retention and deletion. Live chat readers and temporary message buffers use server memory. Depending on the game, saved room settings, resumable game state, scores, display names, platform identifiers, and optional channel records can persist between shows. Ending a show or disconnecting chat does not by itself erase those saved records. Where a game offers Forget or Reset controls, those controls remove the records described in that game; you can also request access, correction, or deletion by emailing team@funfab.io or using our privacy contact form. Tell us the game, stream/channel, and the YouTube channel ID or profile involved. We may need to verify ownership; do not send passwords or API keys. Deleting FunFab records does not remove the original chat message or recordings held by YouTube or the broadcaster.
Your controls. Hosts can disconnect YouTube from the game panel to stop that game’s chat reader. Browser storage keeps host settings and room credentials so the panel can reconnect; clearing site storage removes those local copies, but does not delete server records. Viewers do not need a FunFab account to participate through YouTube chat.
Retention And Your Requests
We retain correspondence while resolving the request and as needed for follow-up, security, or legal obligations. Game history and creator content persist until the room is closed and retired, as described above; transaction identifiers may need to remain to prevent duplicate redemption. Hosting and analytics retention depends on the configured service plan.
You may request access, correction, or deletion by contacting FunFab. Tell us which email, room, channel, or Twitch account is involved without sending credentials. We may need to verify that the information belongs to you. Applicable privacy rights and exceptions depend on where you live; you may also contact your local data-protection authority. We do not sell personal information.
Children And Changes
FunFab is not directed to children under 13. If you believe a child has provided personal information, contact us. We will revise the date above when this policy changes and announce material changes on the affected service.