Open-Source Wikis

/

Astro

/

By the numbers

withastro/astro

By the numbers

Data collected on 2026-04-30 from git log and the source tree at commit 4ff42fd396.

Size

Metric Count
TypeScript source files (packages/**/*.ts, excluding dist//node_modules/) ~1,950
TypeScript lines of code (all .ts including tests) 214,269
TypeScript lines of code (excluding tests) 113,427
.astro component files in the repo 696
.astro lines of code 20,785
Test files (*.test.js + *.test.ts under packages/) ~700+
Workspace packages (published) 38
Examples in examples/ 24
GitHub Actions workflows 22
Pending changesets at snapshot time 1
xychart-beta horizontal
    title "Top 10 largest source files (lines)"
    x-axis ["public/config.ts", "errors-data.ts", "fonts core.test.ts", "view-transitions.test.ts", "astro_i18n.test.ts", "core-image.test.ts", "astro-jsx.d.ts", "lang-server astro-jsx.d.ts", "manual-routing.test.ts", "render-context.ts"]
    y-axis "Lines" 0 --> 3500
    bar [3134, 2261, 2025, 1884, 1786, 1657, 1572, 1497, 1350, 1016]

Activity

The repo's first commit landed on 2021-03-15. The most recent commit at snapshot is 2026-04-30. That's just over five years of continuous development.

Metric Value
Total commits 14,149
Commits since 2024-01-01 5,074
Unique authors since 2025-01-01 284

The throughput is on the order of 7–8 commits/day on average, with substantially higher density during release cycles.

Composition

  • Primary language: TypeScript.
  • Secondary languages: .astro (component files), Markdown (changesets, READMEs, docs fixtures), JSON (config, fixtures), small amounts of CSS for the dev toolbar.
  • The Astro .astro compiler is not in this repo; it's a Go project at withastro/compiler.

Bot-attributed commits

CI bots that author or co-author commits include:

  • astrobot / astrobot-houston — handles the changeset release PR.
  • dependabot[bot] — security dependency bumps.
  • renovate-bot — version updates.
  • The [ci] format author — format.yml workflow.

A meaningful fraction of merge commits and changelog commits are bot-authored; this is a lower bound on AI-assisted work since inline AI tools (Copilot, Claude Code) leave no trace in git history.

Complexity hotspots

The five largest non-test files (a refactoring nudge):

File Lines
packages/astro/src/types/public/config.ts 3,134
packages/astro/src/core/errors/errors-data.ts 2,261
packages/astro/astro-jsx.d.ts 1,572
packages/language-tools/language-server/types/astro-jsx.d.ts 1,497
packages/astro/src/core/render-context.ts 1,016

config.ts is large because it documents and types every user-facing config option. errors-data.ts is large because every Astro error has a typed payload, message function, and hint.

Test-to-code ratio

Roughly 2.7× more lines of test/fixture TypeScript than non-test TypeScript inside packages/. This is high but not unusual for a heavily user-facing framework.

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

By the numbers – Astro wiki | Factory