nikolaospapagiannis/nebula-ai

0

stars

66

commits

TypeScript

primary language

Mar 5, 2026

updated

README

OpenMeet Logo

OpenMeet

Open-Source Meeting Intelligence Platform

AI-powered transcription, insights, and collaboration for modern teams

Build Status License TypeScript Node.js Python

Next.js React Native PostgreSQL Redis Docker PWA

Quick StartDocumentationFeaturesWeb AppContributingRoadmap


Table of Contents


Features

Meeting Intelligence

  • AI Transcription - Real-time transcription with 100+ language support
  • Speaker Diarization - Automatic speaker identification using PyAnnote
  • Smart Summaries - LLM-powered meeting summaries and action items
  • Live Captions - Real-time WebSocket-based captioning
  • Video Player - Synchronized playback with transcript highlighting
  • Video Clips - Create, preview, and share meeting highlights
  • Meeting Insights - Sentiment analysis, talk time, topic extraction

Revenue Intelligence

  • Deal Tracking - Link meetings to deals for complete pipeline visibility
  • Pipeline Kanban - Drag-and-drop deal management board
  • Win/Loss Analysis - AI-generated insights on closed deals
  • Sales Coaching - Automated scorecards with AI recommendations
  • Competitor Tracking - Monitor competitor mentions in calls
  • Deal Health Score - Visual health indicators with improvement suggestions
  • CRM Sync - Automatic syncing with Salesforce, HubSpot, and Pipedrive

Workflow Automation

  • Visual Workflow Builder - Drag-and-drop canvas with nodes and edges
  • Custom Triggers - Meeting completed, keyword detected, schedule-based
  • Action Nodes - Send email, post to Slack, update CRM, call webhooks
  • Condition Branching - If/then logic for complex workflows
  • Execution Logs - Real-time monitoring and debugging
  • Pre-built Templates - Ready-to-use workflow templates
  • Test Mode - Test workflows before deploying

Enterprise Features

  • SSO Integration - SAML 2.0 with Okta, Azure AD, Auth0
  • OIDC Support - OpenID Connect configuration
  • SCIM Provisioning - Automated user provisioning with token management
  • Domain Verification - DNS TXT record verification
  • Advanced RBAC - Fine-grained role-based access control
  • White-Label - Custom branding, domains, and theming
  • Compliance - GDPR, HIPAA, SOC2 ready audit logging

Multi-Platform

  • Web App - Modern Next.js 14 dashboard with PWA support
  • Mobile App - React Native for iOS and Android
  • Chrome Extension - One-click meeting recording with bot injection
  • GraphQL API - Full-featured API with subscriptions
  • Webhooks - Real-time event notifications with delivery logs
  • Developer Portal - API keys, playground, and SDK documentation

AI Flexibility

  • Multi-Provider - OpenAI, Anthropic, vLLM, Ollama, LM Studio
  • Self-Hosted AI - Run models locally for complete data privacy
  • AI Apps Platform - Marketplace with 12+ pre-built AI apps
  • Custom App Builder - Create custom AI apps with prompt templates
  • Custom Fine-Tuning - Train models on your organization's data
  • Air-Gapped Mode - Run entirely offline with local models
Feature Comparison with Competitors
FeatureOpenMeetFireflies.aiOtter.aiGong
Multi-AI Providers5+ providersOpenAI onlyOpenAI onlyProprietary
Mobile AppiOS + AndroidYesiOS onlyYes
White-LabelFull brandingNoNoEnterprise
Self-Hosted OptionDocker ComposeNoNoNo
GraphQL SubscriptionsReal-timeNoNoNo
Visual Workflow BuilderYesLimitedNoNo
AI Apps Marketplace12+ appsNoNoNo
Custom Fine-TuningOpenAI APINoNoProprietary
PWA SupportYesNoNoNo
Open Source100% OpenNoNoNo
PriceFree$10-39/user/mo$16.99+/mo$100+/user/mo

Web App Features

The OpenMeet web application includes a comprehensive set of features organized into functional areas:

Authentication & Security

FeatureDescriptionComponents
Login/RegisterEmail/password and OAuth authenticationLoginPage, RegisterPage
Password ResetForgot password with email verificationForgotPasswordPage, ResetPasswordPage
Email VerificationEmail confirmation flow with resendVerifyEmailPage, PendingVerification
MFA SetupTOTP-based two-factor authenticationMFASetupWizard, MFAVerifyModal
Session ManagementActive sessions and device managementSecuritySettings

Onboarding & First-Time UX

