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
.astrocompiler is not in this repo; it's a Go project atwithastro/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] formatauthor —format.ymlworkflow.
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.