NextJS Template BoilerPlate: Antonio Erdeljac
Key Features:
- π‘ Streaming using RTMP / WHIP protocols
- π Generating ingress
- π Connecting Next.js app to OBS
- π Authentication
- πΈ Thumbnail upload with Uploadthing
- π‘ Face detection and filter with Banuba
- π€ Voice control
- π 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
Node version 18.17 or later
git clone https://github.com/nhavanntd31/livestreaming
npm i
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY={clerk-api-key}
CLERK_SECRET_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={clerk-webhook-secret}
DATABASE_URL={database-url}
LIVEKIT_API_URL={livekit-api-url}
LIVEKIT_API_KEY={livekit-api-key}
LIVEKIT_API_SECRET={livekit-api-secret}
NEXT_PUBLIC_LIVEKIT_WS_URL={livekit-ws-url}
NEXT_PUBLIC_BANUBA_CLIENT_TOKEN={banuba-client-token}
Add Database URL (PlanetScale/MySQL)
npx prisma generate
npx prisma db push
npm run dev
Running commands with npm npm run [command]
command | description |
---|---|
dev |
Starts a development instance of the app |
lint |
Run typescript lint check with eslint |
build |
Start building app for deployment |
start |
Run build version of app |