SaaS & Platforms

VisualMeet

Video-conferencing platform on ASP.NET Zero

Role
Author
Period
2020 – 2021
Solution
14 projects · .NET 5

Overview

VisualMeet — a video-conferencing product: WebRTC meeting rooms with camera/mic controls, screen share, in-meeting chat, recording, and file sharing. The backend is an ASP.NET Zero modular monolith (.NET 5) where five protocol heads — Angular panel, public web, GraphQL, SignalR hub, Xamarin mobile — share one DDD-layered core.

Media flows peer-to-peer over WebRTC; the SignalR hub only carries room signaling, which keeps the server out of the video path.

  • meet-panelMeetPanel ASP.NET Zero solution + Angular UI
  • visual-meet / visual-meet-roomWebRTC room + signaling (gitlab, 17 commits)

Tech stack

Backend

  • .NET 5
  • ASP.NET Zero / ABP
  • SignalR
  • GraphQL
  • EF Core

Clients

  • Angular 12
  • Xamarin iOS/Android
  • WebRTC

Repository structure

ASP.NET Zero monorepo — the same layered shape as the diagram’s five heads over one core:

MeetPanel solution
aspnet-core/
├─ src/               MeetPanel.* ABP layers
│   (Application · Core · EntityFrameworkCore ·
│    Web.Host · Web.Public · Migrator …)
├─ test/
├─ MeetPanel.All.sln · Web.sln · Mobile.sln
angular/              Angular 12 panel (NSwag clients)
ui-tests/             Jest suite

Design patterns

  • Modular monolith, many heads

    REST, GraphQL, SignalR, public web, and mobile all sit on one Application/Core/EF stack — 14 projects, one domain.

  • Signaling vs media split

    SignalR handles room membership and SDP exchange; media never touches the server (P2P WebRTC).

  • DDD layering

    Rooms, sessions, participants, and recording policies live in Core; use cases in Application.

System design

VisualMeet system diagram