Z
Back to all projects
Stream Studio
Express + Next.js

Stream Studio

Designed and shipped Stream Studio as a solo full-stack project: Express.js REST API + Socket.io backend, Next.js App Router frontend, and MongoDB with Prisma. Live streaming uses Nginx-RTMP ingest, stream-key validation via webhooks, HLS playback (hls.js), and ephemeral Socket.io chat with viewer counts and owner studio controls. VOD covers Multer uploads, FFmpeg thumbnails, local @xenova/transformers embeddings, and MongoDB Atlas vector search. AI layer includes RAG (`POST /api/rag/query` — retrieve similar content then answer via OpenRouter or template fallback) and an LLM tool-calling chat (`POST /api/chat`) for semantic search, watchlist add/remove, and watch history. Also implemented an MCP stdio server exposing the same AI tools (search, watchlist, history) for external clients like Cursor. Additional work: JWT auth, follow/live notifications, admin (users, content, streams, settings), plus TanStack Query + Zod on key frontend paths.

Express.jsNext.jsPrismaMongoDBSocket.ioNginx-RTMPHLSRAGVector SearchOpenRouterMCPTanStack QueryZod
Overview

Project Details

Built a full-stack video streaming platform end-to-end — live RTMP/HLS with real-time chat, VOD upload, RAG + vector search, AI tool-calling chat, and an admin panel.

Key Features

  • Live streaming — OBS/Streamlabs RTMP ingest, Nginx-RTMP → HLS, on_publish stream-key validation, owner studio
  • Real-time chat — Socket.io rooms, viewer count / peak viewers, chat mute, stream-end chat clear
  • VOD pipeline — Multer local upload, FFmpeg thumbnail extract, Content embeddings
  • RAG — embed query, Atlas / local vector retrieve, OpenRouter natural-language answer (`/api/rag/query`)
  • AI chat + tools — OpenRouter tool loop: search_similar_content, add/remove watchlist, get_watch_history
  • MCP server — stdio tools mirroring the same AI/watchlist actions for Cursor / MCP clients
  • Social & alerts — follow creators, persisted live-start notifications + realtime bell
  • Admin panel — ban/unban/delete users, hide/delete content, force-end streams, AI/chat/upload settings
More Work

Other Projects

View all