aether-meet

module
v0.0.0-...-03959bb Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 9, 2026 License: MIT

README ΒΆ

πŸš€ Aether Meet

Go TypeScript Next.js React Rust LiveKit

πŸ”₯ Next-Generation Virtual Meeting Platform - Hybrid Architecture with Multi-Protocol Media & LiveKit SFU

A cutting-edge virtual meeting platform that brings together high-performance Go APIs, Rust media orchestration, and Next.js frontend with LiveKit SFU for low-latency WebRTC video conferencing. Features a complete Go backend ecosystem, worker/outbox pattern, Redis-backed job queues, and enterprise-ready production deployment.

πŸš€ Quick Start β€’ πŸ“‹ What's New β€’ πŸ“Š Current Status β€’ πŸ› οΈ Tech Stack β€’ πŸ—οΈ Architecture β€’ 🀝 Contributing

GitHub stars GitHub forks GitHub issues


🌟 What is Aether Meet?

Aether Meet is a comprehensive virtual meeting platform built on an evolved hybrid architecture that combines Go, Rust, TypeScript, and LiveKit for unparalleled real-time collaboration. From initial concept to production-ready deployment, it has grown into a complete ecosystem featuring advanced WebRTC media handling, Redis-backed background processing, multi-platform SDKs, and enterprise-grade security.

🎯 Our Evolved Vision
  • πŸš€ Hybrid Multi-Protocol Architecture - Go API backend + Next.js frontend + Rust WebRTC orchestration + LiveKit SFU
  • πŸ“¦ Complete SDK Ecosystem - TypeScript, Go, Python, PHP, and Rust SDKs for maximum integration
  • πŸ” Enterprise Security - JWT authentication, end-to-end encryption, meeting password protection
  • ⚑ High-Performance Media - LiveKit SFU with UDP/TCP media transport, adaptive bitrate, ICE/STUN/TURN
  • 🎨 Modern Frontend - Next.js 15 + React 19 + Tailwind CSS + shadcn/ui component library
  • πŸ—οΈ Background Processing - Redis Streams for durable job queues, transactional outbox pattern, worker heartbeats
  • πŸ“± Multi-Platform - Desktop web, mobile web, and React Native mobile applications
  • πŸ—‚οΈ Database Layer - PostgreSQL with Prisma ORM and GORM (Go) for dual-database access
  • πŸ› οΈ Developer-Friendly - Make commands, hot reload, Docker Compose, TypeScript strict mode

πŸ†• What's New - Recent Evolution

🎯 Major Additions in v2.0+
πŸŽ₯ LiveKit WebRTC Integration (NEW)
  • βœ… LiveKit SFU - Production-grade Selective Forwarding Unit for media transport
  • βœ… WebRTC Control Plane - Rust runtime for node registration, heartbeats, reconciliation
  • βœ… Join Token Management - Secure token generation with WEBRTC_TOKEN_TTL
  • βœ… Multi-Region Support - Configurable node ID and region for geo-distributed deployment
  • βœ… TURN Support - Configurable TURN server for NAT traversal
βš™οΈ Worker & Outbox System (NEW)
  • βœ… Redis Streams Workers - Durable background job processing with retry and dead-lettering
  • βœ… Transactional Outbox - Reliable event publishing with row locking and retry
  • βœ… Scheduler - Recurring job scheduling for maintenance, presence, and cleanup
  • βœ… Heartbeat System - Worker health monitoring with configurable TTL
  • βœ… Standalone-First - Full API functionality without Redis, in-memory event bus fallback
πŸ“¦ Multi-Language SDK Ecosystem (NEW)
  • βœ… TypeScript SDK - Universal client for Node.js and browser environments
  • βœ… Go SDK - Native Go client library for server-side integration
  • βœ… Python SDK - Python client for data science and automation workflows
  • βœ… PHP SDK - PHP client for web application integration
  • βœ… Rust SDK - Native Rust client for high-performance systems
  • βœ… CLI Tools - Command-line utilities for meeting management and administration
πŸ—„οΈ Go Backend Enhancement (IMPROVED)
  • βœ… Prisma + GORM - Dual ORM support for flexible database access
  • βœ… Complete REST API - Meeting management, user administration, WebSocket hub
  • βœ… Structured Logging - Correlation IDs, request logging, error tracking
  • βœ… Middleware Stack - Authentication, CORS, rate limiting, security headers
