Open-Source Wikis

/

Angular

/

Angular

angular/angular

Angular

Angular is the framework that powers @angular/* on npm. This monorepo contains the framework runtime, the template compiler, the public packages (core, common, router, forms, compiler, compiler-cli, platform-browser, platform-server, animations, elements, language-service, localize, service-worker, ssr, upgrade, plus zone.js), the angular.dev documentation site, the browser DevTools extension, and the build, release, and migration tooling that supports them.

What you'll find here

This wiki is organized for engineers contributing to Angular itself, not for application developers. For application-developer documentation, use angular.dev. The wiki maps each chunk of the repository to its purpose:

  • overview/architecture — how the workspace is laid out and how a template gets from .html to a running DOM.
  • overview/getting-started — how to clone, install, build, and test the framework locally.
  • overview/glossary — vocabulary used throughout the codebase (Ivy, LView, NgModule-less, etc.).
  • packages/ — every workspace npm package, one page per package.
  • apps/ — the deployable apps in this repo (angular.dev, DevTools extension, dev-app).
  • systems/ — emergent cross-package systems (the Ivy runtime, the ngtsc template compiler, hydration, change detection, DI).
  • features/ — capabilities that span packages (Signals, control flow, deferrable views, standalone components, SSR).
  • background/ — design decisions and migrations (View Engine → Ivy, NgModules → standalone, RxJS → Signals).
  • reference/ — configuration files, public API surface, dependency map.

Repo at a glance

Property Value
Primary language TypeScript
Build system Bazel + pnpm workspaces
Test runner Bazel + Jasmine + Karma + Cypress (DevTools E2E)
Default branch main
Current major version line v22 (next), v21 (LTS), v20 (LTS), v19 (maintenance)
Workspace package manager pnpm 10.x
TypeScript version 6.0.x

The current HEAD (commit 4c9afb68a3) is on a v22 next-cut branch with v22.0.0-next.10 already cut. See by-the-numbers for size, churn, and contributor stats.

Where the code lives

angular/
├── packages/             # Public npm packages (@angular/*) and zone.js
├── adev/                 # angular.dev documentation site (Angular app)
├── devtools/             # Angular DevTools browser extension
├── dev-app/              # Internal scratch app for framework development
├── modules/              # Benchmarks and SSR benchmark harness
├── integration/          # End-to-end integration tests against built packages
├── tools/                # Bazel rules, manual API docs, symbol-extractor, tsconfig
├── scripts/              # CI scripts, build orchestration, benchmarks runner
├── goldens/              # Public API and bundle-size snapshot fixtures
├── contributing-docs/    # Internal docs for contributors
├── .github/workflows/    # GitHub Actions CI definitions
└── .ng-dev/              # ng-dev tooling configuration (lint, format, release)

How the pieces connect

graph TD
  Source[".html / .ts source files"] --> NgTsc["ngtsc<br/>template compiler<br/>(packages/compiler-cli)"]
  NgTsc --> Compiler["@angular/compiler<br/>output IR"]
  Compiler --> Definitions["Component/Directive/Pipe<br/>definitions (ɵcmp, ɵdir, ɵpipe)"]
  Definitions --> CoreRuntime["@angular/core runtime<br/>(packages/core/src/render3, Ivy)"]
  CoreRuntime --> CD["Change detection,<br/>Signals, DI"]
  CD --> Renderer["Renderer<br/>(platform-browser / platform-server)"]
  Renderer --> DOM["DOM / HTML output"]

  CoreRuntime -.-> Forms["@angular/forms"]
  CoreRuntime -.-> Router["@angular/router"]
  CoreRuntime -.-> Common["@angular/common"]
  CoreRuntime -.-> Elements["@angular/elements"]

Reading order for new contributors

  1. overview/getting-started — get the repo building and tests passing.
  2. how-to-contribute/development-workflow — the day-to-day branch/PR cycle.
  3. The package page that owns the area you're touching (packages/).
  4. The matching systems/ page if your change crosses package boundaries.
  5. how-to-contribute/testing and how-to-contribute/debugging when you start writing code.

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.