Skip to content
maksim zaytsev
Projects

2026LiveProduct

Next.js · TypeScript · PostgreSQL · Three.js · Twitch API

Moonst3ad.com

Bilingual site for a Twitch streamer: 3D lobby, a channel-point economy, community tools and an admin CMS.

What it does

One place for everything around a Twitch channel: the public site in English with a Russian mirror, a clips gallery, a stream schedule, a YouTube VOD playlist, and per-game guides and news written in Markdown through the admin panel. The interesting part is the community layer. Viewers sign in with Twitch and take part in leaderboards, auctions, predictions, challenges and channel goals, all priced in S3C — “St3ad Coins”, a virtual currency the channel controls.

How it's built

Next.js with the app router on top of PostgreSQL. Sign-in is Twitch OAuth 2.0 with a JWT session cookie and three roles: admin, mod, viewer. S3C lives in an append-only ledger: nothing is ever updated in place, a balance is the sum of its entries, so a disputed auction or a mis-fired reward can be traced instead of argued about. Twitch channel-point rewards arrive through an EventSub webhook and deposit coins with role-based multipliers. A Telegram bot handles admin commands and posts live-stream announcements to the channel; DonationAlerts feeds real donation data; the YouTube integration falls back to RSS when no API key is configured. The landing page is an interactive 3D lobby in Three.js.

  • The admin panel is Russian-only by design: one operator, one language, fewer strings to maintain
  • EventSub means no polling — coins land the moment a viewer redeems a reward