πŸ“š Documentation Evolution (IMPROVED)
  • βœ… Architecture Overviews - Comprehensive system documentation
  • βœ… API References - Complete REST API documentation
  • βœ… Deployment Guides - Docker, Docker Compose, production setup
  • βœ… SDK Documentation - Package-specific READMEs for all SDKs

πŸ“Š Current Status

βœ… Rapid Evolution: From basic hybrid architecture to complete LiveKit-powered platform with worker system, multi-language SDKs, and enterprise deployment.

βœ… Currently Implemented
πŸ—οΈ Core Platform
  • βœ… WebRTC Media Server - LiveKit SFU with UDP/TCP media transport
  • βœ… WebRTC Control Plane - Rust-based node management and reconciliation
  • βœ… Go API Server - High-performance HTTP API with Gin framework
  • βœ… Next.js 15 Frontend - Modern React 19 with shadcn/ui + Tailwind CSS
  • βœ… Database Layer - PostgreSQL with Prisma ORM and GORM
βš™οΈ Background Processing (NEW)
  • βœ… Redis Streams Workers - Durable job queues with retry and dead-lettering
  • βœ… Transactional Outbox - Reliable event publishing with PostgreSQL transactions
  • βœ… Scheduler - Recurring jobs for maintenance, presence, cleanup
  • βœ… Worker Heartbeat - Health monitoring with configurable TTL
  • βœ… Standalone Mode - Full API without Redis, in-memory fallback
πŸ“¦ SDK Ecosystem (NEW)
  • βœ… TypeScript SDK - Universal client with comprehensive examples
  • βœ… Go SDK - Native Go client library
  • βœ… Python SDK - Python client for automation
  • βœ… PHP SDK - PHP client for web apps
  • βœ… Rust SDK - Native Rust client
  • βœ… CLI Tools - Command-line administration tools
πŸŽ₯ Meeting Capabilities
  • βœ… HD Video & Audio - Crystal-clear quality with adaptive bitrate
  • βœ… Screen Sharing - Present documents, slides, and applications
  • βœ… Real-time Chat - Text messaging with rich formatting
  • βœ… Participant Management - Host controls and participant permissions
  • βœ… Meeting Recording - Capture sessions for later review
πŸ”’ Security & Privacy
  • βœ… End-to-End Encryption - Secure communication channels
  • βœ… JWT Authentication - Complete login/register system
  • βœ… Password Protection - Meeting access controls
  • βœ… Rate Limiting - API protection against abuse
  • βœ… CORS Configuration - Cross-origin security controls
  • βœ… Input Validation - Request sanitization and validation
πŸ› οΈ Development Infrastructure
  • βœ… Docker Compose - Complete local development environment
  • βœ… Make Commands - 60+ commands for streamlined development
  • βœ… Hot Reload - Air for Go, Turbopack for Next.js
  • βœ… TypeScript Strict Mode - Full type safety
  • βœ… ESLint + Prettier - Code quality enforcement
  • βœ… Playwright Tests - E2E testing framework
πŸ”„ In Development
  • Mobile Applications - iOS/Android with React Native
  • Meeting Analytics - Advanced usage metrics and insights
  • AI Transcription - Automated meeting transcription
  • Virtual Backgrounds - Background blur and replacement
  • Calendar Integration - Google/Outlook calendar sync
  • Breakout Rooms - Sub-meeting rooms for group work
πŸ“‹ Planned Features
  • Polls & Q&A - Interactive meeting features
  • Advanced Security Scanning - Meeting content moderation
  • Whiteboarding - Collaborative digital whiteboard
  • Live Streaming - Broadcast to YouTube/Twitch
  • Custom Branding - White-label meeting rooms
  • Enterprise SSO - SAML/OIDC single sign-on

πŸš€ Quick Start

πŸ“‹ Prerequisites
  • Go 1.22.0 or higher (for backend)
  • Node.js 18.0.0 or higher (for frontend)
  • pnpm 9.0.0 or higher (recommended package manager)
  • PostgreSQL 14.0 or higher (for database)
  • Redis 7.0 or higher (optional, for worker queues)
  • LiveKit (optional, for WebRTC media)
  • Docker (optional, for containerized deployment)
  • Make (for command shortcuts - included with most systems)
