https://github.com/lostovayne/complete-clone-meet-ai-platform
End-to-end AI-powered video call application where you implement real-time calls with customized AI agents, generate automatic summaries and transcriptions through background processes, and create a post-call experience with video playback, transcript search, and a contextual AI chat. The project also covers authentication, subscriptions, etc
https://github.com/lostovayne/complete-clone-meet-ai-platform
agentic-ai better-auth coderabbit drizzle-orm inngest neon-postgres neondb next15 openai polar react19 stream tailwind4 trpc
Last synced: 2 months ago
JSON representation
End-to-end AI-powered video call application where you implement real-time calls with customized AI agents, generate automatic summaries and transcriptions through background processes, and create a post-call experience with video playback, transcript search, and a contextual AI chat. The project also covers authentication, subscriptions, etc
- Host: GitHub
- URL: https://github.com/lostovayne/complete-clone-meet-ai-platform
- Owner: Lostovayne
- License: mit
- Created: 2025-05-30T05:42:57.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-09-24T07:02:40.000Z (9 months ago)
- Last Synced: 2025-09-24T09:07:02.821Z (9 months ago)
- Topics: agentic-ai, better-auth, coderabbit, drizzle-orm, inngest, neon-postgres, neondb, next15, openai, polar, react19, stream, tailwind4, trpc
- Language: TypeScript
- Homepage:
- Size: 729 KB
- Stars: 7
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Meet AI Platform 🚀
Next-generation video conferencing powered by AI: smarter, more productive, and effortlessly organized.
---
## 🌟 Features

