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.htmlto 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, thengtsctemplate 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
overview/getting-started— get the repo building and tests passing.how-to-contribute/development-workflow— the day-to-day branch/PR cycle.- The package page that owns the area you're touching (
packages/). - The matching
systems/page if your change crosses package boundaries. how-to-contribute/testingandhow-to-contribute/debuggingwhen you start writing code.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.