FeatureDescriptionComponents
Onboarding SurveyMulti-step wizard for user preferencesOnboardingSurvey, OnboardingPage
Welcome ModalFeature introduction for new usersWelcomeModal
Feature TourInteractive product tour with tooltipsFeatureTour, TourTooltip
Empty StatesHelpful empty states with CTAsEmptyDashboard, EmptyMeetingsList
Setup ChecklistProgress tracker for account setupSetupChecklist

Meeting Management

FeatureDescriptionComponents
File UploadDrag-and-drop with chunked uploads (up to 2GB)MeetingUploadModal, FileDropZone
Processing ProgressReal-time status via WebSocketProcessingProgress
Meeting DetailSynchronized player with transcriptMeetingPlayer, SyncedTranscript
Meeting FiltersAdvanced filtering with saved presetsMeetingFilters, FilterPresets
Video ClipsTimeline selection and sharingClipTimeline, ClipPreview, ClipShareModal

AI Features

FeatureDescriptionComponents
Ask AICross-meeting AI assistantAskAIChat, SuggestedQuestions
AI SummaryExpandable summary with sectionsMeetingSummaryPanel
Meeting InsightsSentiment, talk time, topicsMeetingInsights, SentimentTimeline
AI AppsMarketplace and custom builderAppMarketplace, CustomAppBuilder

Search & Navigation

FeatureDescriptionComponents
Global SearchCmd+K search across all contentGlobalSearchModal, SearchResults
Live TranscriptionReal-time meeting transcriptionLiveTranscriptPanel, LiveControls
NotificationsReal-time notification systemNotificationDropdown, NotificationToast

Analytics & Reporting

FeatureDescriptionComponents
Analytics DashboardMeeting volume, engagement, exportMeetingVolumeChart, EngagementMetrics
Participant LeaderboardTop participants with sortingParticipantLeaderboard
Quality ScoreMeeting quality metrics (0-100)QualityScoreCard, QualityBreakdown
Team TrendsTeam performance over timeTeamQualityTrends
Export ReportsCSV and PDF exportExportReportModal

Revenue & Sales

FeatureDescriptionComponents
Pipeline KanbanDrag-and-drop deal boardPipelineKanban
Deal TimelineActivity history with sentimentDealTimeline
Competitor MentionsTrack competitor discussionsCompetitorMentions
AI Next StepsAI-generated recommendationsNextStepsAI
Deal HealthVisual health scoringDealHealthScore

Coaching & Training

FeatureDescriptionComponents
AI Coaching InsightsPersonalized recommendationsAICoachingInsights
Performance TrendsHistorical performance chartsPerformanceTrends
Peer ComparisonAnonymous benchmarkingPeerComparison
Coaching GoalsGoal setting and trackingCoachingGoals
Scorecard EvaluatorAutomatic transcript scoringScorecardEvaluator

Enterprise Administration

FeatureDescriptionComponents
SSO ConfigurationSAML and OIDC setupSAMLConfigForm, OIDCConfigForm
SCIM ProvisioningUser provisioningSCIMProvisioning
Domain VerificationDNS verificationDomainVerification
BrandingLogo, colors, themesThemeEditor, BrandAssetLibrary
Custom DomainCNAME setupCustomDomainSetup

Developer Tools

FeatureDescriptionComponents
API Key ManagerCreate and rotate keysAPIKeyManager
API PlaygroundInteractive API testingAPIPlayground
SDK DocumentationJS, Python, cURL examplesSDKDocs
WebhooksEvent subscriptionsWebhookForm, DeliveryLogs

Why OpenMeet?

The Problem: Meeting intelligence tools are either too expensive, too limited, or lock you into proprietary AI systems.

Our Solution: OpenMeet provides enterprise-grade meeting intelligence that's 100% open source:

  • Own Your Data - Self-host the entire platform with Docker Compose
  • Choose Your AI - Use OpenAI, run local models with Ollama, or mix providers
  • Complete Privacy - Air-gapped mode for sensitive environments
  • Customize Everything - White-label, custom workflows, fine-tuned models
  • No Vendor Lock-in - MIT licensed, forever free, community-driven

"From paying $100+/user/month to running your own meeting intelligence platform for free."


Quick Start

Prerequisites

  • Node.js 20+
  • Python 3.11+
  • Docker and Docker Compose
  • pnpm (npm install -g pnpm)

30-Second Setup

# Clone the repository
git clone https://github.com/openmeet/openmeet.git
cd openmeet

# Install dependencies
pnpm install

# Copy environment configuration
cp .env.example .env

# Start infrastructure (PostgreSQL, Redis, Elasticsearch)
docker-compose up -d

# Run database migrations
pnpm prisma migrate dev

# Start development servers
pnpm dev

That's it! Open http://localhost:3003 to see the web app.