| Core Functionality | AI Capabilities |
| ----------------------- | ----------------------- |
| AI-Powered Video Calls | Custom Real-time Agents |
| Smart Meeting Summaries | AI Q&A |
| Meeting Recordings | OpenAI Integration |
| Transcript Search | Smart Transcripts |
---
## 🛠 Technical Stack
| Layer | Technology |
| ------------- | --------------------------------------------- |
| Frontend | Next.js 16, React 19, Tailwind CSS v4 |
| UI Components | shadcn/ui |
| Auth | Better Auth |
| Real-time | Stream Video SDK, Stream Chat SDK |
| Background | Inngest (background jobs) |
| Payments | Polar subscriptions |
| DB/ORM | Drizzle ORM |
| Package Mgmt | Bun, npm, or yarn |
| Deploy | Railway (via Docker image from GitHub Packages) |
---
## 📐 Architecture Overview
```mermaid
flowchart TD
User[User] -->|Sign In/Up| NextJS[Next.js App]
NextJS -->|API Call| AuthAPI[Better Auth API]
NextJS -->|Video| StreamSDK[Stream Video/Chat SDK]
NextJS -->|AI| OpenAI[OpenAI API]
NextJS -->|Payments| Polar[Polar API]
NextJS -->|Background| Inngest[Inngest Jobs]
NextJS -->|DB| Drizzle[Drizzle ORM]
```
---
## 🔐 Authentication Flow
```mermaid
sequenceDiagram
participant U as User
participant FE as Next.js Frontend
participant BA as Better Auth API
participant DB as Database
U->>FE: Submit credentials (Sign In/Up)
FE->>BA: POST /api/auth
BA->>DB: Validate or create user
DB-->>BA: User data / Auth token
BA-->>FE: Auth token (JWT/session)
FE-->>U: Set session, redirect to dashboard
```
---
## 📦 Endpoints principales (API)
| Endpoint | Método | Descripción |
| ----------------------------- | ------ | -------------------------------- |
| `/api/auth/sign-in` | POST | Login de usuario |
| `/api/auth/sign-up` | POST | Registro de usuario |
| `/api/meetings` | GET | Listar reuniones |
| `/api/meetings` | POST | Crear nueva reunión |
| `/api/meetings/:id` | GET | Obtener detalles de reunión |
| `/api/meetings/:id/summary` | GET | Obtener resumen AI de la reunión |
| `/api/meetings/:id/recording` | GET | Descargar grabación |
| `/api/payments/subscribe` | POST | Suscribirse vía Polar |
---
## ⚙️ Variables de entorno
Configura tus variables en `.env.local` (para desarrollo local) y en Railway (para despliegue):
| Variable | Descripción |
| -------------------- | ------------------------------------ |
| `STREAM_API_KEY` | Credencial de Stream Video/Chat |
| `STREAM_API_SECRET` | Secreto de Stream Video/Chat |
| `OPENAI_API_KEY` | Clave de OpenAI |
| `BETTER_AUTH_SECRET` | Secreto para Better Auth |
| `POLAR_API` | Clave para pagos con Polar |
| ... | Ver `.env.example` para más detalles |
---
## 🚀 Getting Started
### Prerequisitos
- Node.js 18+
- Bun (opcional, recomendado)
- npm o yarn
- Credenciales de Stream
- API Key de OpenAI
### Instalación
```bash
# Clona el repositorio
git clone https://github.com/LostoVayne/meet-ai-platform.git
cd meet-ai-platform
# Instala dependencias (elige uno)
bun install
# o
npm install
# o
yarn
# Configura variables de entorno
cp .env.example .env.local
# Inicia el servidor de desarrollo
bun dev
# o
npm run dev
# o
yarn dev
```
---
## 🚀 Deployment en Railway
Este proyecto se despliega en Railway utilizando una imagen Docker que se construye y se sube automáticamente a GitHub Packages mediante GitHub Actions.
### Flujo de Despliegue
1. **Push a la rama `master`**: Al hacer `git push` a la rama `master`, se activa un workflow de GitHub Actions (`.github/workflows/deploy.yml`).
2. **Construcción y Push de la Imagen Docker**: El workflow construye la imagen Docker utilizando `dockerfile.prod` y la sube a GitHub Packages (`ghcr.io`).
3. **Despliegue en Railway**: Railway detecta la nueva imagen en GitHub Packages y automáticamente despliega la nueva versión de la aplicación.
### Configuración en Railway
1. **Conecta tu repositorio**: En Railway, crea un nuevo proyecto y conecta tu repositorio de GitHub.
2. **Configura el servicio**:
* Selecciona la opción para desplegar desde una **imagen Docker**.
* Especifica la URL de la imagen de GitHub Packages. Por ejemplo: `ghcr.io/LostoVayne/meet-ai-platform:latest` (asegúrate de reemplazar `LostoVayne` con tu nombre de usuario de GitHub y `meet-ai-platform` con el nombre de tu repositorio).
* Asegúrate de que Railway tenga los permisos necesarios para acceder a tus GitHub Packages.
3. **Variables de Entorno**: Configura todas las variables de entorno necesarias (las mismas que en `.env.local`) directamente en la configuración de tu servicio en Railway.
---
## 🧩 Uso de shadcn/ui
- Componentes reutilizables en `src/components/ui/`.
- Ejemplo:
```tsx
import { Button } from "@/components/ui/button";
Iniciar reunión;
```
---
## 🔑 Better Auth
- Autenticación segura y moderna.
- Flujos en `src/app/(auth)/sign-in` y `sign-up`.
- Vistas personalizadas en `src/modules/auth/ui/views/`.
---
## 💳 Polar (Pagos y Suscripciones)
- Integración con Polar para suscripciones y pagos.
- Configura tu clave en las variables de entorno.
- El flujo de pago se maneja desde el dashboard.
---
## 📚 Reglas y buenas prácticas
- Usa **Bun** para desarrollo rápido y eficiente.
- Sigue la convención de carpetas de Next.js (app router).
- Componentes UI en `src/components/ui/`.
- Hooks personalizados en `src/hooks/`.
- Mantén dependencias actualizadas.
- Usa ESLint y Prettier para mantener el código limpio.
- No subas claves ni secretos al repositorio.
---
## 🧪 Testing
- Próximamente: integración con Jest y pruebas E2E.
---
## 🤝 Contribuir
1. Haz un fork del repositorio.
2. Crea una rama para tu feature/fix.
3. Haz un PR describiendo tus cambios.
---
## 📞 Soporte
¿Dudas o sugerencias? Abre un issue o contacta a [Lostovayne](https://github.com/LostoVayne).
---
## 📝 Licencia
Este proyecto está bajo la Licencia MIT. Consulta el archivo [LICENSE](./LICENSE) para más detalles.