Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .github/workflows/build-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ on:
paths:
- 'packages/docs/**'
- 'packages/results/**'
- 'results/**'
- 'package.json'
- 'pnpm-lock.yaml'
- 'pnpm-workspace.yaml'
Expand All @@ -17,6 +18,7 @@ on:
paths:
- 'packages/docs/**'
- 'packages/results/**'
- 'results/**'
- 'package.json'
- 'pnpm-lock.yaml'
- 'pnpm-workspace.yaml'
Expand Down
18 changes: 11 additions & 7 deletions .github/workflows/generate-stats.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ on:
- 'packages/stats-generator/**'
- '.github/workflows/generate-stats.yml'
- '.github/workflows/measure-framework.yml'
- 'packages/results/**'
- 'packages/stats-generator/src/frameworks.ts'
- 'package.json'

Expand All @@ -44,11 +45,17 @@ jobs:
- name: Checkout code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Setup pnpm
uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5

- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: '24'

- name: Install workspace dependencies
run: pnpm install --frozen-lockfile

- name: Set matrices from TypeScript config
id: set-matrix
run: |
Expand Down Expand Up @@ -111,9 +118,6 @@ jobs:
- name: Save CI stats
run: pnpm --filter @framework-tracker/stats-generator save:ci-stats $GITHUB_WORKSPACE/artifacts

- name: Collect stats for docs
run: pnpm collect:stats

- name: Format
run: pnpm format

Expand All @@ -128,7 +132,7 @@ jobs:
fi

git checkout -B automated-stats-update
git add packages/
git add packages/ results/
git commit -m "Update CI stats and generated stats after starter changes"
git push --force-with-lease origin automated-stats-update

Expand All @@ -138,9 +142,9 @@ jobs:
--body "Automated stats update triggered by changes to starter packages.

Includes:
- CI build time measurements (ci-stats.json)
- Versioned stats history (stats/<version>.json)
- Generated framework comparison stats
- Combined framework measurements (results/<framework>/latest.json)
- Versioned stats history (results/<framework>/versions/<version>.json)
- Starter and app test results with project attribution

This PR was automatically created and will auto-merge if all checks pass." \
--base main \
Expand Down
9 changes: 6 additions & 3 deletions .github/workflows/preview-stats.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,17 @@ jobs:
with:
fetch-depth: 0

- name: Setup pnpm
uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5

- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: '24'

- name: Install workspace dependencies
run: pnpm install --frozen-lockfile

- name: Detect PR, changed frameworks, and build matrices
id: detect
env:
Expand Down Expand Up @@ -134,9 +140,6 @@ jobs:
- name: Save CI stats
run: pnpm --filter @framework-tracker/stats-generator save:ci-stats $GITHUB_WORKSPACE/artifacts

- name: Collect stats for docs
run: pnpm collect:stats

- name: Generate comment
run: |
FRAMEWORK_ARGS=$(echo '${{ needs.setup.outputs.framework-names }}' | jq -r '.[]' | tr '\n' ' ')
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/sync-version.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
paths:
- 'packages/starter-*/package.json'
- 'packages/app-*/package.json'
- 'packages/results/**'
- 'packages/stats-generator/src/frameworks.ts'
workflow_dispatch: # Allows manual triggering from GitHub Actions UI

Expand Down
1 change: 1 addition & 0 deletions .github/workflows/validate-stats.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ on:
- '.github/workflows/generate-stats.yml'
- '.github/workflows/measure-framework.yml'
- '.github/workflows/validate-stats.yml'
- 'packages/results/**'
- 'packages/stats-generator/src/frameworks.ts'
- 'packages/app-*/**'
- '!packages/app-*/ci-stats.json'
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -84,3 +84,7 @@ packages/*/node-engines-stats.json
*.temp
*.pem
*.local

# Temporary runtime measurement artifacts; persisted results live in /results.
packages/app-*/ci-stats.json
packages/starter-*/ci-stats.json
36 changes: 18 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,31 +19,31 @@ We welcome contributions from the community! Whether you're interested in adding

If you would like to play around with the collected data to build your own visualizations or analyses, you can find the raw data output here:

- Final formatted data: [Dev Time Performance](./packages/docs/src/content/devtime) -> JSON file per framework with all collected metrics
- Final formatted data: `results/<framework>/latest.json` and `versions/<version>.json`, with `project: "starter"` on each test

- Final formatted data: [Runtime Performance](./packages/docs/src/content/runtime) -> JSON file per framework with all collected metrics
- Final formatted data: the same framework result files, with `project: "app"` on each test

- Raw data for each framework with past versions can be found in each package:

Dev Time Performance:
- [Next.js](./packages/starter-next-js/ci-stats.json)
- [Nuxt](./packages/starter-nuxt/ci-stats.json)
- [SvelteKit](./packages/starter-sveltekit/ci-stats.json)
- [Astro](./packages/starter-astro/ci-stats.json)
- [Pracht](./packages/starter-pracht/ci-stats.json)
- [React Router](./packages/starter-react-router/ci-stats.json)
- [SolidStart](./packages/starter-solid-start/ci-stats.json)
- [Tanstack Start](./packages/starter-tanstack-start-react/ci-stats.json)
- [Next.js](./results/next/latest.json)
- [Nuxt](./results/nuxt/latest.json)
- [SvelteKit](./results/sveltekit/latest.json)
- [Astro](./results/astro/latest.json)
- [Pracht](./results/pracht/latest.json)
- [React Router](./results/react-router/latest.json)
- [SolidStart](./results/solid-start/latest.json)
- [Tanstack Start](./results/tanstack/latest.json)

Runtime Performance:
- [Next.js](./packages/app-next-js/ci-stats.json)
- [Nuxt](./packages/app-nuxt/ci-stats.json)
- [SvelteKit](./packages/app-sveltekit/ci-stats.json)
- [Astro](./packages/app-astro/ci-stats.json)
- [Pracht](./packages/app-pracht/ci-stats.json)
- [React Router](./packages/app-react-router/ci-stats.json)
- [SolidStart](./packages/app-solid-start/ci-stats.json)
- [Tanstack Start](./packages/app-tanstack-start-react/ci-stats.json)
- [Next.js](./results/next/latest.json)
- [Nuxt](./results/nuxt/latest.json)
- [SvelteKit](./results/sveltekit/latest.json)
- [Astro](./results/astro/latest.json)
- [Pracht](./results/pracht/latest.json)
- [React Router](./results/react-router/latest.json)
- [SolidStart](./results/solid-start/latest.json)
- [Tanstack Start](./results/tanstack/latest.json)

## Sponsors

Expand Down
1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
"preview:docs": "pnpm --filter @framework-tracker/docs preview",
"deploy:prod": "pnpm build:docs && wrangler deploy",
"deploy:preview": "pnpm build:docs && wrangler versions upload",
"collect:stats": "pnpm --filter @framework-tracker/stats-generator collect",
"knip": "knip",
"lint": "pnpm -r --parallel lint",
"lint:fix": "pnpm -r --parallel lint:fix",
Expand Down
Loading
Loading