📈 GH Trending Explorer 🎲 Surprise me

← all repos

MiladJoodi / MeetCast

git clone https://github.com/MiladJoodi/MeetCast.git

A real-time video meeting platform built with Next.js, LiveKit, PostgreSQL, and TypeScript.

+0
stars, 24h · #37,115
+~0
stars, 7 days · #42,570
+78
stars, 30 days · #8,929
78
★ total
2
forks · 0 open issues

Star history (as recorded here)

2026-10-20 · 78 ★ 2026-10-23 · 78 ★
LanguageTypeScript
License—
Created2026-09-24 (28d ago)
Last push26d ago
Watchers0
OwnerUser

Links

README excerpt
# MeetCast
MeetCast is a video meeting application built with Next.js, LiveKit, PostgreSQL, and TypeScript.
You schedule a room, share an invite, and join with camera, mic, screen share, chat, and basic moderation. Plans control participant counts and meeting duration. Private rooms restrict join to allowlisted account emails.
**Stack:** Next.js 16 · React 19 · TypeScript · Tailwind CSS 4 · Drizzle · Neon Postgres · LiveKit · Vitest · pnpm 12
In-app docs (after `pnpm dev`): open `/docs` on your local app.
---
## Features
### Meetings
- Create / edit rooms with a start and end time
- Public or private visibility
- Invite links (`inviteCode`)
- Allowed-email list for private rooms (no invite emails — share the link yourself)
- Participant capacity (plan-driven; SFU hard cap 50)
- Status: waiting / active / ended
- Host can end a meeting from the dashboard
### Realtime
- Camera, microphone, screen share
- Participant grid and speaking state
- Chat, raise hand, reactions (LiveKit data channel)
- Soft LiveKit token refresh before JWT expiry
- Reconnect / disconnect banner
### Roles & moderation
- Host, moderator, participant, guest (guests only on public rooms)
- Mute, disable camera, remove participant
- Moderator promote/demote
### Account
- Register / login / logout
- Database sessions (httpOnly cookie)
- Password change, session revoke, account delete
- Soft email verification (login works without verifying)
- Forgot / reset password (Resend optional)
### Plans & billing
- Free / Starter / Pro / Business (seeded in migrations; admins can edit)
- Limits: max concurrent participants, max room duration
- Checkout → order → payment → idempotent fulfill
- ZarinPal when configured; in-app mock gateway in non-production without a merchant
- Current migration sets plan prices to **0** IRR so checkout still runs without a gateway
### Admin
- Users, rooms, plans, orders, audit logs
- Bootstrap admins via `ADMIN_EMAILS`
---
Suggested captures: landing, dashboard, rooms, live meeting, plans, private room settings, admin, account settings.
---
## Tech stack
| Technology | Purpose |
| ---------- | ------- |
| Next.js 16 | App Router UI, Server Actions, API routes |
| React 19 | Application UI |
| TypeScript | Types across app and libs |
| Tailwind CSS 4 | Styling |
| PostgreSQL / Neon | Persistent data |
| Drizzle ORM | Schema + migrations |
| LiveKit | Audio, video, screen share, data channel |
| `@node-rs/argon2` | Password hashing (Argon2id) |
| Zod | Validation |
| Vitest | Unit tests |
| Resend (HTTP API) | Optional auth email |
| ZarinPal | Optional paid checkout |
---
## Architecture
 [code] 
**Next.js** owns authentication, room access, plan limits, billing fulfillment, admin actions, and LiveKit token minting.
**PostgreSQL** stores durable application data. LiveKit is not the database.
**LiveKit** carries AV and lightweight collaboration. Secrets (`LIVEKIT_API_SECRET`, `AUTH_SECRET`, `DATABASE_URL`) stay server-side.
There is **no** `middleware.ts`, **