πŸ”§ Installation & Setup
  1. Clone the repository

    git clone https://github.com/skygenesisenterprise/aether-meet.git
    cd aether-meet
    
  2. Quick start (recommended)

    # One-command setup and start
    make quick-start
    
  3. Manual setup

    # Install Go dependencies
    go mod download
    
    # Install Node.js dependencies
    pnpm install
    
    # Environment setup
    cp .env.example .env
    # Edit .env with your configuration
    
    # Database initialization
    make db-migrate
    
    # Start development servers
    make dev
    
🌐 Access Points

Once running, you can access:

🎯 Enhanced Make Commands
# πŸš€ Quick Start & Development
make quick-start          # Install, migrate, and start dev servers
make dev                  # Start all services (frontend + backend + worker)
make dev-frontend         # Frontend only (port 3000)
make dev-backend          # Backend only (port 8080)
make dev-worker           # Worker mode only

# πŸ”§ Go Backend Commands
make go-server            # Start Go server directly
make go-build             # Build Go binary
make go-test              # Run Go tests
make go-mod-tidy          # Clean Go dependencies

# πŸ—οΈ Building & Production
make build                # Build all packages
make build-frontend       # Frontend production build
make build-backend        # Backend production build
make start                # Start production servers

# πŸ—„οΈ Database
make db-migrate           # Run database migrations
make db-generate          # Generate Prisma client
make db-studio            # Open Prisma Studio
make db-seed              # Seed development data

# πŸ”§ Code Quality & Testing
make lint                 # Lint all packages
make typecheck            # TypeScript type checking
make format               # Format code with Prettier
make test                 # Run all tests

# πŸ“¦ Package & SDK Commands
make build-packages       # Build all SDK packages
make test-packages        # Test all SDK packages
make dev-github           # Start GitHub App development

# 🐳 Docker & Deployment
make docker-build         # Build Docker image
make docker-run           # Run with Docker Compose
make docker-stop          # Stop Docker services

πŸ’‘ Tip: Run make help to see all 60+ available commands organized by category.


πŸ› οΈ Tech Stack

🎨 Frontend Layer
Next.js 15 + React 19 + TypeScript 5
β”œβ”€β”€ 🎨 Tailwind CSS + shadcn/ui (Styling & Components)
β”œβ”€β”€ πŸ” JWT Authentication (Complete Implementation)
β”œβ”€β”€ πŸ›£οΈ Next.js App Router (Routing)
β”œβ”€β”€ πŸ“ TypeScript Strict Mode (Type Safety)
β”œβ”€β”€ πŸ”„ React Context (State Management)
β”œβ”€β”€ 🌐 i18n (Internationalization)
└── πŸ”§ ESLint + Prettier (Code Quality)
βš™οΈ Backend Layer
Go 1.22+ + Gin Framework
β”œβ”€β”€ πŸ—„οΈ GORM + Prisma ORM (Dual Database Layer)
β”œβ”€β”€ πŸ” JWT Authentication (Complete Implementation)
β”œβ”€β”€ πŸ›‘οΈ Middleware (Auth, CORS, Rate Limiting, Logging)
β”œβ”€β”€ 🌐 HTTP Router (Gin + WebSocket Hub)
β”œβ”€β”€ πŸ“¦ JSON Serialization (Native Go)
β”œβ”€β”€ πŸ“Š Structured Logging (Correlation IDs)
└── ⚑ Redis Integration (Pub/Sub + Streams)
πŸŽ₯ Media Layer
LiveKit SFU + Rust Control Plane
β”œβ”€β”€ πŸ”„ WebRTC Signaling (ICE/STUN/TURN)
β”œβ”€β”€ πŸŽ₯ HD Video/Audio (Adaptive Bitrate)
β”œβ”€β”€ πŸ–₯️ Screen Sharing (Desktop/Application)
β”œβ”€β”€ πŸ“‘ UDP Media Transport (RTP/RTCP)
β”œβ”€β”€ πŸ”Œ TCP Fallback (Port 7881)
β”œβ”€β”€ 🌍 Multi-Region Node Management
β”œβ”€β”€ ❀️ Heartbeat + Readiness Checks
└── πŸ” Token Authentication (WEBRTC_TOKEN_TTL)
βš™οΈ Worker & Queue Layer
Redis Streams + Go Workers
β”œβ”€β”€ πŸ“¬ Notifications Queue
β”œβ”€β”€ πŸ”— Integrations Queue
β”œβ”€β”€ πŸ‘€ Presence Queue
β”œβ”€β”€ πŸ“… Meetings Queue
β”œβ”€β”€ πŸ“Ž Attachments Queue
β”œβ”€β”€ πŸ”§ Maintenance Queue
β”œβ”€β”€ πŸ’€ Dead-Letter Streams (per queue)
β”œβ”€β”€ πŸ“€ Transactional Outbox (PostgreSQL-backed)
└── πŸ’“ Worker Heartbeat Monitoring
πŸ—„οΈ Data Layer
PostgreSQL + Prisma ORM
β”œβ”€β”€ πŸ—οΈ Schema Management (Prisma Migrations)
β”œβ”€β”€ πŸ” Query Builder (Prisma Client + GORM)
β”œβ”€β”€ πŸ”„ Connection Pooling (Performance)
β”œβ”€β”€ πŸ‘€ User Models (Complete Implementation)
β”œβ”€β”€ πŸ“… Meeting Models (Scheduling + Recording)
└── πŸ“ˆ Seed Scripts (Development Data)
πŸ“¦ SDK Ecosystem
Multi-Language SDK Packages
β”œβ”€β”€ πŸ“¦ TypeScript SDK (Universal Client)
β”‚   β”œβ”€β”€ Meeting Management
β”‚   β”œβ”€β”€ Authentication
β”‚   └── Browser + Node.js
β”œβ”€β”€ 🐹 Go SDK
β”‚   β”œβ”€β”€ Native Go Client
β”‚   └── CLI Tools
β”œβ”€β”€ 🐍 Python SDK
β”‚   └── Python Client
β”œβ”€β”€ 🐘 PHP SDK
β”‚   └── PHP Client
└── πŸ¦€ Rust SDK
    └── Native Rust Client
