ishLab / Portfolio
feedbck.stream logo

Project 04

feedbck.stream

A live music submission and feedback workspace that brings queue management, playback, artist feedback, and OBS overlays into one dashboard for Twitch music streamers.

feedbck.stream is a live music submission and review workspace for Twitch streamers. It combines intake, queue management, playback, written feedback, and OBS overlays in one dashboard.

Artists sign in with Twitch or Discord, submit a supported track link or audio file, and add context for the streamer. Streamers organize the queue, choose the next track, and record feedback. Viewer profiles store submission history, social links, and notification preferences. When configured, email notifications can deliver completed feedback after a review.

Architecture

SvelteKit handles pages, server loads, form actions, and API endpoints. SQLite stores application data, while uploaded audio remains on local disk. An in-memory event bus sends typed real-time updates through server-sent events.

Production runs exactly one application instance because real-time delivery and rate limiting are process-local. Persistent storage retains database records and uploads across deployments. Horizontal application scaling would require shared infrastructure for events and rate limits.

Tech stack

  • Frontend: SvelteKit, Svelte 5, TypeScript, Tailwind CSS 4, DaisyUI, Lucide Svelte, Vite, and driver.js
  • Backend and authentication: Node.js with SvelteKit’s Node adapter; Better Auth with email/password and configured Twitch and Discord OAuth
  • Data and media: Drizzle ORM, SQLite, better-sqlite3, local audio storage, and HTTP Range support for uploaded-audio playback
  • Infrastructure and quality: Docker, Woodpecker CI/CD, pnpm, Vitest, Playwright, Biome, and monitoring with BetterStack and Sentry
  • Optional integrations: Loops, Canny, SoundCloud, Spotify, YouTube, DomScan, and Logo.dev

Product capabilities

  • Submission sources: SoundCloud, Spotify, YouTube, BandLab, and untitled.stream links, plus MP3 and WAV uploads up to 20 MB. Streamers can disable Spotify submissions.
  • OBS browser sources: Responsive overlays show the queue, now-playing track, and submission URL, with a dark-theme option.
  • Session controls: Streamers can start a session, pause or resume intake, and end the session. Pausing preserves the session and queue. Signing out only changes authentication state.
  • Delegated moderation: Up to two active admins can promote, skip, or remove submissions. The current and next-up tracks are protected from those actions.
  • Artist feedback: Streamers combine written notes with “liked” and “improve” tags. Email delivery checks configuration, feedback completeness, recipient availability, and notification preferences.

Review workflow

A submission enters the queue and typed server events update connected clients. The streamer selects and reviews the track, records feedback, and can send the completed review by email when delivery requirements are met. OBS overlays expose queue and playback state to the broadcast.

Feedback comes from the streamer. Documented capabilities do not include AI-generated analysis or recommendations.