A modern, feature-rich live streaming platform built with Next.js 14, React, and LiveKit. This project was inspired by and built following the excellent tutorial series by Code With Antonio.
-
Live Streaming
- RTMP/WHIP Protocol Support
- Low-latency streaming
- Multi-quality streaming
- Stream health monitoring
-
User Interaction
- Real-time chat
- Follow system
- Block capabilities
- Customizable stream settings
-
Advanced Security
- Secure authentication with Clerk
- Stream key management
- Chat moderation tools
- Rate limiting
-
Frontend
- Next.js 14 (App Router)
- React
- TailwindCSS
- TypeScript
-
Backend
- LiveKit (Streaming)
- Prisma (ORM)
- PostgreSQL
- WebSocket
-
Authentication
- Clerk
Before you begin, ensure you have:
- Node.js 18+ installed
- PostgreSQL database
- LiveKit account and credentials
- Clerk account and credentials
-
Clone the repository
git clone https://github.com/yourusername/witch.git cd witch -
Install dependencies
npm install
-
Set up environment variables
Fill in your environment variables:
DATABASE_URL= NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY= CLERK_SECRET_KEY= LIVEKIT_API_KEY= LIVEKIT_API_SECRET= NEXT_PUBLIC_LIVEKIT_WS_URL=
-
Initialize the database
npx prisma generate npx prisma db push
-
Run the development server
npm run dev
This project can be deployed on Vercel:
This project was built following the excellent tutorial series by Code With Antonio. Check out his YouTube channel for amazing web development content!
Contributions are welcome!
- Project Link: https://github.com/zydiag/witch
- Code With Antonio - For the excellent tutorial and inspiration
- LiveKit - For the amazing streaming infrastructure
- Clerk - For authentication
- Prisma - For the ORM
- Next.js - For the framework
Built with ❤️ using Next.js and LiveKit