πŸ—οΈ Monorepo Infrastructure
pnpm Workspaces + Go Modules + Multi-SDK Ecosystem
β”œβ”€β”€ πŸ“± apps/ (Next.js Frontend + React Native)
β”œβ”€β”€ βš™οΈ server/ (Go API + Workers + WebRTC)
β”œβ”€β”€ πŸ“¦ package/ (Multi-Language SDKs)
β”‚   β”œβ”€β”€ node/ (TypeScript SDK)
β”‚   β”œβ”€β”€ golang/ (Go SDK)
β”‚   β”œβ”€β”€ python/ (Python SDK)
β”‚   β”œβ”€β”€ php/ (PHP SDK)
β”‚   └── rust/ (Rust SDK)
β”œβ”€β”€ 🐳 docker/ (Container Configuration)
└── πŸ—‚οΈ infrastructure/ (Deployment Scripts)

πŸ“ Architecture

πŸ—οΈ Monorepo Structure
aether-meet/
β”œβ”€β”€ apps/                     # Frontend Applications
β”‚   β”œβ”€β”€ app/                 # Next.js 15 Web Application
β”‚   β”‚   β”œβ”€β”€ components/     # React components with shadcn/ui
β”‚   β”‚   β”œβ”€β”€ context/        # React contexts (auth, meeting)
β”‚   β”‚   β”œβ”€β”€ hooks/          # Custom React hooks
β”‚   β”‚   β”œβ”€β”€ i18n/           # Internationalization
β”‚   β”‚   β”œβ”€β”€ lib/            # Utility functions
β”‚   β”‚   β”œβ”€β”€ mobile/         # React Native mobile app
β”‚   β”‚   β”œβ”€β”€ public/          # Static assets
β”‚   β”‚   β”œβ”€β”€ styles/          # Tailwind CSS styling
β”‚   β”‚   └── types/           # TypeScript type definitions
β”‚   └── components.json      # shadcn/ui configuration
β”œβ”€β”€ server/                   # Go Backend
β”‚   β”œβ”€β”€ cmd/                 # Entry points
β”‚   β”œβ”€β”€ src/                 # Source code
β”‚   β”‚   β”œβ”€β”€ config/         # Server configuration
β”‚   β”‚   β”œβ”€β”€ controllers/    # HTTP request handlers
β”‚   β”‚   β”œβ”€β”€ middleware/     # Gin middleware
β”‚   β”‚   β”œβ”€β”€ models/         # Data models
β”‚   β”‚   β”œβ”€β”€ routes/         # API route definitions
β”‚   β”‚   β”œβ”€β”€ services/       # Business logic
β”‚   β”‚   └── tests/          # Unit and integration tests
β”‚   β”œβ”€β”€ internal/           # WebRTC control plane
β”‚   β”œβ”€β”€ prisma/             # Prisma schema and migrations
β”‚   β”œβ”€β”€ main.go             # Main server entry point
β”‚   β”œβ”€β”€ go.mod              # Go modules file
β”‚   └── go.sum              # Go modules checksum
β”œβ”€β”€ package/                  # πŸ“¦ Multi-Language SDKs
β”‚   β”œβ”€β”€ cli/                # CLI tools (TypeScript)
β”‚   β”œβ”€β”€ github/             # GitHub App (TypeScript)
β”‚   β”œβ”€β”€ node/               # Node.js/TypeScript SDK
β”‚   β”œβ”€β”€ golang/             # Go SDK
β”‚   β”œβ”€β”€ python/             # Python SDK
β”‚   β”œβ”€β”€ php/                # PHP SDK
β”‚   └── rust/               # Rust SDK
β”œβ”€β”€ docker/                   # Docker Configuration
β”œβ”€β”€ infrastructure/           # Deployment Scripts
β”œβ”€β”€ data/                     # Database schemas
β”œβ”€β”€ docs/                     # Documentation
β”œβ”€β”€ assets/                   # Media assets
β”œβ”€β”€ scripts/                  # Development scripts
β”œβ”€β”€ tools/                    # Development utilities
└── tests/                    # E2E tests (Playwright)
πŸ”„ Enhanced Data Flow Architecture
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                     Client Layer                            β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                β”‚
β”‚  β”‚  Next.js Web App  β”‚  β”‚  React Native    β”‚                β”‚
β”‚  β”‚  (Port 3000)      β”‚  β”‚  Mobile App      β”‚                β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                β”‚
β”‚           β”‚                      β”‚                          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
            β”‚                      β”‚
            β–Ό                      β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                     API Layer (Port 8080)                    β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”‚