ServiceURL
Web Apphttp://localhost:3003
API Serverhttp://localhost:4000
AI Servicehttp://localhost:8888
WebSocketws://localhost:5003

Installation

# Clone repository
git clone https://github.com/openmeet/openmeet.git
cd openmeet

# Configure environment
cp .env.example .env
# Edit .env with your settings

# Start all services
docker-compose up -d

# View logs
docker-compose logs -f

Manual Installation

Step-by-step manual setup

1. Install Dependencies

# Clone repository
git clone https://github.com/openmeet/openmeet.git
cd openmeet

# Install Node.js dependencies
pnpm install

# Install Python dependencies (for AI service)
cd apps/ai-service
pip install -r requirements.txt
pip install -r requirements-ml.txt
cd ../..

2. Set Up Databases

# Start infrastructure services
docker-compose up -d postgres redis elasticsearch rabbitmq minio

# Wait for services to be healthy
docker-compose ps

# Run Prisma migrations
pnpm prisma migrate dev

# (Optional) Seed database
pnpm prisma db seed

3. Configure Environment

cp .env.example .env

Edit .env with your configuration (see Configuration).

4. Start Services

# Terminal 1: API Server
pnpm dev:api

# Terminal 2: Web Frontend
pnpm dev:web

# Terminal 3: AI Service
cd apps/ai-service && uvicorn app.main:app --reload --port 8888

Air-Gapped Mode (Local AI)

For complete privacy, OpenMeet supports running entirely offline with local AI models:

# Start with local Ollama
ollama serve &
ollama pull llama3.2

# Configure .env for local AI
OPENAI_BASE_URL=http://host.docker.internal:11434/v1
OPENAI_MODEL=llama3.2
USE_LOCAL_TRANSCRIPTION=true

# Start OpenMeet
docker-compose up -d

Configuration

Environment Variables

Create a .env file in the project root. See .env.example for all options.

Required Variables

VariableDescriptionExample
DATABASE_URLPostgreSQL connection stringpostgresql://user:pass@localhost:5432/openmeet
REDIS_URLRedis connection stringredis://:password@localhost:6379
JWT_SECRETJWT signing secret (32+ chars)your-secure-secret-min-32-characters
JWT_REFRESH_SECRETRefresh token secretdifferent-secure-secret-min-32-chars

AI Provider Configuration

VariableDescription
OPENAI_API_KEYOpenAI API key for GPT-4/Whisper
OPENAI_BASE_URLCustom endpoint (for Ollama/vLLM)
ANTHROPIC_API_KEYAnthropic API key for Claude
OLLAMA_URLOllama server URL
HF_TOKENHuggingFace token for model downloads

Architecture

+-------------------------------------------------------------------------+
|                         CLIENT LAYER                                     |
|  +--------------+  +---------------+  +--------------+  +------------+  |
|  |   Next.js    |  |    Chrome     |  | React Native |  |   GraphQL  |  |
|  |   Web App    |  |   Extension   |  |  Mobile App  |  |   Client   |  |
|  |    (PWA)     |  |               |  |              |  |            |  |
|  +------+-------+  +-------+-------+  +------+-------+  +------+-----+  |
+---------+------------------+------------------+----------------+---------+
          |                  |                  |                |
          +------------------+---------+--------+----------------+
                                       |
+-----------------------------------------+-----------------------------+
|                         API LAYER                                      |
|  +-------------------------------------------------------------------+ |
|  |                    Express.js API Server                          | |
|  |         REST API - GraphQL - WebSocket - Rate Limiting            | |
|  |                                                                   | |
|  |  +-------------------------------------------------------------+  | |
|  |  |                    SERVICE LAYER (70+)                      |  | |
|  |  |                                                             |  | |
|  |  |  TranscriptionService - RevenueIntelligenceService          |  | |
|  |  |  WorkflowAutomationService - SSOService - RBACService       |  | |
|  |  |  SlackBotService - TeamsIntegrationService - ...            |  | |
|  |  +-------------------------------------------------------------+  | |
|  +-------------------------------------------------------------------+ |
+-------------------------------------------+-----------------------------+
                                            |
+-------------------------------------------v-----------------------------+
|                        DATA LAYER                                       |
|  +-----------+ +-----------+ +-----------+ +-----------+ +-----------+  |
|  |PostgreSQL | |   Redis   | | Elastic-  | | RabbitMQ  | |   MinIO   |  |
|  | (Prisma)  | |  (Cache)  | |  search   | |  (Queue)  | |   (S3)    |  |
|  +-----------+ +-----------+ +-----------+ +-----------+ +-----------+  |
+-------------------------------------------+-----------------------------+
                                            |
