Nathanael Jones · 2026
Enragedcarpet88
A Twitch streamer's home base built so the stream itself never has to reload — a persistent embedded player that survives every page navigation.
- 16/16
- Tests passing
- ~99%
- Helix calls saved
- 3 tokens
- Contrast fixes
- Problem
- A streamer who links out to twitch.tv is still counted as a Twitch viewer, not a viewer of their own brand. The site needed to be somewhere a fan would actually want to stay — with the stream itself never interrupting that decision.
- Solution
- The homepage doesn't link to the stream, it becomes the stream: a single Twitch player mounted once and repositioned (never remounted, never given a new source) as you move between pages, so the embed never reloads and never drops a viewer. Live-status polling is cached at the edge to collapse thousands of concurrent viewer checks into a couple of upstream calls a minute, and a self-serve panel lets Nathanael edit his own bio, links, and gear without a ticket to Marcel.
- Result
- Live today, with the persistent player fully working through Twitch's public embed. The deeper API layer — automatic live detection, clips, schedule, VOD listings — activates the moment a Twitch developer application is approved; every one of those sections already has its own designed empty state and shows it gracefully in the meantime.
The brief
A home page for Twitch streamer Nathanael Jones (channel enragedcarpet88) that fans would actually want to live on, instead of just clicking through to twitch.tv — where every embedded viewer is credited to Twitch, not to him.
What was built
Offline, the homepage is a brand page. The moment he goes live, that same page becomes the stream — no click, no reload. The mechanism behind it is a single Twitch player mounted once at the top of the app and repositioned via a transform as you navigate, rather than ever being unmounted or given a new embed source, because either of those would force Twitch to reload the player and drop the viewer mid-stream. It's the one rule the whole site is built around.
The visual design pulls its day-and-dusk sky theme directly from his actual Twitch banner art, so the site reads as an extension of a brand he'd already built, not a new one laid on top of it — a deliberate reversal after an earlier, more generic direction didn't fit. A self-serve admin panel, gated behind the same allowlist used everywhere else in the studio's tools, lets him update his own bio, links, and gear without waiting on a developer.
Under the hood
Live-status checks are cached at the edge for thirty seconds, which turns what would be thousands of simultaneous requests during a big stream into roughly two calls a minute to Twitch's API — and if that API has a bad moment, the site degrades to a clearly-labeled offline state instead of erroring. A Twitch webhook and optional push notifications handle "just went live" alerts. Sixteen tests cover the pieces most likely to regress, and an accessibility pass tightened three color tokens that were failing contrast, including the "live now" accent.
Where it stands
Live in production. The persistent player, theming, admin panel, and alert plumbing are all built and working — what's still pending is Marcel obtaining approval for a Twitch developer application, which is what unlocks automatic live detection, clips, schedule, and VOD listings. Every one of those sections already has a considered empty state, so the site was reviewable and shippable well before that approval arrives.