β”‚  β”‚              Go API Server (Gin)                   β”‚     β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚     β”‚
β”‚  β”‚  β”‚ REST API β”‚ β”‚ WebSocketβ”‚ β”‚  Auth (JWT)      β”‚   β”‚     β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚   Hub    β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚     β”‚
β”‚  β”‚               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                        β”‚     β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚
β”‚                         β”‚                                    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                          β”‚
          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
          β–Ό               β–Ό               β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   PostgreSQL    β”‚ β”‚   Redis  β”‚ β”‚   LiveKit SFU    β”‚
β”‚  (Primary DB)   β”‚ β”‚(Pub/Sub+ β”‚ β”‚  (Media Plane)   β”‚
β”‚  Prisma + GORM  β”‚ β”‚ Streams) β”‚ β”‚   Port 7880      β”‚
β”‚                 β”‚ β”‚          β”‚ β”‚   UDP 50000-50100 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
          β”‚               β”‚               β”‚
          β–Ό               β–Ό               β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                   Worker Layer                               β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”‚
β”‚  β”‚ Go Workers   β”‚ β”‚  Scheduler   β”‚ β”‚  Outbox Dispatcherβ”‚    β”‚
β”‚  β”‚(6 Queues)    β”‚ β”‚ (Recurring)  β”‚ β”‚ (Transactional)  β”‚     β”‚
β”‚  β”‚ Retry+Dead   β”‚ β”‚ Heartbeats   β”‚ β”‚ Row Locking      β”‚     β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                          β”‚
                          β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                   WebRTC Control Plane                       β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”‚
β”‚  β”‚           Rust Runtime (internal/)                  β”‚     β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚     β”‚
β”‚  β”‚  β”‚ Node Reg β”‚ β”‚ Heartbeatβ”‚ β”‚  Reconciliation  β”‚   β”‚     β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚     β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚     β”‚
β”‚  β”‚  β”‚ Webhook  β”‚ β”‚  Stale   β”‚ β”‚  LiveKit API     β”‚   β”‚     β”‚
β”‚  β”‚  β”‚ Intake   β”‚ β”‚ Cleanup  β”‚ β”‚  Integration     β”‚   β”‚     β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚     β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ—ΊοΈ Development Roadmap