+-------------------------------------------v-----------------------------+
|                       AI/ML LAYER                                       |
|  +-------------------------------------------------------------------+  |
|  |                  Python FastAPI AI Service                        |  |
|  |                                                                   |  |
|  |  +----------+ +----------+ +----------+ +----------+ +----------+ |  |
|  |  |  OpenAI  | |Anthropic | |   vLLM   | |  Ollama  | |LM Studio | |  |
|  |  |  GPT-4   | |  Claude  | | (Local)  | | (Local)  | | (Local)  | |  |
|  |  +----------+ +----------+ +----------+ +----------+ +----------+ |  |
|  |                                                                   |  |
|  |  PyAnnote (Diarization) - KeyBERT - spaCy - WhisperX             |  |
|  +-------------------------------------------------------------------+  |
+-------------------------------------------------------------------------+

Tech Stack

Backend

TechnologyPurpose
Node.js 20Runtime environment
Express.js 4Web framework
TypeScript 5.3Type-safe development
Prisma 5PostgreSQL ORM
GraphQLAPI query language
Socket.ioReal-time communication
BullJob queue processing

Frontend

TechnologyPurpose
Next.js 14React framework (App Router)
React 18UI library
TailwindCSSStyling
Radix UIAccessible components
RechartsData visualization
ZustandState management

AI/ML

TechnologyPurpose
FastAPIPython API framework
OpenAIGPT-4, Whisper, embeddings
AnthropicClaude models
OllamaLocal model inference
PyAnnoteSpeaker diarization
WhisperXFast transcription
KeyBERTKeyword extraction

Infrastructure

TechnologyPurpose
PostgreSQL 15Primary database (with pgvector)
Redis 7Caching, sessions
Elasticsearch 8Full-text search
RabbitMQMessage queue
MinIOS3-compatible storage
DockerContainerization

API Documentation

REST API

# Health check
curl http://localhost:4000/health

# Authenticate
curl -X POST http://localhost:4000/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email": "user@example.com", "password": "password"}'

# Get meetings (authenticated)
curl http://localhost:4000/api/v1/meetings \
  -H "Authorization: Bearer <token>"

AI Service Endpoints

EndpointMethodDescription
/api/v1/transcribePOSTTranscribe audio file
/api/v1/diarizePOSTSpeaker diarization
/api/v1/summarizePOSTGenerate meeting summary
/api/v1/sentimentPOSTSentiment analysis
/api/v1/extract-keywordsPOSTKeyword extraction
/api/v1/chatPOSTConversational AI
/healthGETHealth check

The Team

OpenMeet is built and maintained by a passionate team of engineers and entrepreneurs:

Nikolaos Papagiannis
Nikolaos Papagiannis
Co-Founder & Lead Engineer
GitHub | LinkedIn
Wojciech M. Pysiewicz
Wojciech M. Pysiewicz
Co-Founder & Strategy
Website | LinkedIn
Adam Filipowski
Adam Filipowski
Co-Founder & Product
GitHub | LinkedIn

Roadmap

Completed

  • Core meeting transcription and diarization
  • Multi-provider AI support (OpenAI, Anthropic, vLLM, Ollama)
  • CRM integrations (Salesforce, HubSpot, Pipedrive)
  • Revenue intelligence and sales coaching
  • Enterprise SSO (SAML, SCIM, OIDC)
  • White-label platform with custom branding
  • React Native mobile app
  • Chrome extension with bot injection
  • Complete authentication flows
  • Visual workflow automation builder
  • AI Apps marketplace and custom builder
  • Developer portal with API playground
  • PWA support (install, offline, push notifications)

In Progress

  • Real-time meeting bot for Zoom/Teams/Meet
  • Enhanced video intelligence with visual analysis
  • Custom model fine-tuning UI
  • Multi-language support expansion

Planned

  • Desktop application (Electron)
  • Meeting scheduling (Calendly-like)
  • Plugin marketplace
  • On-premise deployment guide

Contributing

We welcome contributions! Please see our Contributing Guide for details.

Quick Contribution Steps

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development

# Install dependencies
pnpm install

# Start development servers
pnpm dev

# Run tests
pnpm test

# Run linting
pnpm lint

Security

Security is a top priority. Please see our Security Policy for:

  • Supported versions
  • Reporting vulnerabilities
  • Security best practices

Do not report security vulnerabilities through public GitHub issues.


License

This project is licensed under the MIT License - see the LICENSE file for details.

MIT License - Use freely for commercial and personal projects.

Built with love by the OpenMeet Team

Star on GitHubContributeReport Issues


OpenMeet is proudly open source and free forever.

Contributors

claude

14 commits

nikolaospapagiannis/nebula-ai

0

stars

66

