---
title: "Build a Video Chat App with ASP.NET Core and Angular using Twilio Video"
description: "This tutorial builds a small group video chat application with an ASP.NET Core Web API and Angular single-page app using Twilio Programmable Video. The API binds typed Twilio credentials, mints short-lived access tokens locally with the API Secret, reads active rooms through the Twilio REST API, and pushes room-list changes over SignalR instead of browser polling. The Angular client uses the twilio-video library to capture camera and microphone media, connect to rooms, render participants, and provide device selectors. Local development runs the API alongside ng serve, while a Release MSBuild target runs npm ci and npm run build so dotnet publish places the SPA in the API's wwwroot. The resulting local test demonstrates a two-participant call and a live active-room count that updates when someone joins or leaves."
---

# Build a Video Chat App with ASP.NET Core and Angular using Twilio Video

[Twilio](https://yomu.fyi/company/twilio) · Donal Toomey · Sep 3, 2026

**Type:** Tutorial

## Summary

This tutorial builds a small group video chat application with an ASP.NET Core Web API and Angular single-page app using Twilio Programmable Video. The API binds typed Twilio credentials, mints short-lived access tokens locally with the API Secret, reads active rooms through the Twilio REST API, and pushes room-list changes over SignalR instead of browser polling. The Angular client uses the twilio-video library to capture camera and microphone media, connect to rooms, render participants, and provide device selectors. Local development runs the API alongside ng serve, while a Release MSBuild target runs npm ci and npm run build so dotnet publish places the SPA in the API's wwwroot. The resulting local test demonstrates a two-participant call and a live active-room count that updates when someone joins or leaves.

## Context

The application addresses the need to add multi-party video to scenarios such as telehealth, virtual banking, and online exams without operating media servers. It also keeps the active room list current for all clients without requiring browser polling.

## Approach / What changed

An ASP.NET Core Web API mints Twilio access tokens, queries active rooms and participants through the Twilio REST API, and broadcasts room changes with SignalR. An Angular SPA uses twilio-video for media and room participation, while an MSBuild Release target compiles the SPA into the API's wwwroot for a single deployable.

## Takeaways

- Twilio access tokens are signed locally with the API Key Secret, so the token endpoint does not need to call Twilio; room and participant lookups use the Twilio REST API.
- SignalR pushes active-room changes to connected clients when participants join or leave, avoiding browser polling and page refreshes.
- A Release MSBuild target runs the Angular build before publishing, placing the compiled SPA in wwwroot alongside the ASP.NET Core API.

**Tags:** [Angular](https://yomu.fyi/topic/angular), [ASP.NET Core](https://yomu.fyi/topic/asp-net-core), [SignalR](https://yomu.fyi/topic/signalr), [Twilio](https://yomu.fyi/topic/twilio)

- Source: [Twilio](https://www.twilio.com/en-us/blog/developers/tutorials/product/build-video-chat-app-dotnet-angular)
- Source URL: https://www.twilio.com/en-us/blog/developers/tutorials/product/build-video-chat-app-dotnet-angular
- Ingested by Yomu: 2026-09-09T13:36:27.950Z

[Read original post](https://www.twilio.com/en-us/blog/developers/tutorials/product/build-video-chat-app-dotnet-angular)