🎯 Phase 1: Foundation (βœ… Complete - Q1 2025)
  • βœ… Hybrid Architecture Setup - Go backend + Next.js frontend workspaces
  • βœ… Authentication System - Complete JWT implementation with forms
  • βœ… Frontend Framework - Next.js 15 + React 19 + shadcn/ui
  • βœ… Go Backend API - Gin with meeting and user endpoints
  • βœ… Database Layer - PostgreSQL with Prisma ORM
  • βœ… Database Layer (Go) - GORM with PostgreSQL models
  • βœ… CLI Tools - Complete command-line interface
  • βœ… Development Environment - TypeScript strict mode, Go modules, hot reload
πŸš€ Phase 2: Media & Processing (βœ… Complete - Q2 2025)
  • βœ… LiveKit SFU Integration - Production WebRTC media server
  • βœ… WebRTC Control Plane - Rust runtime for node management
  • βœ… Redis Streams Workers - Durable job queues with retry/dead-letter
  • βœ… Transactional Outbox - Reliable event publishing
  • βœ… Meeting Recording - Session capture and storage
  • βœ… Screen Sharing - Desktop and application sharing
  • βœ… Multi-Region Support - Geo-distributed LiveKit nodes
  • βœ… Standalone-First Design - Full API without Redis
πŸ“¦ Phase 3: SDK Ecosystem (βœ… Complete - Q3 2025)
  • βœ… TypeScript SDK - Universal client with comprehensive examples
  • βœ… Go SDK - Native Go client library
  • βœ… Python SDK - Python client for automation
  • βœ… PHP SDK - PHP client for web apps
  • βœ… Rust SDK - Native Rust client
  • βœ… GitHub App - Verified Marketplace app with release orchestration
  • βœ… CLI Tools - Command-line administration tools
  • βœ… Package Documentation - Comprehensive docs for all packages
βš™οΈ Phase 4: Enhanced Features (πŸ”„ In Progress - Q4 2025)
  • πŸ”„ Mobile Applications - iOS/Android with React Native
  • πŸ”„ Meeting Analytics - Advanced usage metrics and insights
  • πŸ”„ AI Transcription - Automated meeting transcription
  • πŸ”„ Calendar Integration - Google/Outlook calendar sync
  • πŸ”„ Breakout Rooms - Sub-meeting rooms for group work
  • πŸ“‹ Virtual Backgrounds - Background blur and replacement
  • πŸ“‹ Testing Suite - Comprehensive unit and integration tests
🌟 Phase 5: Enterprise (Q1 2026)
  • πŸ“‹ Enterprise SSO - SAML/OIDC single sign-on
  • πŸ“‹ Custom Branding - White-label meeting rooms
  • πŸ“‹ Live Streaming - Broadcast to YouTube/Twitch
  • πŸ“‹ Advanced Security - Meeting content moderation
  • πŸ“‹ High Availability - Clustering and failover
  • πŸ“‹ Polls & Q&A - Interactive meeting features

πŸ’» Development

🎯 Enhanced Development Workflow
# New developer setup
make quick-start

# Daily development
make dev                 # Start working (Go + TypeScript)
make lint-fix            # Fix code issues
make typecheck           # Verify types
make test                # Run tests

# Go-specific development
cd server
go run main.go           # Start Go server
go test ./...            # Run Go tests
go fmt ./...             # Format Go code
go mod tidy              # Clean dependencies

# Frontend-specific development
make dev-frontend        # Frontend only
make lint                # Check code quality
make typecheck           # Verify types

# Worker development
make dev-worker          # Start worker mode

# Before committing
make format              # Format code
make lint                # Check code quality
make typecheck           # Verify types

# Database changes
make db-migrate          # Apply migrations
make db-studio           # Browse database

