Confero is a real-time skill-based video networking platform designed for low-latency video and voice interactions.
The project focuses on clean architecture, scalability, and practical real-world implementation of real-time systems using modern web technologies. Users create profiles with skill tags, enter a matchmaking queue, and are paired with someone who shares at least one skill — a live WebRTC video call begins automatically.
Confero enables browser-based real-time audio and video communication with a clear separation of responsibilities across signaling, media transport, and background processing.
The codebase follows a monorepo architecture, keeping frontend and backend development unified while maintaining clear boundaries between concerns.
The goal is to build a system that is predictable under load, easy to reason about, and extensible for future features.
- Real-time video and audio communication via WebRTC P2P
- WebSocket-based signaling layer with Socket.IO
- Skill-intersection matchmaking backed by Redis queues
- Two-sided readiness gate — call only starts when both users accept
- Duplicate tab guard using Redis
SCARDchecks - OTP + Google OAuth 2.0 authentication
- JWT HTTP-only cookies with refresh token rotation
- Asynchronous session recording via RabbitMQ
- Fast in-memory presence management
- Full admin dashboard with real-time analytics
- Monorepo setup using pnpm workspaces
| Skill-based match flow | Live P2P video session |
Every user has a full profile — custom banner, avatar, job title, LinkedIn, and a skill list that drives the entire matching system.
| Profile with skill overview | Live banner update with toast confirmation | Full profile — personal info & expertise |
A full admin console gives platform operators real-time visibility — active socket connections, live call sessions, total video calls, match rate, call time distribution, and a searchable connection log.
| Platform intelligence dashboard | Live call session tracking |
Connection log — full history with participants, duration & status
Client (Browser)
│
├── WebRTC (Media Streams — direct P2P, no server touch)
│
├── WebSocket Signaling ──► Live Service ──► Redis (presence, queues, locks)
│ │
│ └── RabbitMQ ──► Auth Service (session recording)
│
└── REST APIs ──► API Gateway ──► Auth Service (users, auth, admin)
(rate limiting,
reverse proxy)
This separation allows real-time media traffic to remain fully isolated from control logic and background processing. A database write failure never interrupts a live call.
frontend— Next.js 15 App Router, UI, socket clientlive-service— WebSocket server, matchmaking engine, WebRTC signalingservices/auth-service— Users, auth, sessions, bans, admin APIsgateway— Reverse proxy, rate limiting per IPpackages/shared— Shared types and utilities
Managed using pnpm workspaces for consistent dependency control.
- Explicit over implicit behavior
- Clear separation of concerns — controllers thin, logic in services, data access in repositories
- Real-time paths kept minimal and fast
- Event-driven workflows for non-blocking operations
- Maintainability prioritized over shortcuts
Active development.
Core real-time communication and signaling infrastructure is fully operational and deployed on Azure. Additional scalability, observability, and reliability improvements are ongoing — including moving call state to Redis for horizontal scaling and establishing test coverage starting with the matching engine.








