Transform your meetings into collaborative experiences with AI agents that don't just attendβthey participate, understand, and help you achieve more. MeetAI is a cutting-edge platform that seamlessly blends real-time video conferencing with advanced AI capabilities.
- Smart AI Agents: Create custom AI assistants with tailored instructions and personalities
 - Real-time Participation: AI agents join your calls, respond to voice, and contribute meaningfully
 - Adaptive Learning: Agents remember context and maintain conversation continuity
 - Multi-Agent Ecosystem: Deploy different agents for different meeting types and purposes
 
- Crystal Clear Calls: Powered by Stream Video for professional-quality conferences
 - Live Transcription: Automatic, real-time transcription with speaker identification
 - Smart Recordings: Auto-generated recordings with searchable content
 - Mobile-First Design: Seamless experience across all devices
 
- AI-Powered Summaries: Comprehensive meeting summaries with key insights
 - Interactive Chat: Continue conversations with your AI agent after meetings
 - Searchable Transcripts: Find any moment in your meeting history instantly
 
- Type-Safe APIs: Built with tRPC for end-to-end type safety
 - Real-time Everything: WebSocket-powered live updates and notifications
 - Scalable Infrastructure: Built to handle enterprise-scale meeting loads
 - Modern Stack: Next.js 15, TypeScript, and cutting-edge tools
 
graph TB
    Client[Next.js Client] --> tRPC[tRPC API Layer]
    tRPC --> Auth[Better Auth]
    tRPC --> DB[(PostgreSQL + Drizzle)]
    tRPC --> Stream[Stream Video/Chat]
    tRPC --> AI[OpenAI + DeepSeek]
    Webhooks[Stream Webhooks] --> Processing[Inngest Jobs]
    Processing --> AI
    Processing --> DB
    Auth --> Polar[Polar Billing]
    Stream --> Recording[Auto Recording]
    AI --> Transcription[Live Transcription]
    Framework: Next.js 15 with App Router
Language: TypeScript (100% type-safe)
Styling: Tailwind CSS + Custom Design System
Components: Radix UI + Custom Component Library
State: TanStack Query
Forms: React Hook Form + Zod ValidationAPI Layer: tRPC (Type-safe APIs)
Database: PostgreSQL + Drizzle ORM
Authentication: Better Auth (Multi-provider)
Background Jobs: Inngest (Event-driven)
File Storage: Stream CDNVideo Platform: Stream Video SDK
Chat System: Stream Chat SDK
AI Models: OpenAI GPT-4 + DeepSeek
Voice Processing: OpenAI Realtime API
Transcription: Stream Transcription
Summaries: Custom AI AgentsHosting: Vercel (Zero-config deployment)
Database: Neon PostgreSQL (Serverless)
Billing: Polar (Subscription management)- Node.js 18+ (LTS recommended)
 - PostgreSQL database (or Neon account)
 - OpenAI API key (paid tier for voice features)
 - Stream account (Video & Chat)
 - Git for version control
 
# Clone the repository
git clone https://github.com/yourusername/meetai.git
cd meetai
# Install dependencies (we recommend pnpm)
pnpm install
# or npm installCreate .env.local with your API keys:
# Database Configuration
DB_URL="postgresql://user:pass@localhost:5432/meetai"
# Authentication
BETTER_AUTH_SECRET="your-super-secret-auth-key-here"
BETTER_AUTH_URL="http://localhost:3000"
# AI Services
OPENAI_API_SECRET_KEY="sk-your-openai-api-key"
DEEPSEEK_API_KEY="your-deepseek-api-key"
# Stream Video & Chat
NEXT_PUBLIC_STREAM_VIDEO_API_KEY="your-stream-video-key"
STREAM_VIDEO_SECRET_KEY="your-stream-video-secret"
NEXT_PUBLIC_STREAM_CHAT_API_KEY="your-stream-chat-key"
STREAM_CHAT_SECRET_KEY="your-stream-chat-secret"
# Background Processing
INNGEST_EVENT_KEY="evt_your-inngest-event-key"
INNGEST_SIGNING_KEY="signkey_your-inngest-signing-key"
# Social Authentication (Optional)
GOOGLE_CLIENT_ID="your-google-oauth-client-id"
GOOGLE_CLIENT_SECRET="your-google-oauth-secret"
GITHUB_CLIENT_ID="your-github-oauth-client-id"
GITHUB_CLIENT_SECRET="your-github-oauth-secret"# Initialize database schema
pnpm db:push
# Optional: Seed with sample data
pnpm db:seedpnpm devVisit http://localhost:3000 and create your first AI agent! π
Our codebase follows a feature-driven modular architecture:
src/
βββ app/                     # Next.js App Router
β   βββ (auth)/             # Authentication flows
β   β   βββ sign-in/        # Login page
β   β   βββ sign-up/        # Registration page
β   βββ (dashboard)/        # Protected dashboard area
β   β   βββ agents/         # AI agent management
β   β   βββ meetings/       # Meeting dashboard
β   β   βββ upgrade/        # Billing & subscription
β   βββ api/                # API routes & webhooks
β   β   βββ webhook/        # Stream webhook handlers
β   β   βββ trpc/          # tRPC endpoint
β   βββ call/               # Video call interface
β   βββ inngest/            # Background job functions
βββ components/             # Reusable UI components
β   βββ ui/                # Base UI primitives
β   βββ data-table.tsx     # Advanced data tables
β   βββ generate-avatar.tsx # Dynamic avatar generation
β   βββ responsive-dialog.tsx # Mobile-first dialogs
βββ db/                     # Database layer
β   βββ schema.ts          # Drizzle schema definitions
β   βββ index.ts           # Database connection
βββ hooks/                  # Custom React hooks
β   βββ use-debounce.ts    # Performance optimization
β   βββ use-mobile.ts      # Responsive design
β   βββ use-confirm.tsx    # User confirmations
βββ lib/                    # Core utilities
β   βββ auth.ts            # Authentication config
β   βββ stream-video.ts    # Video SDK setup
β   βββ stream-chat.ts     # Chat SDK setup
β   βββ utils.ts           # Helper functions
βββ module/                 # Feature modules
β   βββ agents/            # π€ AI Agent Management
β   β   βββ components/    # Agent UI components
β   β   βββ procedures.ts  # Agent API endpoints
β   β   βββ schemas.ts     # Validation schemas
β   β   βββ views/         # Agent page views
β   βββ meetings/          # π₯ Meeting Management
β   β   βββ components/    # Meeting UI components
β   β   βββ procedures.ts  # Meeting API endpoints
β   β   βββ views/         # Meeting page views
β   βββ auth/              # π Authentication
β   βββ call/              # π Video Calling
β   βββ dashboard/         # π Dashboard
β   βββ premium/           # π Subscription Management
βββ trpc/                   # API layer
    βββ init.ts            # tRPC initialization
    βββ client.ts          # Client-side setup
    βββ server.ts          # Server-side setup