# Production deployment
make build               # Build everything
make docker-build        # Create Docker image
make docker-run          # Deploy
πŸ“‹ Enhanced Development Guidelines
  • Make-First Workflow - Use make commands for all operations
  • Go Best Practices - Follow Go conventions for backend code
  • TypeScript Strict Mode - All frontend code must pass strict type checking
  • Package Standards - Follow package-specific guidelines and conventions
  • Hybrid Monorepo Best Practices - Use workspace-specific dependencies
  • Conventional Commits - Use standardized commit messages
  • Component Structure - Follow established patterns for React components
  • API Design - RESTful endpoints with proper HTTP methods
  • Error Handling - Comprehensive error handling and logging
  • Security First - Validate all inputs and implement proper authentication
πŸŽ₯ WebRTC Server Architecture

The production WebRTC stack is split into four roles:

  • server - Classic frontend/API container for HTTP, application APIs, and WebSocket fan-out
  • worker - Redis Streams consumers, retries, dead-letter handling, and outbox-backed jobs
  • webrtc - Go control-plane runtime for node registration, readiness, heartbeat, reconciliation, webhook intake, and stale session cleanup
  • livekit - The actual SFU/media plane for signaling, ICE, RTP/RTCP, and audio/video transport
Required Environment
# LiveKit Configuration
WEBRTC_PROVIDER=livekit
LIVEKIT_INTERNAL_URL=http://livekit:7880
LIVEKIT_PUBLIC_URL=wss://webrtc.meet.skygenesisenterprise.com
LIVEKIT_API_KEY=
LIVEKIT_API_SECRET=
WEBRTC_NODE_ID=aether-meet-node-1
WEBRTC_REGION=eu-west
WEBRTC_TOKEN_TTL=10m
LIVEKIT_RTC_TCP_PORT=7881
LIVEKIT_RTP_PORT_MIN=50000
LIVEKIT_RTP_PORT_MAX=50100
TURN_ENABLED=false
TURN_URL=
TURN_USERNAME=
TURN_PASSWORD=

# Worker Configuration
WORKER_ENABLED=true
WORKER_CONCURRENCY=10
WORKER_MAX_ATTEMPTS=5
OUTBOX_ENABLED=true
OUTBOX_BATCH_SIZE=50
Network and Ports
Service Domain Protocol Port
Frontend meet.skygenesisenterprise.com HTTP/WS 443 (CF Tunnel)
API api.meet.skygenesisenterprise.com HTTP 443 (CF Tunnel)
LiveKit Signaling webrtc.meet.skygenesisenterprise.com WSS 7880
LiveKit Media Public IP UDP 50000-50100
LiveKit TCP Public IP TCP 7881
TURN (Future) turn.meet.skygenesisenterprise.com TCP/UDP 3478
TURN TLS (Future) turn.meet.skygenesisenterprise.com TLS 5349
API Routes
POST   /api/v1/meetings/:meetingId/start
POST   /api/v1/meetings/:meetingId/end
POST   /api/v1/meetings/:meetingId/cancel
GET    /api/v1/meetings/:meetingId/participants
POST   /api/v1/meetings/:meetingId/participants
POST   /api/v1/meetings/:meetingId/join-token
POST   /api/v1/internal/webrtc/livekit/webhook

πŸ” Authentication System

🎯 Complete Hybrid Implementation

The authentication system is fully implemented with Go backend and TypeScript frontend:

  • JWT Tokens - Secure token-based authentication with refresh mechanism
  • Login/Register Forms - Complete user authentication flow with validation
  • Auth Context - Global authentication state management in React
  • Protected Routes - Route-based authentication guards
  • Go API Endpoints - Complete authentication API with Gin framework
  • Password Security - bcrypt hashing for secure password storage
  • Session Management - LocalStorage-based session persistence

🀝 Contributing

We're looking for contributors to help build this comprehensive virtual meeting platform! Whether you're experienced with Go, Rust, TypeScript, WebRTC, LiveKit, or SDK development, there's a place for you.

🎯 How to Get Started
  1. Fork the repository and create a feature branch
  2. Check the issues for tasks that need help
  3. Join discussions about architecture and features
  4. Start small - Documentation, tests, or minor features
  5. Follow our code standards and commit guidelines
πŸ—οΈ Areas Needing Help
  • Go Backend Development - API endpoints, business logic, worker systems
  • Rust WebRTC Development - Control plane, LiveKit integration
  • TypeScript Frontend Development - React components, UI/UX design
  • Mobile Development - React Native iOS/Android applications
  • SDK Development - Package improvements across all languages
  • DevOps Engineering - Docker, Kubernetes, CI/CD, infrastructure
  • WebRTC/SFU Specialists - LiveKit configuration, TURN, performance
  • Security Specialists - Authentication, encryption, penetration testing
  • Documentation - API docs, user guides, tutorials
