Axis Meet
Enterprise-grade video conferencing — HD meetings, screen sharing, recording, and an AI assistant in a Turborepo platform.
Overview
The product
Axis Meet is an enterprise-grade video conferencing platform comparable to Google Meet, built as a TypeScript Turborepo: a Next.js 14 frontend and an Express API backed by a Mediasoup SFU for WebRTC media, Socket.IO for realtime signaling, PostgreSQL with Prisma for data, Redis for cross-instance events, and S3-compatible storage for recordings and avatars. Meetings get HD video and audio with adaptive bitrate, screen sharing, realtime chat, host controls with waiting rooms and breakout rooms, cloud recording, and an AI assistant that produces summaries, transcripts, and action items — all behind JWT, OAuth, 2FA, and role-based access.
Mediasoup SFU
Media
Socket.IO + Redis
Realtime
JWT + OAuth + 2FA
Auth
Docker + K8s ready
Deploy
The problem
Meetings deserve better than good-enough video
Teams settle for conferencing tools that treat reliability, security, and intelligence as premium add-ons. Self-hosting a real alternative means solving media routing at scale, keeping signaling consistent across instances, and meeting enterprise auth requirements — all at once.
- Media doesn't scale by default — peer-to-peer breaks past a handful of participants
- Signaling fragments across instances without a shared event bus
- Enterprise auth (SSO, 2FA, RBAC, audit logs) is a checklist most clones skip
The solution
A Meet-class platform, engineered as a monorepo
I built Axis Meet as a Turborepo with shared ui, hooks, types, and SDK packages so web and API evolve against one contract. A Mediasoup SFU routes media with selective forwarding while Socket.IO over Redis pub/sub keeps signaling consistent across horizontally scaled API servers. Auth layers JWT with Google/GitHub OAuth, TOTP-based 2FA, and RBAC with rate limiting and audit logs. An AI assistant turns recorded meetings into transcripts, summaries, and action items, and a versioned REST API with OpenAPI docs makes the whole platform programmable.
- Mediasoup SFU with selective forwarding for multiparty HD media
- Shared packages plus a versioned API keep web, SDK, and server on one contract
- Enterprise security — JWT, OAuth, 2FA, RBAC, rate limits, and audit logs
Architecture
The system behind Axis Meet
A realtime pipeline — signal, route media, persist, summarize — with shared packages keeping every layer on the same types.
- 01
Web Client
Next.js 14 · React 18Meeting rooms, chat, screen share, and recording playback in a shadcn UI.
- 02
API Server
Express · Socket.IOVersioned REST (/api/v1) plus realtime signaling, with OpenAPI at /api/docs.
- 03
Media SFU
Mediasoup · WebRTCSelective forwarding, adaptive bitrate, and STUN/TURN traversal.
- 04
Realtime Bus
Redis Pub/SubCross-instance Socket.IO events for horizontal scaling.
- 05
Data
PostgreSQL · PrismaMeetings, users, sessions, and recordings with typed access.
- 06
Storage & Infra
S3 · Docker · NginxRecordings and avatars on S3-compatible storage, containerized behind Nginx.
Tech stack
Tools that earned their place
Frontend
- Next.js 14
- React 18
- TypeScript
- TailwindCSS
Realtime
- Mediasoup
- Socket.IO
- WebRTC
Backend
- Express
- PostgreSQL
- Prisma
- Redis
Auth
- JWT
- OAuth 2.0
- 2FA
- RBAC
Infra
- Docker
- Nginx
- GitHub Actions
Features
What it does, and why it matters
HD video & audio
Adaptive bitrate with noise suppression and echo cancellation.
Screen sharing
Full screen, window, or browser tab — shared in one click.
Realtime chat
Messages, emoji, file sharing, and mentions inside the meeting.
Meeting controls
Host controls, waiting room, breakout rooms, and raise-hand.
Cloud recording
Record to S3-compatible storage with playback and sharing.
AI assistant
Transcripts, summaries, action items, and smart search on every recorded meeting.
Challenges
What nearly broke the system
Multiparty media that scales
Peer-to-peer media collapses in group calls. A Mediasoup SFU with selective forwarding routes each publisher's stream once, and Redis pub/sub carries signaling across stateless API instances behind Nginx — so workers scale across cores and servers, not just connections.
Enterprise auth without enterprise pain
JWT alone isn't enough for serious orgs. Layering Google/GitHub OAuth, TOTP 2FA with QR enrollment, RBAC on every route, rate limiting, and audit logs turned auth from a login form into a verifiable security story.
One contract across the monorepo
Web, API, and SDK drift apart fast. Shared types, validators, and constants packages plus a versioned /api/v1 surface with OpenAPI docs mean a breaking change fails at build time, not in a live meeting.
Lessons learned
What shipping taught me
Realtime is a scaling problem first: stateless servers plus a shared event bus before any feature work.
Security compounds — JWT, OAuth, 2FA, and RBAC each close a different door, and audit logs prove it.
Monorepos pay off when the contract is shared: one types package beats three matching interfaces.
Impact
Why this actually matters
Axis Meet proves an independent team can ship conferencing at Google Meet's bar — HD multiparty media on an SFU, consistent signaling at scale, enterprise auth, and AI meeting intelligence, all deployable on your own infrastructure.
- Multiparty HD that holds up — SFU routing with adaptive bitrate
- Enterprise-ready security — OAuth, 2FA, RBAC, and audit trails
- Meetings that remember — recording plus AI summaries and action items
Gallery
Inside the product
Meeting room
HD multiparty video with screen share and chat.
Host controls
Waiting rooms, breakouts, and recording from one bar.
AI recap
Transcripts, summaries, and action items after every call.