Loading...
Comprehensive overview of the Merge Conference platform structure, services, and dependencies
Merge Conference is a comprehensive multi-tenant video conferencing and instant messaging platform built with modern web technologies. It enables businesses to host HD video meetings with real-time collaboration tools (chat, whiteboard, screen sharing) and provides a WhatsApp-style messenger for business-scoped instant messaging.
Core video conferencing platform
Features:
VIDEOSDK_TOKENCloud database for all application data
Features:
MONGODB_URICloud storage for files and attachments
Features:
BLOB_READ_WRITE_TOKEN (optional)Application performance and usage analytics
Features:
Built-in with @vercel/analytics@radix-ui/*Accessible component primitivestailwindcssUtility-first CSS frameworknext-themesTheme management (dark/light)lucide-reactIcon libraryclass-variance-authorityCSS class utilitiesframer-motionAnimation library@videosdk.live/react-sdkReact wrapper for VideoSDK@videosdk.live/js-sdkCore VideoSDK librarysocket.ioReal-time server (Node.js)socket.io-clientSocket.IO client library@dnd-kit/*Drag and drop librarymongodbMongoDB driver for Node.jsswrData fetching with cachingreact-day-pickerDate picker componentdate-fnsDate utility functionsjsonwebtokenJWT creation and verificationbcryptjsPassword hashing and comparisonua-parser-jsUser agent parsingtypescriptType checking for JavaScript@types/*TypeScript type definitionspostcssCSS processingtailwindcss-animateAnimation utilitiesEach business is completely isolated with businessId filtering on all queries. This allows shared infrastructure while maintaining complete data privacy and separation.
Separate JWT secrets for admin and messenger users. This provides different permission models - admin users manage the platform, while messenger users are external contacts for instant messaging.
Custom Socket.IO server handles presence, messaging, read receipts, and call signaling. Provides true real-time experience with automatic reconnection and exponential backoff.
messenger_users vs users collections accommodate different lifecycles. Messenger users are external contacts, while admin users manage the platform.
Comprehensive logging of all user actions with extensive metadata. Critical for compliance, debugging, and understanding user behavior patterns.
Primary storage via Vercel Blob with CDN integration. Base64 encoding for small files to reduce external API calls and improve performance.
Smooth animations for call modals with color-coded differentiation between audio and video calls. Improved user experience with visual feedback and professional appearance.
MONGODB_URIMongoDB Atlas connection string for database access
VIDEOSDK_TOKENAPI token for VideoSDK.live conferencing service
JWT_SECRETSecret key for signing admin user tokens
MESSENGER_JWT_SECRETSecret key for signing messenger user tokens
NEXT_PUBLIC_APP_URLPublic URL of the application (accessible to frontend)
BLOB_READ_WRITE_TOKENToken for Vercel Blob storage (optional - enable file storage features)
User submits credentials on login page
Frontend sends POST to /api/*/auth/login
Backend validates credentials and hashes password
JWT token issued and stored in localStorage
Subsequent requests include token in Authorization header
Caller initiates call via messenger UI
Frontend creates call record via POST /api/messenger/calls
Backend creates VideoSDK room and returns roomId
Frontend emits call:initiate socket event to receiver
Receiver's browser receives call:incoming with caller details
Receiver accepts call, both join meeting room
User types message in chat UI
Frontend emits message:send socket event
Backend validates and stores in messenger_messages collection
Backend broadcasts message:received to conversation participants
Receivers update their UI with new message
Read receipt emitted when message is seen
User connects to socket (after authentication)
Backend updates user_presence collection
Backend broadcasts user:online to business room
All users in business receive presence update
UI updates online status indicators
Explore how the system is organized, from frontend frameworks to backend services, database design, and external integrations.
You're currently here reading the complete architectural overview.
Start building with practical API examples, request/response formats, Socket.IO events, and best practices.
View Developer Guide →