πŸ“ Contribution Process
  1. Choose an area - Core server, frontend, or specific package
  2. Read package-specific docs - Understand package conventions
  3. Create a branch with a descriptive name
  4. Implement your changes following our guidelines
  5. Test thoroughly in all relevant environments
  6. Submit a pull request with clear description and testing
  7. Address feedback from maintainers and community

πŸ“ž Support & Community

πŸ’¬ Get Help
πŸ› Reporting Issues

When reporting bugs, please include:

  • Clear description of the problem
  • Steps to reproduce
  • Environment information (Go version, Node.js version, OS, etc.)
  • Error logs or screenshots
  • Expected vs actual behavior
  • Package-specific information (if applicable)

πŸ“Š Project Status

Component Status Technology Evolution Notes
Hybrid Architecture βœ… Working Go + TypeScript Enhanced Monorepo with multi-language SDKs
Authentication System βœ… Working JWT (Go/TS) Complete Full implementation with forms
Go Backend API βœ… Working Gin + GORM + Prisma Enhanced High-performance with PostgreSQL
Frontend Framework βœ… Working Next.js 15 + React 19 Enhanced shadcn/ui + Tailwind CSS
LiveKit SFU βœ… Working LiveKit NEW Production WebRTC media server
WebRTC Control Plane βœ… Working Rust NEW Node management + reconciliation
Worker System βœ… Working Go + Redis Streams NEW 6 queues with retry/dead-letter
Transactional Outbox βœ… Working PostgreSQL + Go NEW Reliable event publishing
TypeScript SDK βœ… Working TypeScript NEW Universal client
Go SDK βœ… Working Go NEW Native client library
Python SDK βœ… Working Python NEW Automation client
PHP SDK βœ… Working PHP NEW Web application client
Rust SDK βœ… Working Rust NEW High-performance client
CLI Tools βœ… Working TypeScript Enhanced Complete command-line interface
Database Layer βœ… Working PostgreSQL + Prisma/GORM Enhanced Dual ORM support
Docker Deployment βœ… Working Multi-Stage Enhanced Full Docker Compose setup
Mobile Applications πŸ”„ In Progress React Native Planned iOS + Android
AI Transcription πŸ“‹ Planned TBD Planned Automated meeting transcription
Testing Suite πŸ“‹ Planned Playwright + Go test Planned E2E + unit tests
Documentation βœ… Working Markdown Enhanced Package-specific docs

πŸ† Sponsors & Partners

Development led by Sky Genesis Enterprise

We're looking for sponsors and partners to help accelerate development of this open-source virtual meeting platform.

🀝 Become a Sponsor


πŸ“„ License

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

MIT License

Copyright (c) 2026 Sky Genesis Enterprise

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

πŸ™ Acknowledgments

  • Sky Genesis Enterprise - Project leadership and development
  • LiveKit Team - Excellent WebRTC SFU platform
  • Go Community - High-performance programming language and ecosystem
  • Gin Framework - Lightweight HTTP web framework
  • Rust Community - Systems programming excellence
  • Next.js Team - Excellent React framework
  • React Team - Modern UI library
  • shadcn/ui - Beautiful component library
  • Tailwind CSS - Utility-first CSS framework
  • Prisma Team - Modern database toolkit
  • Redis - High-performance data structure store
  • PostgreSQL Team - World's most advanced open source database
  • GitHub - Platform and integration tools
  • pnpm - Fast, disk space efficient package manager
  • Docker Team - Container platform and tools
  • Open Source Community - Tools, libraries, and inspiration

πŸš€ Join Us in Building the Future of Virtual Collaboration!

⭐ Star This Repo β€’ πŸ› Report Issues β€’ πŸ’‘ Start a Discussion


πŸ”§ Rapid Evolution - LiveKit WebRTC, Worker System, and Multi-Language SDK Ecosystem!

Made with ❀️ by the Sky Genesis Enterprise team

Building the next-generation virtual meeting platform with LiveKit SFU, Go workers, and multi-language SDKs

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL