A modern, enterprise-grade video conferencing and collaboration platform
Features β’ Architecture β’ Getting Started β’ Contributing
- Overview
- Features
- Architecture
- Tech Stack
- Getting Started
- Development
- Project Structure
- Contributing
- License
MeetLite is a comprehensive video conferencing platform designed for modern teams and enterprises. Built with a microservices architecture, it provides high-quality video calls, intelligent scheduling, AI-powered insights, and seamless collaboration tools.
- HD Video Conferencing: WebRTC-based, low-latency video calls with screen sharing
- Smart Scheduling: AI-powered scheduling with calendar integrations (Google, Outlook)
- Real-time Collaboration: Whiteboard, document collaboration, and workflow management
- Meeting Intelligence: AI-generated summaries, transcripts, and action items
- Multi-Organization Management: Create and manage multiple organizations with separate teams, members, and assets
- Organization & Team Asset Tracking: Track meeting assets (audio recordings, transcripts) at both organization and team levels with granular access control
- Enterprise Ready: Role-based access control, team management, and comprehensive permissions
- Secure & Private: End-to-end encryption, secure rooms, and granular access control
-
Video Conferencing
- HD video and audio quality
- Screen sharing and presentation mode
- Virtual backgrounds
- Participant management
- Waiting rooms and meeting controls
-
Smart Scheduling
- AI-powered time suggestions
- Calendar integrations (Google Calendar, Outlook)
- Timezone-aware scheduling
- Automatic meeting reminders
- Recurring meetings
-
Collaboration Tools
- Real-time whiteboard (Tldraw)
- Document and simple coding collaboration (Yjs)
- Workflow management
- Chat messaging
- File sharing
-
Meeting Intelligence
- AI-generated meeting summaries
- Automatic transcription
- Action item extraction
- Sentiment analysis
- Key topics identification
-
Recording & Asset Management
- HD meeting recordings with organization and team-level tracking
- Searchable transcripts stored at organization and team levels
- AI-powered summaries and insights
- Granular access control for recordings and transcripts
- Organization-wide and team-specific asset visibility
- Shareable recording links with expiration
- Analytics and insights per organization and team
- Asset archiving and retention policies
-
Organization & Team Management
- Multiple Organizations: Create and manage multiple organizations from a single account
- Team Management: Create multiple teams within each organization
- Asset Tracking: Track meeting assets (recordings, transcripts) at both organization and team levels
- Access Control: Granular permissions for organization and team assets
- Organization-level assets: Accessible to all organization members
- Team-level assets: Accessible only to team members
- Private assets: Accessible only to participants
- Role-based access control (owner, admin, member)
- Invitation system for organizations and teams
- Member management across organizations and teams
-
Integrations
- Google Calendar
- Outlook Calendar
- Free: Basic meetings, limited features
- Pro: Advanced features, longer meetings, more participants
- Enterprise: Unlimited features, custom branding, dedicated support
MeetLite follows a microservices architecture with an API Gateway pattern for scalable, maintainable infrastructure.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Frontend (React) β
β http://localhost:5174 β
βββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β API Gateway (Port 3000) β
β Request Routing & Load Balancing β
βββββββββββββ¬ββββββββββββββββ¬ββββββββββββββββ¬ββββββββββββββββββ
β β β
βΌ βΌ βΌ
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β Auth Service β β Room Service β βMediaSoup Svc β
β (Port 5000) β β (Port 5001) β β (Port 3003) β
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β β β
βββββββββββββββββ΄ββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββ
β MongoDB Database β
β Redis Cache β
βββββββββββββββββββββββββββββ
- Purpose: Single entry point for all client requests
- Responsibilities:
- Request routing to appropriate services
- CORS handling
- Rate limiting
- Health monitoring
- Request/response logging
- Port: 3000
- Purpose: Authentication, authorization, and user management
- Responsibilities:
- User authentication (JWT)
- Organization management
- Team management
- Invitation system
- Plan management
- Payment processing (Stripe)
- Email notifications
- Port: 5000
- API Prefix:
/api/v1/*
- Purpose: Meeting and room management
- Responsibilities:
- Meeting CRUD operations
- Meeting scheduling
- Calendar integration
- Recording management
- AI services integration
- Analytics
- Port: 5001
- API Prefix:
/api/v1/*
- Purpose: WebRTC media handling and real-time collaboration
- Responsibilities:
- WebRTC signaling (Socket.IO)
- Media streaming (audio/video)
- Screen sharing
- Tldraw collaboration (whiteboard)
- Yjs document synchronization
- File uploads
- Port: 3003
- WebSocket:
/socket.io,/connect
- Purpose: Shared data models and utilities
- Responsibilities:
- Mongoose schemas
- Common utilities
- Plan configurations
- Constants
- Client Request β API Gateway (port 3000)
- Gateway β Routes to appropriate service based on path
- Service β Processes request, interacts with MongoDB/Redis
- Service β Returns response through gateway
- Gateway β Returns response to client
- Client β Connects to MediaSoup service via gateway
- MediaSoup β Handles WebRTC signaling and media streams
- MediaSoup β Manages collaboration state (Tldraw, Yjs)
- Framework: React 18+ with TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS
- UI Components: Shadcn/ui
- State Management: Zustand
- Routing: React Router v6
- WebRTC: MediaSoup client
- Real-time: Socket.IO Client
- Collaboration: Tldraw, Yjs
- Forms: React Hook Form
- Notifications: Sonner
- Icons: Lucide React
- Runtime: Node.js 20+
- Framework: Express.js
- Database: MongoDB (Mongoose)
- Cache: Redis
- Authentication: JWT
- WebRTC: MediaSoup
- Real-time: Socket.IO
- Email: Nodemailer
- Payment: Stripe
- File Storage: Local filesystem (configurable)
- API Gateway: Custom Express proxy
- Load Testing: K6
- Development: Concurrently
- Package Management: npm workspaces
- Node.js: v20.0.0 or higher
- MongoDB: v6.0 or higher
- Redis: v7.0 or higher (optional, for caching)
- npm: v9.0 or higher
- Clone the repository:
git clone https://github.com/YOUR_USERNAME/meetlite.git
cd meetlite- Install dependencies:
# Install root dependencies
npm install
# Install all workspace dependencies
npm run install:all- Set up environment variables:
Create .env files in each service directory:
backend/packages/api-gateway/.env:
PORT=3000
NODE_ENV=development
FRONTEND_URL=http://localhost:5174
AUTH_SERVICE_URL=http://localhost:5000
ROOM_SERVICE_URL=http://localhost:5001
MEDIASOUP_SERVICE_URL=http://localhost:3003backend/packages/auth-service/.env:
PORT=5000
NODE_ENV=development
MONGODB_URI=mongodb://localhost:27017/meetlite
JWT_SECRET=your-jwt-secret-key
FRONTEND_URL=http://localhost:5174
# ... (see backend/packages/auth-service/.env.example)backend/packages/room-service/.env:
PORT=5001
NODE_ENV=development
MONGODB_URI=mongodb://localhost:27017/meetlite
# ... (see backend/packages/room-service/.env.example)backend/packages/mediasoup-service/.env:
PORT=3003
NODE_ENV=development
# ... (see backend/packages/mediasoup-service/.env.example)client/.env:
VITE_API_URL=http://localhost:3000
# ... (see client/.env.example)- Start MongoDB and Redis:
# MongoDB (if not running as service)
mongod
# Redis (if not running as service)
redis-server- Start all backend services:
cd backend
npm run dev:allThis starts:
- API Gateway (port 3000)
- Auth Service (port 5000)
- Room Service (port 5001)
- MediaSoup Service (port 3003)
- Start the frontend (in a new terminal):
cd client
npm run dev- Access the application:
- Frontend: http://localhost:5174
- API Gateway: http://localhost:3000
- Health Check: http://localhost:3000/health
# Build frontend
npm run build:client
# Build backend (if applicable)
npm run build:backendmeetlite/
βββ client/ # React frontend application
β βββ src/
β β βββ components/ # React components
β β β βββ auth/ # Authentication components
β β β βββ dashboard/ # Dashboard components
β β β βββ meeting/ # Meeting components
β β β βββ room/ # Video room components
β β β βββ organization/ # Organization management
β β β βββ teams/ # Team management
β β β βββ ui/ # Reusable UI components
β β βββ contexts/ # React contexts
β β βββ hooks/ # Custom React hooks
β β βββ pages/ # Page components
β β βββ services/ # API service clients
β β βββ stores/ # Zustand stores
β β βββ types/ # TypeScript types
β β βββ utils/ # Utility functions
β βββ public/ # Static assets
β βββ package.json
β
βββ backend/ # Backend microservices
β βββ packages/
β β βββ api-gateway/ # API Gateway service
β β β βββ src/
β β β β βββ config/ # Configuration
β β β β βββ middleware/ # Express middleware
β β β β βββ routes/ # Service routing
β β β βββ package.json
β β β
β β βββ auth-service/ # Authentication service
β β β βββ src/
β β β β βββ controllers/ # Request handlers
β β β β βββ services/ # Business logic
β β β β βββ routes/ # API routes
β β β β βββ middleware/ # Auth middleware
β β β β βββ templates/ # Email templates
β β β β βββ utils/ # Utilities
β β β βββ package.json
β β β
β β βββ room-service/ # Room/Meeting service
β β β βββ src/
β β β β βββ controllers/
β β β β βββ services/
β β β β βββ routes/
β β β β βββ models/
β β β β βββ templates/
β β β βββ package.json
β β β
β β βββ mediasoup-service/ # WebRTC service
β β β βββ src/
β β β β βββ controllers/
β β β β βββ services/
β β β β βββ routes/
β β β β βββ handlers/
β β β βββ package.json
β β β
β β βββ shared-models/ # Shared models
β β βββ src/
β β β βββ models/ # Mongoose schemas
β β β βββ config/ # Shared config
β β β βββ utils/ # Shared utilities
β β βββ package.json
β β
β βββ README.md # Backend documentation
β
βββ k6/ # Load testing
β βββ backend/ # Backend load tests
β βββ frontend/ # Frontend load tests
β βββ config/ # Test configuration
β
βββ package.json # Root package.json (workspaces)
βββ README.md # This file
We welcome contributions to MeetLite! Please see our Contributing Guide for detailed information on:
- How to contribute
- Coding standards and guidelines
- Pull request process
- Issue reporting
- Development best practices
For a quick start, fork the repository, create a feature branch, make your changes, and open a pull request.
This project is licensed under the ISC License.
Built with β€οΈ by the MeetLite team
Documentation β’ API Reference β’ Changelog