https://github.com/underprotectiondev/meet-ai
https://github.com/underprotectiondev/meet-ai
Last synced: 8 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/underprotectiondev/meet-ai
- Owner: UnderprotectionDev
- Created: 2025-06-13T14:24:44.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-06-23T08:52:28.000Z (11 months ago)
- Last Synced: 2025-06-23T09:43:33.643Z (11 months ago)
- Language: TypeScript
- Size: 740 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Meet AI — AI‑Powered Meetings Platform 🚀
Run AI‑assisted meetings with real‑time agents, high‑quality video, automatic transcripts & summaries, and a delightful dashboard. Create your own AI agents, host calls, and continue the conversation after the meeting — type‑safe and production‑ready.

[](https://nextjs.org/)
[](https://www.typescriptlang.org/)
[](https://trpc.io/)
[](https://www.inngest.com/)
[](https://openai.com/)
[](https://getstream.io/)
[](https://orm.drizzle.team/)
[](https://www.postgresql.org/)
[](https://better-auth.com/)
[](https://polar.sh/)
[](https://tailwindcss.com/)
[](https://ui.shadcn.com/)
[](https://dicebear.com/)
[](https://tanstack.com/query)
[](https://nuqs.47ng.com/)
[](https://zod.dev/)
## ✨ Features
| Feature | Description |
| ------------------------------- | ---------------------------------------------------------------------- |
| 🔐 Authentication | Sign in with email/password or social (GitHub, Google) via better‑auth |
| 🎭 AI Agents | Create custom agents with your own instructions |
| 🎥 Video Meetings | Host calls with Stream Video (HD, recording, transcription) |
| ⚡ Realtime AI in Calls | OpenAI Realtime agent connected to your call via Stream |
| 📝 Auto Transcripts & Summaries | Inngest job processes transcripts and saves structured summaries |
| 💬 Post‑Meeting Chat | Continue chatting in Stream Chat, grounded in the meeting summary |
| 💳 Billing & Upgrades | Payments/portal powered by Polar |
| 🧩 Type‑Safe APIs | End‑to‑end type safety with tRPC + Zod |
| 🎛️ Admin‑friendly Dashboard | Manage agents, meetings, and account in a clean UI |
| 🌙 Responsive UI | Tailwind + shadcn/ui components, |
## 🌟 Tech Highlights
- **Realtime AI in Calls**: Stream Video integrates with OpenAI Realtime to drive an agent during live calls
- **Automatic Summaries**: Inngest consumes the call transcript and generates structured summaries
- **Post‑Call Chat**: Stream Chat + OpenAI continue helpful conversation using the saved summary
- **Type‑Safe Everything**: Drizzle ORM + tRPC + Zod across the stack
- **Production‑Ready Auth & Billing**: better‑auth with social providers and Polar checkout/portal
## 🚀 Quick Start
```bash
# Clone the repository
git clone https://github.com/yourusername/meet-ai.git
cd meet-ai
# Install dependencies
npm install
# or
pnpm install
# Create your .env from the variables below and fill the values
# Push database schema
npm run db:push
# Start the development server
npm run dev
# or
pnpm dev
```
Visit [http://localhost:3000](http://localhost:3000) to use the application.
## 🛠️ Tech Stack
Click to expand tech stack details
### Core Frameworks & Libraries
- **[Next.js](https://nextjs.org/)** – App Router, server components
- **[React](https://react.dev/)** – UI library
- **[TypeScript](https://www.typescriptlang.org/)** – Types everywhere
- **[Zod](https://zod.dev/)** – Schema validation
- **[React Hook Form](https://react-hook-form.com/)** – Performant forms
- **[TanStack Query](https://tanstack.com/query/latest)** – Client data fetching/caching
- **[TanStack Table](https://tanstack.com/table/latest)** – Powerful tables
### Backend & Database
- **[Drizzle ORM](https://orm.drizzle.team/)** – Type‑safe queries and migrations
- **[PostgreSQL](https://www.postgresql.org/)** – Primary database
- **[Neon](https://neon.tech/)** – Serverless Postgres (via `@neondatabase/serverless`)
- **[tRPC](https://trpc.io/)** – End‑to‑end typesafe API
- **[Inngest](https://www.inngest.com/)** – Background jobs for transcript summarization
### AI, Realtime & Media
- **[OpenAI](https://openai.com/)** – Chat & realtime models
- **[Stream Video](https://getstream.io/video/)** – Calls, recording, transcription
- **[Stream Chat](https://getstream.io/chat/)** – In‑app chat and channels
### Auth & Billing
- **[better‑auth](https://better-auth.com/)** – Authentication with email/password and social login
- **[Polar](https://polar.sh/)** – Checkout and customer portal (sandbox)
### UI & Styling
- **[Tailwind CSS](https://tailwindcss.com/)** – Utility‑first CSS (v4)
- **[shadcn/ui](https://ui.shadcn.com/)** – Composable components (Radix UI)
- **[Lucide](https://lucide.dev/)** – Icon set
### Development Tools
- **[ESLint](https://eslint.org/)** – Linting
- **[Drizzle Kit](https://orm.drizzle.team/kit-docs/overview)** – Migrations & studio
- **[TSX](https://github.com/esbuild-kit/tsx)** – TS runner
## 📸 Screenshots
### ⚡ Upgrade

### 💳 Billing

### 🤖 Agent


### 📹 Meeting






## 🔐 Environment Variables
Create a `.env` file in the project root and add the variables below.
| Variable | Description | Used In |
| ---------------------------------- | -------------------------------------- | --------------------------- |
| `DATABASE_URL` | Postgres connection string | Drizzle/Neon |
| `NEXT_PUBLIC_APP_URL` | Base URL used server‑side for requests | tRPC client |
| `BETTER_AUTH_SECRET` | Secret key for better‑auth | better‑auth |
| `BETTER_AUTH_URL` | Base URL for better‑auth callbacks | better‑auth |
| `GITHUB_CLIENT_ID` | GitHub OAuth client id | better‑auth social |
| `GITHUB_CLIENT_SECRET` | GitHub OAuth secret | better‑auth social |
| `GOOGLE_CLIENT_ID` | Google OAuth client id | better‑auth social |
| `GOOGLE_CLIENT_SECRET` | Google OAuth secret | better‑auth social |
| `NEXT_PUBLIC_STREAM_VIDEO_API_KEY` | Stream Video public key | Stream Video (client) |
| `STREAM_VIDEO_SECRET_KEY` | Stream Video secret | Stream Video (server) |
| `NEXT_PUBLIC_STREAM_CHAT_API_KEY` | Stream Chat public key | Stream Chat (client) |
| `STREAM_CHAT_SECRET_KEY` | Stream Chat secret | Stream Chat (server) |
| `OPENAI_API_KEY` | OpenAI API key | Webhooks, Inngest, Realtime |
| `POLAR_ACCESS_TOKEN` | Polar API token (sandbox) | Billing (Polar) |
| `NGROK_URL` | ngrok tunnel URL for webhooks | Development tunneling |
```env
# Database
DATABASE_URL=
# Next
NEXT_PUBLIC_APP_URL=
# Better Auth
BETTER_AUTH_SECRET=
BETTER_AUTH_URL=
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
# getStream.io
NEXT_PUBLIC_STREAM_VIDEO_API_KEY=
STREAM_VIDEO_SECRET_KEY=
NEXT_PUBLIC_STREAM_CHAT_API_KEY=
STREAM_CHAT_SECRET_KEY=
# OpenAI
OPENAI_API_KEY=
# Polar.sh
POLAR_ACCESS_TOKEN=
#ngrok
ngrok http --url=
```