LearnAI ToolsCareerPractice BuildsPlayDevelopmentContact
Lesson 4414 min read

Deploying an Angular App

Build and deploy an Angular application to static hosting, and understand SSR deployment with Angular Universal.

On this page 7 sections

Building for Production

ng build
# Outputs optimized static files to dist/my-app/browser

For a plain, client-rendered Angular app, this produces a folder of static HTML, CSS, and JavaScript — no server-side runtime is required to serve it.

Deploying a Static SPA

Any static host works: Netlify, Vercel, Firebase Hosting, or a plain CDN/S3 bucket. Firebase Hosting is a particularly common choice in the Angular ecosystem, with first-class Angular CLI integration (ng deploy).

Firebase Hosting

ng add @angular/fire, then ng deploy — Google's own hosting, closely integrated with the CLI.

▲

Netlify / Vercel

Connect a Git repo; both auto-detect Angular and deploy on every push.

A CDN / Object Storage

Upload the dist/ folder directly to S3, Cloudflare Pages, or similar.

The SPA Routing Gotcha

With client-side routing, directly visiting a deep URL like /about sends that request to the server, which knows nothing about the Angular Router's in-app paths — you must configure the host to redirect all unmatched requests to index.html, letting the Angular Router take over from there.

# public/_redirects (Netlify example)
/* /index.html 200

Deploying with Angular Universal (SSR)

An SSR-enabled Angular app needs an actual Node.js server (or a serverless/edge platform that supports one) to render pages per request, unlike a plain static SPA.

PlatformNotes
A Node.js servernode dist/my-app/server/server.mjs, for full control over hosting.
Firebase Hosting + Cloud FunctionsOfficially supported for deploying an SSR-enabled Angular app.
Vercel / NetlifyBoth support deploying Angular Universal apps as serverless functions.

A Pre-Deployment Checklist

  • Run ng build locally and fix any errors or warnings.
  • Confirm environment.prod.ts has the correct production values.
  • Configure SPA fallback routing if deploying to static hosting.
  • Test the production build locally (e.g. with a simple static server) before deploying.

FAQs

No — a client-rendered Angular app builds to static files and can be served from any static host or CDN, with no Node.js runtime needed in production.

By default it targets Firebase (via @angular/fire), but other platforms provide their own ng add-based deploy builders that integrate with the same CLI command.

Summary

A plain Angular SPA deploys as static files to any host, while Angular Universal SSR needs a Node.js-capable platform — both are well-supported across major hosting providers. In the final lesson, you'll review best practices and common mistakes that tie this whole course together.

Next Lesson →

Best Practices & Common Mistakes