commits

TypeScript

primary language

Mar 5, 2026

updated

README

OpenMeet Logo

OpenMeet

Open-Source Meeting Intelligence Platform

AI-powered transcription, insights, and collaboration for modern teams

Build Status License TypeScript Node.js Python

Next.js React Native PostgreSQL Redis Docker PWA

Quick StartDocumentationFeaturesWeb AppContributingRoadmap


Table of Contents


Features

Meeting Intelligence

  • AI Transcription - Real-time transcription with 100+ language support
  • Speaker Diarization - Automatic speaker identification using PyAnnote
  • Smart Summaries - LLM-powered meeting summaries and action items
  • Live Captions - Real-time WebSocket-based captioning
  • Video Player - Synchronized playback with transcript highlighting
  • Video Clips - Create, preview, and share meeting highlights
  • Meeting Insights - Sentiment analysis, talk time, topic extraction

Revenue Intelligence

  • Deal Tracking - Link meetings to deals for complete pipeline visibility
  • Pipeline Kanban - Drag-and-drop deal management board
  • Win/Loss Analysis - AI-generated insights on closed deals
  • Sales Coaching - Automated scorecards with AI recommendations
  • Competitor Tracking - Monitor competitor mentions in calls
  • Deal Health Score - Visual health indicators with improvement suggestions
  • CRM Sync - Automatic syncing with Salesforce, HubSpot, and Pipedrive

Workflow Automation

  • Visual Workflow Builder - Drag-and-drop canvas with nodes and edges
  • Custom Triggers - Meeting completed, keyword detected, schedule-based
  • Action Nodes - Send email, post to Slack, update CRM, call webhooks
  • Condition Branching - If/then logic for complex workflows
  • Execution Logs - Real-time monitoring and debugging
  • Pre-built Templates - Ready-to-use workflow templates
  • Test Mode - Test workflows before deploying

Enterprise Features

  • SSO Integration - SAML 2.0 with Okta, Azure AD, Auth0
  • OIDC Support - OpenID Connect configuration
  • SCIM Provisioning - Automated user provisioning with token management
  • Domain Verification - DNS TXT record verification
  • Advanced RBAC - Fine-grained role-based access control
  • White-Label - Custom branding, domains, and theming
  • Compliance - GDPR, HIPAA, SOC2 ready audit logging

Multi-Platform

  • Web App - Modern Next.js 14 dashboard with PWA support
  • Mobile App - React Native for iOS and Android
  • Chrome Extension - One-click meeting recording with bot injection
  • GraphQL API - Full-featured API with subscriptions
  • Webhooks - Real-time event notifications with delivery logs
  • Developer Portal - API keys, playground, and SDK documentation

AI Flexibility

  • Multi-Provider - OpenAI, Anthropic, vLLM, Ollama, LM Studio
  • Self-Hosted AI - Run models locally for complete data privacy
  • AI Apps Platform - Marketplace with 12+ pre-built AI apps
  • Custom App Builder - Create custom AI apps with prompt templates
  • Custom Fine-Tuning - Train models on your organization's data
  • Air-Gapped Mode - Run entirely offline with local models
Feature Comparison with Competitors
FeatureOpenMeetFireflies.aiOtter.aiGong
Multi-AI Providers5+ providersOpenAI onlyOpenAI onlyProprietary
Mobile AppiOS + AndroidYesiOS onlyYes
White-LabelFull brandingNoNoEnterprise
Self-Hosted OptionDocker ComposeNoNoNo
GraphQL SubscriptionsReal-timeNoNoNo
Visual Workflow BuilderYesLimitedNoNo
AI Apps Marketplace12+ appsNoNoNo
Custom Fine-TuningOpenAI APINoNoProprietary
PWA SupportYesNoNoNo
Open Source100% OpenNoNoNo
PriceFree$10-39/user/mo$16.99+/mo$100+/user/mo

Web App Features

The OpenMeet web application includes a comprehensive set of features organized into functional areas:

Authentication & Security

FeatureDescriptionComponents
Login/RegisterEmail/password and OAuth authenticationLoginPage, RegisterPage
Password ResetForgot password with email verificationForgotPasswordPage, ResetPasswordPage
Email VerificationEmail confirmation flow with resendVerifyEmailPage, PendingVerification
MFA SetupTOTP-based two-factor authenticationMFASetupWizard, MFAVerifyModal
Session ManagementActive sessions and device managementSecuritySettings

Onboarding & First-Time UX

FeatureDescriptionComponents
Onboarding SurveyMulti-step wizard for user preferencesOnboardingSurvey, OnboardingPage
Welcome ModalFeature introduction for new usersWelcomeModal
Feature TourInteractive product tour with tooltipsFeatureTour, TourTooltip
Empty StatesHelpful empty states with CTAsEmptyDashboard, EmptyMeetingsList
Setup ChecklistProgress tracker for account setupSetupChecklist

Meeting Management

FeatureDescriptionComponents
File UploadDrag-and-drop with chunked uploads (up to 2GB)MeetingUploadModal, FileDropZone
Processing ProgressReal-time status via WebSocketProcessingProgress
Meeting DetailSynchronized player with transcriptMeetingPlayer, SyncedTranscript
Meeting FiltersAdvanced filtering with saved presetsMeetingFilters, FilterPresets
Video ClipsTimeline selection and sharingClipTimeline, ClipPreview, ClipShareModal

AI Features

FeatureDescriptionComponents
Ask AICross-meeting AI assistantAskAIChat, SuggestedQuestions
AI SummaryExpandable summary with sectionsMeetingSummaryPanel
Meeting InsightsSentiment, talk time, topicsMeetingInsights, SentimentTimeline
AI AppsMarketplace and custom builderAppMarketplace, CustomAppBuilder

Search & Navigation

FeatureDescriptionComponents
Global SearchCmd+K search across all contentGlobalSearchModal, SearchResults
Live TranscriptionReal-time meeting transcriptionLiveTranscriptPanel, LiveControls
NotificationsReal-time notification systemNotificationDropdown, NotificationToast

Analytics & Reporting

FeatureDescriptionComponents
Analytics DashboardMeeting volume, engagement, exportMeetingVolumeChart, EngagementMetrics
Participant LeaderboardTop participants with sortingParticipantLeaderboard
Quality ScoreMeeting quality metrics (0-100)QualityScoreCard, QualityBreakdown
Team TrendsTeam performance over timeTeamQualityTrends
Export ReportsCSV and PDF exportExportReportModal

Revenue & Sales

FeatureDescriptionComponents
Pipeline KanbanDrag-and-drop deal boardPipelineKanban
Deal TimelineActivity history with sentimentDealTimeline
Competitor MentionsTrack competitor discussionsCompetitorMentions
AI Next StepsAI-generated recommendationsNextStepsAI
Deal HealthVisual health scoringDealHealthScore

Coaching & Training

FeatureDescriptionComponents
AI Coaching InsightsPersonalized recommendationsAICoachingInsights
Performance TrendsHistorical performance chartsPerformanceTrends
Peer ComparisonAnonymous benchmarkingPeerComparison
Coaching GoalsGoal setting and trackingCoachingGoals
Scorecard EvaluatorAutomatic transcript scoringScorecardEvaluator

Enterprise Administration

FeatureDescriptionComponents
SSO ConfigurationSAML and OIDC setupSAMLConfigForm, OIDCConfigForm
SCIM ProvisioningUser provisioningSCIMProvisioning
Domain VerificationDNS verificationDomainVerification
BrandingLogo, colors, themesThemeEditor, BrandAssetLibrary
Custom DomainCNAME setupCustomDomainSetup

Developer Tools

FeatureDescriptionComponents
API Key ManagerCreate and rotate keysAPIKeyManager
API PlaygroundInteractive API testingAPIPlayground
SDK DocumentationJS, Python, cURL examplesSDKDocs
WebhooksEvent subscriptionsWebhookForm, DeliveryLogs

Why OpenMeet?

The Problem: Meeting intelligence tools are either too expensive, too limited, or lock you into proprietary AI systems.

Our Solution: OpenMeet provides enterprise-grade meeting intelligence that's 100% open source:

  • Own Your Data - Self-host the entire platform with Docker Compose
  • Choose Your AI - Use OpenAI, run local models with Ollama, or mix providers
  • Complete Privacy - Air-gapped mode for sensitive environments
  • Customize Everything - White-label, custom workflows, fine-tuned models
  • No Vendor Lock-in - MIT licensed, forever free, community-driven

"From paying $100+/user/month to running your own meeting intelligence platform for free."


Quick Start

Prerequisites

  • Node.js 20+
  • Python 3.11+
  • Docker and Docker Compose
  • pnpm (npm install -g pnpm)

30-Second Setup

# Clone the repository
git clone https://github.com/openmeet/openmeet.git
cd openmeet

# Install dependencies
pnpm install

# Copy environment configuration
cp .env.example .env

# Start infrastructure (PostgreSQL, Redis, Elasticsearch)
docker-compose up -d

# Run database migrations
pnpm prisma migrate dev

# Start development servers
pnpm dev

That's it! Open http://localhost:3003 to see the web app.

ServiceURL
Web Apphttp://localhost:3003
API Serverhttp://localhost:4000
AI Servicehttp://localhost:8888
WebSocketws://localhost:5003

Installation

# Clone repository
git clone https://github.com/openmeet/openmeet.git
cd openmeet

# Configure environment
cp .env.example .env
# Edit .env with your settings

# Start all services
docker-compose up -d

# View logs
docker-compose logs -f

Manual Installation

Step-by-step manual setup

1. Install Dependencies

# Clone repository
git clone https://github.com/openmeet/openmeet.git
cd openmeet

# Install Node.js dependencies
pnpm install

# Install Python dependencies (for AI service)
cd apps/ai-service
pip install -r requirements.txt
pip install -r requirements-ml.txt
cd ../..

2. Set Up Databases

# Start infrastructure services
docker-compose up -d postgres redis elasticsearch rabbitmq minio

# Wait for services to be healthy
docker-compose ps

# Run Prisma migrations
pnpm prisma migrate dev

# (Optional) Seed database
pnpm prisma db seed

3. Configure Environment

cp .env.example .env

Edit .env with your configuration (see Configuration).

4. Start Services

# Terminal 1: API Server
pnpm dev:api

# Terminal 2: Web Frontend
pnpm dev:web

# Terminal 3: AI Service
cd apps/ai-service && uvicorn app.main:app --reload --port 8888

Air-Gapped Mode (Local AI)

For complete privacy, OpenMeet supports running entirely offline with local AI models:

# Start with local Ollama
ollama serve &
ollama pull llama3.2

# Configure .env for local AI
OPENAI_BASE_URL=http://host.docker.internal:11434/v1
OPENAI_MODEL=llama3.2
USE_LOCAL_TRANSCRIPTION=true

# Start OpenMeet
docker-compose up -d

Configuration

Environment Variables

Create a .env file in the project root. See .env.example for all options.

Required Variables

VariableDescriptionExample
DATABASE_URLPostgreSQL connection stringpostgresql://user:pass@localhost:5432/openmeet
REDIS_URLRedis connection stringredis://:password@localhost:6379
JWT_SECRETJWT signing secret (32+ chars)your-secure-secret-min-32-characters
JWT_REFRESH_SECRETRefresh token secretdifferent-secure-secret-min-32-chars

AI Provider Configuration

VariableDescription
OPENAI_API_KEYOpenAI API key for GPT-4/Whisper
OPENAI_BASE_URLCustom endpoint (for Ollama/vLLM)
ANTHROPIC_API_KEYAnthropic API key for Claude
OLLAMA_URLOllama server URL
HF_TOKENHuggingFace token for model downloads

Architecture

+-------------------------------------------------------------------------+
|                         CLIENT LAYER                                     |
|  +--------------+  +---------------+  +--------------+  +------------+  |
|  |   Next.js    |  |    Chrome     |  | React Native |  |   GraphQL  |  |
|  |   Web App    |  |   Extension   |  |  Mobile App  |  |   Client   |  |
|  |    (PWA)     |  |               |  |              |  |            |  |
|  +------+-------+  +-------+-------+  +------+-------+  +------+-----+  |
+---------+------------------+------------------+----------------+---------+
          |                  |                  |                |
          +------------------+---------+--------+----------------+
                                       |
+-----------------------------------------+-----------------------------+
|                         API LAYER                                      |
|  +-------------------------------------------------------------------+ |
|  |                    Express.js API Server                          | |
|  |         REST API - GraphQL - WebSocket - Rate Limiting            | |
|  |                                                                   | |
|  |  +-------------------------------------------------------------+  | |
|  |  |                    SERVICE LAYER (70+)                      |  | |
|  |  |                                                             |  | |
|  |  |  TranscriptionService - RevenueIntelligenceService          |  | |
|  |  |  WorkflowAutomationService - SSOService - RBACService       |  | |
|  |  |  SlackBotService - TeamsIntegrationService - ...            |  | |
|  |  +-------------------------------------------------------------+  | |
|  +-------------------------------------------------------------------+ |
+-------------------------------------------+-----------------------------+
                                            |
+-------------------------------------------v-----------------------------+
|                        DATA LAYER                                       |
|  +-----------+ +-----------+ +-----------+ +-----------+ +-----------+  |
|  |PostgreSQL | |   Redis   | | Elastic-  | | RabbitMQ  | |   MinIO   |  |
|  | (Prisma)  | |  (Cache)  | |  search   | |  (Queue)  | |   (S3)    |  |
|  +-----------+ +-----------+ +-----------+ +-----------+ +-----------+  |
+-------------------------------------------+-----------------------------+
                                            |
