/twitch-clone

Primary LanguageTypeScript

Fullstack Twitch Clone: Next.js 14, Livestreaming, React, Prisma, Stripe, Tailwind, MySQL

Twitch Clone Thumbnail (3)

This is a repository for Fullstack Trello Clone: Next.js 14, Livestreaming, React, Prisma, Stripe, Tailwind, MySQL

VIDEO TUTORIAL

Key Features:

  • πŸ“‘ Streaming using RTMP / WHIP protocols
  • 🌐 Generating ingress
  • πŸ”— Connecting Next.js app to OBS / Your favorite streaming software
  • πŸ” Authentication
  • πŸ“Έ Thumbnail upload
  • πŸ‘€ Live viewer count
  • 🚦 Live statuses
  • πŸ’¬ Real-time chat using sockets
  • 🎨 Unique color for each viewer in chat
  • πŸ‘₯ Following system
  • 🚫 Blocking system
  • πŸ‘’ Kicking participants from a stream in real-time
  • πŸŽ›οΈ Streamer / Creator Dashboard
  • 🐒 Slow chat mode
  • πŸ”’ Followers only chat mode
  • πŸ“΄ Enable / Disable chat
  • πŸ”½ Collapsible layout (hide sidebars, chat etc, theatre mode etc.)
  • πŸ“š Sidebar following & recommendations tab
  • 🏠 Home page recommending streams, sorted by live first
  • πŸ” Search results page with a different layout
  • πŸ”„ Syncing user information to our DB using Webhooks
  • πŸ“‘ Syncing live status information to our DB using Webhooks
  • 🀝 Community tab
  • 🎨 Beautiful design
  • ⚑ Blazing fast application
  • πŸ“„ SSR (Server-Side Rendering)
  • πŸ—ΊοΈ Grouped routes & layouts
  • πŸ—ƒοΈ MySQL
  • πŸš€ Deployment

Prerequisites

Node version 18.17 or later

Cloning the repository

git clone https://github.com/AntonioErdeljac/next14-twitch-clone.git

Install packages

npm i

Setup .env file

NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/
CLERK_WEBHOOK_SECRET=

DATABASE_URL=

LIVEKIT_API_URL=
LIVEKIT_API_KEY=
LIVEKIT_API_SECRET=
NEXT_PUBLIC_LIVEKIT_WS_URL=

UPLOADTHING_SECRET=
UPLOADTHING_APP_ID=

Setup Prisma

Add MySQL Database (I used PlanetScale)

npx prisma generate
npx prisma db push

Start the app

npm run dev

Available commands

Running commands with npm npm run [command]

command description
dev Starts a development instance of the app