<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[RaidPort]]></title><description><![CDATA[RaidPort]]></description><link>https://raidport.hashnode.dev</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1593680282896/kNC7E8IR4.png</url><title>RaidPort</title><link>https://raidport.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Tue, 20 Oct 2026 09:30:35 GMT</lastBuildDate><atom:link href="https://raidport.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[I built a live gameshow for Twitch raids, for small streamers]]></title><description><![CDATA[Every small streamer knows the end of a stream. Chat is warm, a few people are hanging out, and there is nobody worth raiding. So you hit End Stream and…]]></description><link>https://raidport.hashnode.dev/i-built-a-live-gameshow-for-twitch-raids-for-small-streamers</link><guid isPermaLink="true">https://raidport.hashnode.dev/i-built-a-live-gameshow-for-twitch-raids-for-small-streamers</guid><category><![CDATA[Twitch]]></category><category><![CDATA[TypeScript]]></category><category><![CDATA[GameDev]]></category><dc:creator><![CDATA[Basanoviat]]></dc:creator><pubDate>Wed, 07 Oct 2026 06:17:48 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ac5e27b6055728999dc8b78/66572c4e-e2b7-4720-a706-c29940bb9372.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every small streamer knows the end of a stream. Chat is warm, a few people are hanging out, and there is nobody worth raiding. So you hit End Stream and everyone scatters.</p>
<p>I got tired of that, so I'm building RaidPort: a Twitch channel that turns raids into a live gameshow.</p>
<p><img src="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/ddkla9obai2d4cy3f4aq.png" alt="The RaidPort wheel mid-spin, with chat braking it" /></p>
<h2>How a round plays</h2>
<ol>
<li>At the end of your stream, you raid the RaidPort channel instead of nobody.</li>
<li>Your raid opens a portal on screen, your viewers come through, and your name gets a slice on a big wheel.</li>
<li>Chat votes on a category, then spins the wheel and mashes !stop to brake it.</li>
<li>Whoever the wheel lands on, and is live, gets raided by the whole channel.</li>
</ol>
<p><img src="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/xucbqqpyejwrczamhqhl.png" alt="The portal opening as a raid arrives" /></p>
<p><img src="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/4uqjhg2d06x0ha1dnziq.png" alt="Chat voting on a category before the spin" /></p>
<p>It's a lottery, not a promise. Your odds are your slice of the wheel, and the wheel only lands on channels that are live.</p>
<h2>What it isn't</h2>
<ul>
<li>No login, no "authorize this app" screen, no bot in your chat. It only uses Twitch's own raid button.</li>
<li>No fake viewers. Everyone who arrives was watching the show.</li>
<li>Free.</li>
</ul>
<h2>Under the hood</h2>
<ul>
<li>Node.js and TypeScript backend with a 120 Hz physics wheel and a round state machine.</li>
<li>The overlay is PixiJS (WebGL) running as an OBS browser source.</li>
<li>Twitch EventSub sees a raid land, and the Helix API sends the raid out.</li>
<li>Postgres keeps track of everyone's slices.</li>
</ul>
<h2>45 seconds of it</h2>
<p><a class="embed-card" href="https://youtu.be/wi4zt6H_HtU">https://youtu.be/wi4zt6H_HtU</a></p>

<p>I'm one person building this. The portal opens Fall 2026, and if you stream, founding member signups are at <a href="https://raidport.tv/?utm_source=hashnode&amp;utm_medium=forum&amp;utm_campaign=building&amp;utm_content=forum-long-01">raidport.tv</a>.</p>
]]></content:encoded></item></channel></rss>