Neural Meet is an innovative AI-powered meeting platform that allows you to create personalized AI agents to conduct video meetings with real-time voice interaction, automatic transcription, intelligent summarization, and post-meeting AI chat assistance.
Live Demo β’ Features β’ Tech Stack β’ How It Works
Neural Meet is a AI meeting platform that revolutionizes how you conduct and review meetings. Instead of traditional video calls, you can:
- Create Custom AI Agents - Design AI assistants with specific personalities, instructions, and purposes (e.g., interviewer, coach, tutor, consultant)
- Conduct Real-Time AI Meetings - Have voice conversations with your AI agents using OpenAI's Realtime API through video calls
- Automatic Processing - Get automatic transcription, recording, and AI-generated summaries after each meeting
- Post-Meeting AI Chat - Continue conversations with your AI agent via text chat, asking follow-up questions about the meeting
Think of it as having a personalized AI assistant that can participate in video calls, remember everything discussed, and help you review and act on meeting outcomes.
-
Sign Up / Sign In
- Navigate to the application
- Create an account using Email/Password, Google, or GitHub authentication
-
Create Your AI Agent
- Go to the Agents section
- Click "New Agent"
- Give your agent a name (e.g., "Interview Coach", "Language Tutor")
- Write custom instructions that define the agent's behavior and personality
- The agent will automatically get a unique avatar
-
Schedule a Meeting
- Navigate to the Meetings section
- Click "New Meeting"
- Provide a meeting name and select your AI agent
- Your meeting is ready to start
-
Join Your Meeting
- Click on your scheduled meeting
- Grant camera and microphone permissions
- Join the video call with your AI agent
- Have a real-time voice conversation!
-
Review Completed Meetings
- After ending the meeting, it will be processed automatically
- Access four tabs for each completed meeting:
- π Summary - AI-generated meeting summary with key points
- π Transcript - Full searchable transcript with speaker identification
- π₯ Recording - Video playback of your meeting
- β¨ Ask AI - Chat with your AI agent about the meeting
- Custom AI Personalities - Create agents with unique instructions and behaviors
- Auto-Generated Avatars - Each agent gets a unique robot avatar using DiceBear
- Reusable Templates - Use the same agent across multiple meetings
- HD Video Calls - 1080p quality recording with Stream Video SDK
- Real-Time Voice AI - OpenAI Realtime API integration for natural conversations
- Camera & Mic Controls - Full control over your audio/video during calls
- Speaker Layout - Professional meeting interface
- Automatic Transcription - Real-time transcription with speaker identification
- Auto-Recording - Every meeting is automatically recorded
- Closed Captions - Live captions during meetings
- AI Summaries - GPT-4 powered meeting summaries with:
- Overview section with key takeaways
- Thematic notes broken down by topic
- Searchable Transcripts - Find any moment with highlighted search
- Duration Tracking - Track meeting length and timestamps
- Continue the Conversation - Ask follow-up questions via text
- Context-Aware Responses - AI remembers the entire meeting
- Conversation History - Chat maintains context across messages
- Multiple Auth Options - Email/Password, Google OAuth, GitHub OAuth
- Secure Sessions - Token-based authentication with Better Auth
- Webhook Verification - Signed webhook payloads for security
- Responsive Design - Works on desktop and mobile
- Dark/Light Mode Support - Theme switching capability
- Data Tables - Sortable, searchable, paginated tables
- Loading & Error States - Polished user experience
Neural-Meet/
βββ public/
β βββ chat-instructions.txt # AI chat behavior template
β βββ system-prompt.txt # Meeting summarization prompt
β
βββ src/
β βββ app/ # Next.js App Router
β β βββ (auth)/ # Authentication routes
β β β βββ sign-in/ # Sign in page
β β β βββ sign-up/ # Sign up page
β β βββ (dashboard)/ # Protected dashboard routes
β β β βββ agents/ # Agent management
β β β β βββ [agentId]/ # Individual agent view
β β β βββ meetings/ # Meeting management
β β β βββ [meetingId]/ # Individual meeting view
β β βββ api/
β β β βββ auth/ # Better Auth API routes
β β β βββ ingest/ # Inngest background jobs
β β β βββ trpc/ # tRPC API routes
β β β βββ webhook/ # Stream webhook handler
β β βββ call/
β β βββ [meetingId]/ # Video call interface
β β
β βββ components/ # Shared UI components
β β βββ ui/ # shadcn/ui components
β β βββ ... # Custom components
β β
β βββ DB/
β β βββ index.ts # Drizzle database connection
β β βββ schema.ts # Database schema definitions
β β
β βββ hooks/ # Custom React hooks
β β
β βββ ingest/
β β βββ client.ts # Inngest client setup
β β βββ functions.ts # Background job definitions
β β
β βββ lib/
β β βββ auth.ts # Better Auth configuration
β β βββ auth-client.ts # Auth client utilities
β β βββ stream-video.ts # Stream Video SDK setup
β β βββ stream-chat.ts # Stream Chat SDK setup
β β βββ avatar.tsx # Avatar generation
β β βββ utils.ts # Utility functions
β β
β βββ modules/ # Feature modules
β β βββ agents/ # Agent management module
β β β βββ hooks/ # Agent-related hooks
β β β βββ server/ # tRPC procedures
β β β βββ ui/ # Agent UI components
β β βββ meetings/ # Meeting management module
β β β βββ hooks/ # Meeting-related hooks
β β β βββ server/ # tRPC procedures
β β β βββ ui/ # Meeting UI components
β β βββ call/ # Video call module
β β β βββ ui/ # Call UI components
β β βββ auth/ # Auth UI components
β β βββ dashboard/ # Dashboard components
β β βββ home/ # Home page components
β β
β βββ trpc/ # tRPC configuration
β β βββ init.ts # tRPC initialization
β β βββ client.tsx # Client-side tRPC
β β βββ server.tsx # Server-side tRPC
β β βββ routers/ # API routers
β β
β βββ constants.ts # App constants
β
βββ drizzle.config.ts # Drizzle ORM configuration
βββ next.config.ts # Next.js configuration
βββ package.json # Dependencies
βββ tsconfig.json # TypeScript configuration
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Next.js App ββββββΆβ tRPC API ββββββΆβ Neon Database β
β (Frontend) β β (Backend) β β (PostgreSQL) β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β β
β β
βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ
β Stream Video β β Inngest β
β (Realtime AI) β β (Background Jobs)β
βββββββββββββββββββ βββββββββββββββββββ
β β
β β
βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ
β OpenAI API β β GPT-4o β
β (Realtime Voice)β β (Summarizer) β
βββββββββββββββββββ βββββββββββββββββββ
-
Meeting Creation
- User creates a meeting linked to an AI agent
- Stream Video call is initialized with transcription & recording enabled
- Meeting status:
upcoming
-
Call Session Started (Webhook:
call.session_started)- Meeting status changes to
active - OpenAI Realtime connection is established
- AI agent joins with custom instructions
- Real-time voice conversation begins
- Meeting status changes to
-
During the Call
- Live transcription with closed captions
- Video recording in progress
- Speaker layout with call controls
-
Call Ended (Webhook:
call.session_ended)- Meeting status changes to
processing - End time is recorded
- Meeting status changes to
-
Transcription Ready (Webhook:
call.transcription_ready)- Transcript URL is saved
- Inngest background job triggered for summarization
-
Background Processing (Inngest:
meetings/processing)- Fetch and parse JSONL transcript
- Identify speakers (users and agents)
- Generate AI summary using GPT-4
- Meeting status changes to
completed
-
Post-Meeting
- User can view summary, transcript, recording
- Text chat with AI agent using meeting context
- AI responds based on meeting summary and chat history
Neural Meet uses Stream's OpenAI integration to enable voice conversations:
const realtimeClient = await streamVideo.video.connectOpenAi({
call,
openAiApiKey: process.env.AI_API_KEY!,
agentUserId: existingAgent.id
});
realtimeClient.updateSession({
instructions: existingAgent.instructions,
});The AI agent participates in the video call as a regular participant, responding to voice input in real-time.
| Category | Technology | Purpose |
|---|---|---|
| Framework | Next.js 16 | Full-stack React framework with App Router |
| Language | TypeScript | Type-safe development |
| UI Library | React 19 | UI components with latest features |
| Styling | Tailwind CSS 4 | Utility-first CSS framework |
| Components | shadcn/ui | Accessible component library |
| Database | Neon (PostgreSQL) | Serverless PostgreSQL database |
| ORM | Drizzle ORM | Type-safe database queries |
| Authentication | Better Auth | Flexible auth with OAuth support |
| API Layer | tRPC | End-to-end typesafe APIs |
| Data Fetching | TanStack Query | Server state management |
| Video/Audio | Stream Video SDK | Real-time video infrastructure |
| Chat | Stream Chat SDK | Real-time chat infrastructure |
| AI Voice | OpenAI Realtime API | Voice conversation with AI |
| AI Text | OpenAI GPT-4o | Summarization and chat |
| Background Jobs | Inngest | Reliable background processing |
| Avatars | DiceBear | Dynamic avatar generation |
| Form Handling | React Hook Form + Zod | Type-safe form validation |
| Markdown | react-markdown | Render AI summaries |
Create a .env.local file with the following variables:
# Database
DATABASE_URL=your_neon_database_url
# Authentication
BETTER_AUTH_SECRET=your_secret_key
# OAuth Providers
GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_client_secret
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
# Stream (Video & Chat)
NEXT_PUBLIC_STREAM_VIDEO_API_KEY=your_stream_api_key
NEXT_PUBLIC_STREAM_SECRET_KEY=your_stream_secret
NEXT_PUBLIC_STREAM_CHAT_API_KEY=your_stream_chat_api_key
STREAM_CHAT_SECRET_KEY=your_stream_chat_secret
# OpenAI
AI_API_KEY=your_openai_api_key
# Inngest
INNGEST_SIGNING_KEY=your_inngest_signing_key- Node.js 18+
- pnpm/npm/yarn
- PostgreSQL database (Neon recommended)
- Stream account
- OpenAI API key
# Clone the repository
git clone https://github.com/yourusername/Neural-Meet.git
cd Neural-Meet
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env.local
# Edit .env.local with your credentials
# Push database schema
npm run db:push
# Start development server
npm run dev# View and manage database
npm run db:studioFor local webhook testing with ngrok:
npm run dev:webhook- π― Unique Concept - AI agents that participate in video calls
- π End-to-End Flow - From meeting creation to AI-powered review
- π Full Observability - Transcripts, recordings, and summaries
- π¬ Continuous AI - From voice during calls to chat after
- ποΈ Modern Architecture - Type-safe, modular, scalable
- π¨ Polished UI - Professional, responsive interface
This project is licensed under the MIT License.
Contributions are welcome! Please feel free to submit a Pull Request.
Built with β€οΈ By Arvind Choudhary