+-------------------------------------------v-----------------------------+
|                       AI/ML LAYER                                       |
|  +-------------------------------------------------------------------+  |
|  |                  Python FastAPI AI Service                        |  |
|  |                                                                   |  |
|  |  +----------+ +----------+ +----------+ +----------+ +----------+ |  |
|  |  |  OpenAI  | |Anthropic | |   vLLM   | |  Ollama  | |LM Studio | |  |
|  |  |  GPT-4   | |  Claude  | | (Local)  | | (Local)  | | (Local)  | |  |
|  |  +----------+ +----------+ +----------+ +----------+ +----------+ |  |
|  |                                                                   |  |
|  |  PyAnnote (Diarization) - KeyBERT - spaCy - WhisperX             |  |
|  +-------------------------------------------------------------------+  |
+-------------------------------------------------------------------------+

Tech Stack

Backend

TechnologyPurpose
Node.js 20Runtime environment
Express.js 4Web framework
TypeScript 5.3Type-safe development
Prisma 5PostgreSQL ORM
GraphQLAPI query language
Socket.ioReal-time communication
BullJob queue processing

Frontend

TechnologyPurpose
Next.js 14React framework (App Router)
React 18UI library
TailwindCSSStyling
Radix UIAccessible components
RechartsData visualization
ZustandState management

AI/ML

TechnologyPurpose
FastAPIPython API framework
OpenAIGPT-4, Whisper, embeddings
AnthropicClaude models
OllamaLocal model inference
PyAnnoteSpeaker diarization
WhisperXFast transcription
KeyBERTKeyword extraction

Infrastructure

TechnologyPurpose
PostgreSQL 15Primary database (with pgvector)
Redis 7Caching, sessions
Elasticsearch 8Full-text search
RabbitMQMessage queue
MinIOS3-compatible storage
DockerContainerization

API Documentation

REST API

# Health check
curl http://localhost:4000/health

# Authenticate
curl -X POST http://localhost:4000/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email": "user@example.com", "password": "password"}'

# Get meetings (authenticated)
curl http://localhost:4000/api/v1/meetings \
  -H "Authorization: Bearer <token>"

AI Service Endpoints

EndpointMethodDescription
/api/v1/transcribePOSTTranscribe audio file
/api/v1/diarizePOSTSpeaker diarization
/api/v1/summarizePOSTGenerate meeting summary
/api/v1/sentimentPOSTSentiment analysis
/api/v1/extract-keywordsPOSTKeyword extraction
/api/v1/chatPOSTConversational AI
/healthGETHealth check

The Team

OpenMeet is built and maintained by a passionate team of engineers and entrepreneurs:

Nikolaos Papagiannis
Nikolaos Papagiannis
Co-Founder & Lead Engineer
GitHub | LinkedIn
Wojciech M. Pysiewicz
Wojciech M. Pysiewicz
Co-Founder & Strategy
Website | LinkedIn
Adam Filipowski
Adam Filipowski
Co-Founder & Product
GitHub | LinkedIn

Roadmap

Completed

  • Core meeting transcription and diarization
  • Multi-provider AI support (OpenAI, Anthropic, vLLM, Ollama)
  • CRM integrations (Salesforce, HubSpot, Pipedrive)
  • Revenue intelligence and sales coaching
  • Enterprise SSO (SAML, SCIM, OIDC)
  • White-label platform with custom branding
  • React Native mobile app
  • Chrome extension with bot injection
  • Complete authentication flows
  • Visual workflow automation builder
  • AI Apps marketplace and custom builder
  • Developer portal with API playground
  • PWA support (install, offline, push notifications)

In Progress

  • Real-time meeting bot for Zoom/Teams/Meet
  • Enhanced video intelligence with visual analysis
  • Custom model fine-tuning UI
  • Multi-language support expansion

Planned

  • Desktop application (Electron)
  • Meeting scheduling (Calendly-like)
  • Plugin marketplace
  • On-premise deployment guide

Contributing

We welcome contributions! Please see our Contributing Guide for details.

Quick Contribution Steps

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development

# Install dependencies
pnpm install

# Start development servers
pnpm dev

# Run tests
pnpm test

# Run linting
pnpm lint

Security

Security is a top priority. Please see our Security Policy for:

  • Supported versions
  • Reporting vulnerabilities
  • Security best practices

Do not report security vulnerabilities through public GitHub issues.


License

This project is licensed under the MIT License - see the LICENSE file for details.

MIT License - Use freely for commercial and personal projects.

Built with love by the OpenMeet Team

Star on GitHubContributeReport Issues


OpenMeet is proudly open source and free forever.

Contributors

claude

14 commits

Languages

TypeScript

85.7%

HTML

4.5%

JavaScript

3.7%

Shell

2.5%

Python

2.2%