<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/how-does-the-asp-net-core-spa-development-experience-work-with-react-angular-and-vuejs--lejzj3fhr" -->

---
title: How does the ASP.NET Core SPA development experience...
description: Explains how the ASP.NET Core SPA templates (dotnet new react/angular) wire up the development and publishing workflow under the hood. During development,...
canonical: https://daily.dev/posts/how-does-the-asp-net-core-spa-development-experience-work-with-react-angular-and-vuejs--lejzj3fhr
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: How does the ASP.NET Core SPA development experience work with React, Angular and VueJS? | daily.dev
og:description: Explains how the ASP.NET Core SPA templates (dotnet new react/angular) wire up the development and publishing workflow under the hood. During development,...
og:url: https://daily.dev/posts/how-does-the-asp-net-core-spa-development-experience-work-with-react-angular-and-vuejs--lejzj3fhr
og:image: https://api.daily.dev/og/posts/lEjzj3FHR.png
og:image:alt: How does the ASP.NET Core SPA development experience work with React, Angular and VueJS?
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# How does the ASP.NET Core SPA development experience work with React, Angular and VueJS?

**[Maarten Balliauw](https://daily.dev/sources/maartenballiauw)** · 7 min read · 0 upvotes · 0 comments

## Summary

Explains how the ASP.NET Core SPA templates (dotnet new react/angular) wire up the development and publishing workflow under the hood. During development, Startup.cs registers middleware (UseSpaStaticFiles, UseSpa, UseReactDevelopmentServer) that proxies the npm run start dev server so hot reload works through the ASP.NET Core app. During publishing, an MSBuild target (PublishRunWebpack) runs npm install and npm run build, then bundles the ClientApp/build output into the published app. The templates support React and Angular directly, while VueJS requires manual wiring following the same pattern, with a link to a community guide for Vue integration.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://blog.maartenballiauw.be/posts/2019-11-13-how-does-the-aspnetcore-spa-development-experience-work>

## Questions this post answers

### How does the ASP.NET Core React template proxy the npm development server during development?

ASP.NET Core's UseSpa middleware calls UseReactDevelopmentServer, which registers ReactDevelopmentServerMiddleware to run npm run start and proxy that process. This means the dev experience is effectively the same as running npm run start directly, except the ASP.NET Core app serves both the server-side API and the client-side SPA together, with hot reload working automatically.

_daily.dev surfaces deep dives like this for developers debugging ASP.NET Core and React dev server setups._

### How does ASP.NET Core build and publish a React or Angular SPA for production?

An MSBuild target named PublishRunWebpack runs after ComputeFilesToPublish, executing npm install and npm run build in the ClientApp folder, then adding every file from ClientApp/build into the publish output as ResolvedFileToPublish items. This ensures the static SPA assets are freshly built and bundled into the ASP.NET Core deployment automatically during msbuild /t:Publish.

_daily.dev helps engineers comparing SPA publish pipelines find practical ASP.NET Core and front-end integration guides._

## Similar posts on daily.dev

- [How to Upgrade ASP.NET MVC to .NET Step by Step](https://daily.dev/posts/how-to-upgrade-asp-net-mvc-to-net-step-by-step-i3p1uesfs) · C\# Corner · 2 upvotes · 0 comments
- [Deploying ASP.NET Core Web API to Azure and Docker](https://daily.dev/posts/deploying-asp-net-core-web-api-to-azure-and-docker-cvbz8psyb) · We Are .NET · 2 upvotes · 0 comments
- [Modern Frontend Complexity: essential or accidental?](https://daily.dev/posts/modern-frontend-complexity-essential-or-accidental--yrurnb4gq) · Lobsters · 2 upvotes · 0 comments
- [Blazor Full Stack in .NET 10: When Should C\# Developers Use It?](https://daily.dev/posts/blazor-full-stack-in-net-10-when-should-c-developers-use-it--1jbibzfdi) · Syncfusion · 83 upvotes · 2 comments

---

Tags: [#react](https://daily.dev/tags/react), [#vuejs](https://daily.dev/tags/vuejs), [#angular](https://daily.dev/tags/angular), [#aspnet](https://daily.dev/tags/aspnet)

[View this post on daily.dev](https://daily.dev/posts/how-does-the-asp-net-core-spa-development-experience-work-with-react-angular-and-vuejs--lejzj3fhr)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"How does the ASP.NET Core SPA development experience work with React, Angular and VueJS?","url":"https://daily.dev/posts/how-does-the-asp-net-core-spa-development-experience-work-with-react-angular-and-vuejs--lejzj3fhr","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/how-does-the-asp-net-core-spa-development-experience-work-with-react-angular-and-vuejs--lejzj3fhr"},"datePublished":"2026-10-04T13:04:12.010Z","dateModified":"2026-10-04T13:04:42.430Z","description":"Explains how the ASP.NET Core SPA templates (dotnet new react/angular) wire up the development and publishing workflow under the hood. During development,...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/48e81c23e96b637915d590dca2ea978d?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/48e81c23e96b637915d590dca2ea978d?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Maarten Balliauw","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Maarten Balliauw","logo":"https://media.daily.dev/image/upload/s--rOTg3VYO--/f_auto,q_auto/v1791119043/logos/maartenballiauw?_a=BAMAMicg0","url":"https://daily.dev/sources/maartenballiauw"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/how-does-the-asp-net-core-spa-development-experience-work-with-react-angular-and-vuejs--lejzj3fhr","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"react,vuejs,angular,aspnet","timeRequired":"PT7M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Maarten Balliauw","item":"https://daily.dev/sources/maartenballiauw"},{"@type":"ListItem","position":3,"name":"How does the ASP.NET Core SPA development experience work with React, Angular and VueJS?"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/how-does-the-asp-net-core-spa-development-experience-work-with-react-angular-and-vuejs--lejzj3fhr#faq","mainEntity":[{"@type":"Question","name":"How does the ASP.NET Core React template proxy the npm development server during development?","acceptedAnswer":{"@type":"Answer","text":"ASP.NET Core's UseSpa middleware calls UseReactDevelopmentServer, which registers ReactDevelopmentServerMiddleware to run npm run start and proxy that process. This means the dev experience is effectively the same as running npm run start directly, except the ASP.NET Core app serves both the server-side API and the client-side SPA together, with hot reload working automatically. daily.dev surfaces deep dives like this for developers debugging ASP.NET Core and React dev server setups."}},{"@type":"Question","name":"How does ASP.NET Core build and publish a React or Angular SPA for production?","acceptedAnswer":{"@type":"Answer","text":"An MSBuild target named PublishRunWebpack runs after ComputeFilesToPublish, executing npm install and npm run build in the ClientApp folder, then adding every file from ClientApp/build into the publish output as ResolvedFileToPublish items. This ensures the static SPA assets are freshly built and bundled into the ASP.NET Core deployment automatically during msbuild /t:Publish. daily.dev helps engineers comparing SPA publish pipelines find practical ASP.NET Core and front-end integration guides."}}]}
```

