Skip to content

Repository files navigation

Witch - Live Streaming Platform

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.

image

🌟 Features

  • 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

🚀 Tech Stack

  • Frontend

    • Next.js 14 (App Router)
    • React
    • TailwindCSS
    • TypeScript
  • Backend

    • LiveKit (Streaming)
    • Prisma (ORM)
    • PostgreSQL
    • WebSocket
  • Authentication

    • Clerk

📋 Prerequisites

Before you begin, ensure you have:

  • Node.js 18+ installed
  • PostgreSQL database
  • LiveKit account and credentials
  • Clerk account and credentials

🛠️ Installation

  1. Clone the repository

    git clone https://github.com/yourusername/witch.git
    cd witch
  2. Install dependencies

    npm install
  3. 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=
  4. Initialize the database

    npx prisma generate
    npx prisma db push
  5. Run the development server

    npm run dev

🚀 Deployment

This project can be deployed on Vercel:

Deploy with Vercel

👏 Credits

This project was built following the excellent tutorial series by Code With Antonio. Check out his YouTube channel for amazing web development content!

🤝 Contributing

Contributions are welcome!

📬 Contact

🙏 Acknowledgments


Built with ❤️ using Next.js and LiveKit

About

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages