Angular – Get Started

May 28, 20263 min readUpdated 8/21/2026

Angular is a framework for building web applications, maintained by Google. It is opinionated in a way React is not: routing, HTTP, forms, testing and a build system all ship in the box and are expected to be used together.

That is the trade. You learn more up front, and you spend far less time choosing between libraries or discovering that two of them disagree. It is why Angular is common in teams and in long-lived applications — the code someone wrote three years ago looks like the code you would write today.

What changed, and why old tutorials mislead

Angular has changed more in the last three years than in the six before them. If you have read about it before, or you are looking at a tutorial written in 2021, these are the things that are no longer true:

NgModules are gone from new code. Components are standalone and declare their own imports. If a tutorial talks about declarations, it predates this.

Signals replaced most of RxJS. State is held in signals, not observables and not BehaviorSubject. RxJS is still there and still the right tool for events over time.

*ngIf and *ngFor are replaced by @if and @for blocks, built into the template compiler.

Zone.js is optional. A signals-based app runs zoneless, which is what the demo application for this track does.

Versions this track is written against

Every example below comes from a real application pinned to these. When they move, expect small differences.

{
  "@angular/core": "21.2",
  "@angular/cli": "21.2",
  "typescript": "5.9",
  "rxjs": "7.8",
  "@ngrx/store": "21.1",
  "bootstrap": "5.3",
  "node": "22"
}

Seeing it run

npm install -g @angular/cli
ng new my-app
cd my-app
ng serve

http://localhost:4200, and it reloads as you edit. The next lesson goes through what those commands generated.

The application every example comes from

This track does not invent snippets. Almost every block of code in it is copied from PizzaHub — a working pizza-ordering application with a menu, a pizza builder, a cart that survives a refresh, guest checkout, Stripe payments, order history, saved addresses and cards, and an admin area with reports.

It is Angular 21, standalone, zoneless, OnPush throughout, with signal services for the customer screens and NgRx for the admin section. It has a Vitest unit suite and a Playwright suite that drives every flow through the UI.

The same application exists in React against the same backend, which is where the "here is what React does about this" asides throughout the track come from. They are comparisons between two real implementations, not between Angular and a remembered impression of something else.

What you should know first

JavaScript, comfortably: const, arrow functions, destructuring, spread, map/filter, promises and async/await.

TypeScript helps and is not a prerequisite — lesson 3 covers the parts Angular leans on hardest. You do not need React, and where this track mentions it, the point stands without it.

The lessons

In order. Each builds on the one before, and the first three are short.

Getting started

  1. Get Started
  2. Set Up a Project with the Angular CLI
  3. The TypeScript You Need First

Components and templates

  1. Your First Component
  2. Templates and Data Binding
  3. Handling Events
  4. Control Flow with @if, @for and @switch
  5. Inputs, Outputs and Two-Way Binding
  6. Content Projection and ng-template
  7. Directives
  8. Pipes
  9. Component Styles, Sass and Bootstrap

Reactivity

  1. Signals
  2. computed and effect
  3. The Component Lifecycle

Services, DI and data

  1. Services and Dependency Injection
  2. Talking to an API with HttpClient
  3. HTTP Interceptors
  4. RxJS, and How Much of It You Still Need

Routing

  1. Routing
  2. Guards, Resolvers and Lazy Loading

Forms

  1. Template-Driven Forms
  2. Reactive Forms and Validation

Shipping it

  1. State Management
  2. Testing
  3. Change Detection, OnPush and Zoneless
  4. Build and Deploy to Production
  5. Interview Questions

Start here

Set Up a Project with the Angular CLI — one command, and what each of the files it generates is actually for.