Meet smarter, capture insights.
Smart Meet is an AI-powered meeting platform that records, transcribes, and summarizes your meetings in real-time. Leverage intelligent AI agents to triage action items, generate highlights, and extract meaningful insights from every conversation.
- 📹 Video Meetings - High-quality video calls with recording capabilities
- 🎙️ Real-time Transcription - Accurate, searchable transcripts for every meeting
- 🤖 AI Agents - Automated note-taking, action item extraction, and intelligent summaries
- 💬 Chat & Collaboration - In-meeting chat with context-aware messaging
- 📊 Analytics & Insights - Track meeting metrics and team productivity
- 🔒 Secure & Private - End-to-end encryption and enterprise-grade security
- 🎨 Beautiful UI - Modern, responsive interface built with Next.js 15 and Tailwind CSS
- Next.js 15 - React framework with App Router
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first styling
- Drizzle ORM - Type-safe database toolkit
- Neon Database - Serverless Postgres
- Stream Video SDK - Real-time video infrastructure
- Stream Chat - In-app chat functionality
- OpenAI Realtime API - Real-time AI transcription
- tRPC - End-to-end typesafe APIs
- TanStack Query - Powerful data synchronization
- Zod - TypeScript-first schema validation
- Better Auth - Modern authentication solution
- Polar - Subscription and billing management
- Radix UI - Unstyled, accessible components
- Lucide Icons - Beautiful icon library
- shadcn/ui - Re-usable component patterns
Before you begin, ensure you have the following installed:
- Node.js (v20 or higher)
- npm or yarn or pnpm
- PostgreSQL database (or use Neon for serverless Postgres)
You'll also need API keys for:
- Stream (Video & Chat)
- OpenAI
- Polar (for payments)
- Inngest (for workflows)
git clone https://github.com/supritR21/Smart-Meet.git
cd Smart-Meetnpm installCreate a .env file in the root directory:
# Database
DATABASE_URL="your_neon_postgres_url"
# Better Auth
BETTER_AUTH_SECRET="your_secret_key"
BETTER_AUTH_URL="http://localhost:3000"
# Stream
STREAM_API_KEY="your_stream_api_key"
STREAM_API_SECRET="your_stream_api_secret"
# OpenAI
OPENAI_API_KEY="your_openai_api_key"
# Polar (Payments)
POLAR_ACCESS_TOKEN="your_polar_access_token"
# Inngest
INNGEST_EVENT_KEY="your_inngest_event_key"
INNGEST_SIGNING_KEY="your_inngest_signing_key"
# OAuth Providers (optional)
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"Push the database schema:
npm run db:pushOpen Drizzle Studio to inspect your database (optional):
npm run db:studionpm run devOpen http://localhost:3000 in your browser.
| Command | Description |
|---|---|
npm run dev |
Start the development server |
npm run build |
Build the production application |
npm start |
Start the production server |
npm run lint |
Run ESLint to check code quality |
npm run db:push |
Push database schema changes |
npm run db:studio |
Open Drizzle Studio (database GUI) |
npm run dev:webhook |
Expose local server via ngrok for webhooks |
Smart-Meet/
├── src/
│ ├── app/ # Next.js App Router pages
│ │ ├── (auth)/ # Authentication pages
│ │ ├── (dashboard)/ # Dashboard pages
│ │ ├── call/ # Video call pages
│ │ └── api/ # API routes (tRPC, webhooks)
│ ├── components/ # Reusable UI components
│ │ └── ui/ # shadcn/ui components
│ ├── db/ # Database schema and configuration
│ ├── hooks/ # Custom React hooks
│ ├── inngest/ # Inngest workflow functions
│ ├── lib/ # Utility functions and configurations
│ ├── modules/ # Feature modules
│ │ ├── agents/ # AI agents feature
│ │ ├── auth/ # Authentication
│ │ ├── call/ # Video calling
│ │ ├── dashboard/ # Dashboard views
│ │ ├── home/ # Landing page
│ │ ├── meetings/ # Meetings management
│ │ └── premium/ # Subscription/billing
│ └── trpc/ # tRPC router and configuration
├── public/ # Static assets
├── .env # Environment variables (not committed)
├── drizzle.config.ts # Drizzle ORM configuration
├── next.config.ts # Next.js configuration
├── tailwind.config.ts # Tailwind CSS configuration
└── tsconfig.json # TypeScript configuration
Create custom AI agents that can:
- Automatically generate meeting summaries
- Extract action items and decisions
- Answer questions about meeting content
- Track follow-ups and deadlines
- Schedule and manage meetings
- Invite participants via email
- View meeting history and recordings
- Search transcripts for specific topics
- HD video and audio
- Screen sharing
- In-meeting chat
- Real-time transcription
- Participant controls
- Free tier with limited features
- Premium plans with unlimited meetings and agents
- Managed through Polar billing system
- All video streams are encrypted in transit
- End-to-end encryption for sensitive data
- Secure authentication with Better Auth
- Environment variables for sensitive credentials
- Regular security audits and updates
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is private and proprietary. All rights reserved.
For support, email supritraj30@gmail.com or open an issue in the GitHub repository.
- Next.js for the amazing framework
- Stream for video infrastructure
- OpenAI for AI capabilities
- Vercel for hosting and deployment
- All open-source contributors and maintainers
Built with ❤️ by the Smart Meet team