Create sophisticated AI assistants that understand context and maintain personality:
// Example: Creating a Project Manager Agent
const projectManagerAgent = {
  name: "Project Manager Pro",
  instructions: `
    You are an experienced project manager who:
    - Tracks action items and deadlines
    - Asks clarifying questions about requirements
    - Suggests best practices for team collaboration
    - Maintains a professional but friendly tone
  `,
};Agent Capabilities:
- π― Custom Instructions: Define personality, expertise, and behavior
 - π§ Memory: Remembers conversation context across sessions
 - π€ Voice Interaction: Responds to voice input in real-time
 - π Meeting Analytics: Tracks participation and engagement
 - π Multi-Meeting: Same agent can join different meetings
 
Enterprise-grade video conferencing with AI integration:
- HD Video/Audio: Crystal clear quality up to 4K
 - Screen Sharing: Share presentations, documents, and applications
 - Recording: Automatic recording with post-processing
 - Mobile Support: Native mobile experience
 - Low Latency: Global edge network for optimal performance
 
Transform raw meetings into actionable insights:
// Auto-generated meeting summary example
{
  overview: "Product roadmap planning session focusing on Q2 features...",
  keyPoints: [
    "Agreed on user authentication as top priority",
    "Timeline set for beta release in March",
    "Budget approved for additional developer resources"
  ],
  actionItems: [
    { assignee: "[email protected]", task: "Draft technical specs", due: "2024-01-15" }
  ],
  nextSteps: "Follow-up meeting scheduled for January 20th"
}Continue conversations with context-aware AI:
- Meeting Memory: AI remembers everything discussed
 - Document Search: Find specific moments from transcripts
 - Follow-up Questions: Ask for clarifications or expansions
 - Action Tracking: Monitor progress on agreed items
 
MeetAI supports multiple AI providers for different use cases:
// config/ai-models.ts
export const AI_MODELS = {
  conversation: "gpt-4-turbo", // For real-time chat
  summarization: "deepseek-chat", // For meeting summaries
  chat: "deepseek-chat", // For post-meeting interactions
};Set up Stream webhooks for real-time events:
# Your webhook endpoint
https://yourdomain.com/api/webhook
# Required events:
- call.session_started
- call.session_ended
- call.transcription_ready
- call.recording_ready
- message.newUsing Drizzle for type-safe database operations:
# Generate migration
pnpm db:generate
# Apply migrations
pnpm db:migrate
# Studio for database exploration
pnpm db:studio- 
Connect Repository
- Link your GitHub repository to Vercel
 - Configure environment variables in dashboard
 - Enable automatic deployments
 
 - 
Environment Variables
# Copy all variables from .env.local to Vercel dashboard # Ensure BETTER_AUTH_URL points to your production domain
 - 
Database Setup
# Use Neon for serverless PostgreSQL # Update DB_URL with production connection string
 
# Feature development
git checkout -b feature/amazing-feature
git commit -m "feat: add amazing feature"
git push origin feature/amazing-feature
# Create PR for review# Development
pnpm dev           # Local development server
pnpm dev:ngrok   # Expose local server via ngrok
pnpm dlx inngest@latest dev # Start Inngest local dev server
# Production build
pnpm build         # Build for production
pnpm start         # Start production server
# Database operations
pnpm db:studio     # Visual database editor
pnpm db:reset      # Reset database (dev only)We welcome contributions! Here's how to get started:
- Fork the repository
 - Create a feature branch
 - Make your changes
 - Add tests if applicable
 - Submit a pull request
 
- π Code Style: Follow existing patterns and ESLint rules
 - β Testing: Add tests for new features
 - π Documentation: Update docs for user-facing changes
 - π Type Safety: Maintain 100% TypeScript coverage
 - π― Performance: Consider performance impact of changes
 
- π Bug Reports: Use the bug report template
 - π‘ Feature Requests: Describe use case and expected behavior
 - π Documentation: Help improve our guides and examples