Open-Source Wikis

/

Angular

/

By the numbers

angular/angular

By the numbers

Data collected on 2026-04-30 from HEAD = 4c9afb68a3 on the main branch.

A snapshot of the codebase. Numbers describe the codebase, not individuals — see maintainers for ownership mapping.

Size

Total: ~37,200 commits, ~2,580 unique committer email addresses across the project's history.

Lines of TypeScript per public package

xychart-beta horizontal
  title "TypeScript LOC per package"
  x-axis ["core", "compiler-cli", "compiler", "forms", "common", "router", "language-service", "zone.js", "platform-server", "localize", "animations", "upgrade", "service-worker", "platform-browser"]
  y-axis "Lines of TypeScript" 0 --> 300000
  bar [298908, 166048, 88874, 65689, 43140, 38052, 36681, 33857, 15683, 14498, 13393, 13144, 12964, 10291]
Package Lines of TypeScript
@angular/core 298,908
@angular/compiler-cli 166,048
@angular/compiler 88,874
@angular/forms 65,689
@angular/common 43,140
@angular/router 38,052
@angular/language-service 36,681
zone.js 33,857
@angular/platform-server 15,683
@angular/localize 14,498
@angular/animations 13,393
@angular/upgrade 13,144
@angular/service-worker 12,964
@angular/platform-browser 10,291
@angular/benchpress 4,969
@angular/elements 2,133
@angular/platform-browser-dynamic 717
@angular/ssr (re-export shell) 26

adev/ has ~47,200 lines of TypeScript and 371 markdown content files. devtools/ has ~43,000 lines of TypeScript.

Source vs test vs build

Category Approximate count
.ts files (everywhere except node_modules/.git) ~10,300
.spec.ts files ~1,800
BUILD.bazel / .bzl files ~700

Workspace package count

The pnpm workspace contains 18 public @angular/* packages plus zone.js (legacy peer of the framework, also versioned in this repo), the adev documentation app, the devtools extension projects, the dev-app, and a number of internal-only utilities under packages/private, packages/misc, and tools/.

Activity

Recent commit volume

Window Commits
Calendar year 2026 (year-to-date as of 2026-04-30) 1,337
Last 12 months ~5,400
Last 6 months ~6,090
Last 30 days ~510

Churn hotspots (last 6 months)

Top directories by file changes since 2025-10-30:

Path File-changes
adev/src/ 4,573
packages/compiler-cli/ 1,513
packages/core/ 1,505
packages/forms/ 830
devtools/projects/ 715
adev/shared-docs/ 453
packages/compiler/ 418
packages/language-service/ 337
packages/router/ 311
packages/common/ 197

Documentation (adev/) is the single most active surface — typical for a framework that ships a tightly coupled documentation site. Among framework code, compiler-cli and core lead, reflecting ongoing investment in the template compiler and the Ivy runtime.

Bot-attributed commits

Bot author emails identified in history:

  • angular-robot@google.com and 56403804+angular-robot[bot]@users.noreply.github.com
  • 29139614+renovate[bot]@users.noreply.github.com and bot@renovateapp.com
  • 49699333+dependabot[bot]@users.noreply.github.com

In the last 6 months, the angular-robot account alone authored 316 commits — primarily release cuts, changelog updates, and merge-ready status updates. This is a lower bound on automation: inline AI assists and human-merged PRs prepared with bots are not counted.

Complexity signals

Largest individual TypeScript files in packages/core/src/render3/ (the Ivy runtime):

File Approx. lines
instructions/styling.ts ~42,000 chars / large
node_manipulation.ts ~39,000 chars
di.ts ~39,700 chars
state.ts ~26,300 chars
definition.ts ~24,200 chars
component_ref.ts ~22,600 chars

These are the canonical "deep magic" files — every contributor will eventually open state.ts and node_manipulation.ts when chasing a render bug.

The compiler-cli template type-checking subsystem (packages/compiler-cli/src/ngtsc/typecheck) is the second hotspot for complex code: it generates synthetic TypeScript so that ordinary tsc diagnostics light up template binding errors, which means it has to reason about template semantics through generated code patterns.

What this number tells you

  • The framework is mature: ~37k commits, ~12 years of history, 2,500+ contributors. There is rarely a "first" change in any subsystem.
  • Compiler and core dominate complexity; documentation dominates churn.
  • Bots run a meaningful share of mechanical work. When auditing a directory's blame, filter [bot] accounts out.

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

By the numbers – Angular wiki | Factory