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:
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.