diff --git a/packages/docs/src/components/DependencyStats.astro b/packages/docs/src/components/DependencyStats.astro index cebadf7..752b12b 100644 --- a/packages/docs/src/components/DependencyStats.astro +++ b/packages/docs/src/components/DependencyStats.astro @@ -8,6 +8,7 @@ import { } from '../lib/utils' import '../styles/shared.css' import ComparisonBarChart from './ComparisonBarChart.astro' +import FocusedToggle from './FocusedToggle.astro' const devtimeEntries = await getCollection('devtime') const runtimeEntries = await getCollection('runtime') @@ -67,6 +68,8 @@ const buildSizeProdData = validForCharts.map((f) => ({ our methodology and testing process.

+ +

Dev Time Performance

@@ -79,7 +82,7 @@ const buildSizeProdData = validForCharts.map((f) => ({ Framework - Prod Deps + Dev Deps Size Size (Prod Only) @@ -89,7 +92,7 @@ const buildSizeProdData = validForCharts.map((f) => ({ { starterStats.map((framework) => ( - + ({ { starterStats.map((framework) => ( - + ({ { ssrStats.map((framework) => ( - + {framework.package === 'app-baseline-html' ? ( {framework.name} diff --git a/packages/docs/src/components/FocusedToggle.astro b/packages/docs/src/components/FocusedToggle.astro new file mode 100644 index 0000000..3fd7cd5 --- /dev/null +++ b/packages/docs/src/components/FocusedToggle.astro @@ -0,0 +1,107 @@ +--- + +--- + +

+ +
+ + + + diff --git a/packages/docs/src/content/config.ts b/packages/docs/src/content/config.ts index da4303b..1ed41eb 100644 --- a/packages/docs/src/content/config.ts +++ b/packages/docs/src/content/config.ts @@ -12,6 +12,7 @@ const devtimeCollection = defineCollection({ name: z.string(), type: z.string(), package: z.string(), + isFocused: z.boolean(), order: z.number(), prodDependencies: z.number(), devDependencies: z.number(), @@ -33,6 +34,7 @@ const runtimeCollection = defineCollection({ name: z.string(), type: z.string(), package: z.string(), + isFocused: z.boolean(), order: z.number(), ssrOpsPerSec: z.number(), ssrAvgLatencyMs: z.number(), diff --git a/packages/docs/src/content/devtime/starter-astro.json b/packages/docs/src/content/devtime/starter-astro.json index 3ef0275..65b8fdb 100644 --- a/packages/docs/src/content/devtime/starter-astro.json +++ b/packages/docs/src/content/devtime/starter-astro.json @@ -1,6 +1,7 @@ { "name": "Astro", "package": "starter-astro", + "isFocused": true, "type": "starter-kit", "prodDependencies": 1, "devDependencies": 2, diff --git a/packages/docs/src/content/devtime/starter-mastro.json b/packages/docs/src/content/devtime/starter-mastro.json index 8e8c969..d5af794 100644 --- a/packages/docs/src/content/devtime/starter-mastro.json +++ b/packages/docs/src/content/devtime/starter-mastro.json @@ -1,6 +1,7 @@ { "name": "Mastro", "package": "starter-mastro", + "isFocused": false, "type": "starter-kit", "prodDependencies": 2, "devDependencies": 2, diff --git a/packages/docs/src/content/devtime/starter-next-js.json b/packages/docs/src/content/devtime/starter-next-js.json index 6a02589..610fd7d 100644 --- a/packages/docs/src/content/devtime/starter-next-js.json +++ b/packages/docs/src/content/devtime/starter-next-js.json @@ -4,6 +4,7 @@ "prodDependencies": 3, "devDependencies": 6, "package": "starter-next-js", + "isFocused": true, "installTimeMs": 7166, "coldBuildTimeMs": 7159, "warmBuildTimeMs": 7159, diff --git a/packages/docs/src/content/devtime/starter-nuxt.json b/packages/docs/src/content/devtime/starter-nuxt.json index 44ef065..80c8322 100644 --- a/packages/docs/src/content/devtime/starter-nuxt.json +++ b/packages/docs/src/content/devtime/starter-nuxt.json @@ -4,6 +4,7 @@ "prodDependencies": 3, "devDependencies": 2, "package": "starter-nuxt", + "isFocused": true, "installTimeMs": 7579, "coldBuildTimeMs": 6962, "warmBuildTimeMs": 6545, diff --git a/packages/docs/src/content/devtime/starter-react-router.json b/packages/docs/src/content/devtime/starter-react-router.json index bfc8958..956cbb3 100644 --- a/packages/docs/src/content/devtime/starter-react-router.json +++ b/packages/docs/src/content/devtime/starter-react-router.json @@ -4,6 +4,7 @@ "prodDependencies": 6, "devDependencies": 8, "package": "starter-react-router", + "isFocused": true, "installTimeMs": 2687, "coldBuildTimeMs": 2747, "warmBuildTimeMs": 2746, diff --git a/packages/docs/src/content/devtime/starter-solid-start.json b/packages/docs/src/content/devtime/starter-solid-start.json index ab7937f..46909ca 100644 --- a/packages/docs/src/content/devtime/starter-solid-start.json +++ b/packages/docs/src/content/devtime/starter-solid-start.json @@ -1,6 +1,7 @@ { "name": "SolidStart", "package": "starter-solid-start", + "isFocused": true, "type": "starter-kit", "prodDependencies": 5, "devDependencies": 0, diff --git a/packages/docs/src/content/devtime/starter-sveltekit.json b/packages/docs/src/content/devtime/starter-sveltekit.json index 6c6d655..772799e 100644 --- a/packages/docs/src/content/devtime/starter-sveltekit.json +++ b/packages/docs/src/content/devtime/starter-sveltekit.json @@ -4,6 +4,7 @@ "prodDependencies": 0, "devDependencies": 7, "package": "starter-sveltekit", + "isFocused": true, "installTimeMs": 2878, "coldBuildTimeMs": 4220, "warmBuildTimeMs": 3910, diff --git a/packages/docs/src/content/devtime/starter-tanstack-start-react.json b/packages/docs/src/content/devtime/starter-tanstack-start-react.json index 36845be..e0a7fae 100644 --- a/packages/docs/src/content/devtime/starter-tanstack-start-react.json +++ b/packages/docs/src/content/devtime/starter-tanstack-start-react.json @@ -4,6 +4,7 @@ "prodDependencies": 13, "devDependencies": 11, "package": "starter-tanstack-start-react", + "isFocused": true, "installTimeMs": 4572, "coldBuildTimeMs": 9098, "warmBuildTimeMs": 8359, diff --git a/packages/docs/src/content/runtime/app-astro.json b/packages/docs/src/content/runtime/app-astro.json index 234eddc..8b682a8 100644 --- a/packages/docs/src/content/runtime/app-astro.json +++ b/packages/docs/src/content/runtime/app-astro.json @@ -1,6 +1,7 @@ { "name": "Astro", "package": "app-astro", + "isFocused": true, "type": "ssr-app", "ssrOpsPerSec": 371, "ssrAvgLatencyMs": 2.698, diff --git a/packages/docs/src/content/runtime/app-baseline-html.json b/packages/docs/src/content/runtime/app-baseline-html.json index 508512b..774582b 100644 --- a/packages/docs/src/content/runtime/app-baseline-html.json +++ b/packages/docs/src/content/runtime/app-baseline-html.json @@ -2,6 +2,7 @@ "name": "Baseline HTML", "package": "app-baseline-html", "type": "ssr-app", + "isFocused": false, "ssrOpsPerSec": 683, "ssrAvgLatencyMs": 1.465, "ssrSamples": 6826, diff --git a/packages/docs/src/content/runtime/app-mastro.json b/packages/docs/src/content/runtime/app-mastro.json index 3055ef6..2f64261 100644 --- a/packages/docs/src/content/runtime/app-mastro.json +++ b/packages/docs/src/content/runtime/app-mastro.json @@ -2,6 +2,7 @@ "name": "Mastro", "package": "app-mastro", "type": "ssr-app", + "isFocused": false, "timingMeasuredAt": "2026-02-20T12:30:44.006Z", "runner": "ubuntu-latest", "ssrOpsPerSec": 336, diff --git a/packages/docs/src/content/runtime/app-next-js.json b/packages/docs/src/content/runtime/app-next-js.json index cfd96f7..3d6adef 100644 --- a/packages/docs/src/content/runtime/app-next-js.json +++ b/packages/docs/src/content/runtime/app-next-js.json @@ -1,6 +1,7 @@ { "name": "Next.js", "package": "app-next-js", + "isFocused": true, "type": "ssr-app", "timingMeasuredAt": "2026-02-20T12:30:44.006Z", "runner": "ubuntu-latest", diff --git a/packages/docs/src/content/runtime/app-nuxt.json b/packages/docs/src/content/runtime/app-nuxt.json index 7ea6ea2..005ca3b 100644 --- a/packages/docs/src/content/runtime/app-nuxt.json +++ b/packages/docs/src/content/runtime/app-nuxt.json @@ -1,6 +1,7 @@ { "name": "Nuxt", "package": "app-nuxt", + "isFocused": true, "type": "ssr-app", "ssrOpsPerSec": 235, "ssrAvgLatencyMs": 4.263, diff --git a/packages/docs/src/content/runtime/app-react-router.json b/packages/docs/src/content/runtime/app-react-router.json index b0c3a1e..b156f3a 100644 --- a/packages/docs/src/content/runtime/app-react-router.json +++ b/packages/docs/src/content/runtime/app-react-router.json @@ -1,6 +1,7 @@ { "name": "React Router", "package": "app-react-router", + "isFocused": true, "type": "ssr-app", "timingMeasuredAt": "2026-02-20T12:30:44.006Z", "runner": "ubuntu-latest", diff --git a/packages/docs/src/content/runtime/app-solid-start.json b/packages/docs/src/content/runtime/app-solid-start.json index 2484982..737ef21 100644 --- a/packages/docs/src/content/runtime/app-solid-start.json +++ b/packages/docs/src/content/runtime/app-solid-start.json @@ -1,6 +1,7 @@ { "name": "SolidStart", "package": "app-solid-start", + "isFocused": true, "type": "ssr-app", "timingMeasuredAt": "2026-02-20T12:30:44.006Z", "runner": "ubuntu-latest", diff --git a/packages/docs/src/content/runtime/app-sveltekit.json b/packages/docs/src/content/runtime/app-sveltekit.json index b92c1a7..730be8a 100644 --- a/packages/docs/src/content/runtime/app-sveltekit.json +++ b/packages/docs/src/content/runtime/app-sveltekit.json @@ -1,6 +1,7 @@ { "name": "SvelteKit", "package": "app-sveltekit", + "isFocused": true, "type": "ssr-app", "timingMeasuredAt": "2026-02-20T12:30:44.006Z", "runner": "ubuntu-latest", diff --git a/packages/docs/src/content/runtime/app-tanstack-start-react.json b/packages/docs/src/content/runtime/app-tanstack-start-react.json index e6b2be5..177562e 100644 --- a/packages/docs/src/content/runtime/app-tanstack-start-react.json +++ b/packages/docs/src/content/runtime/app-tanstack-start-react.json @@ -1,6 +1,7 @@ { "name": "TanStack Start", "package": "app-tanstack-start-react", + "isFocused": true, "type": "ssr-app", "timingMeasuredAt": "2026-02-20T12:30:44.006Z", "runner": "ubuntu-latest", diff --git a/packages/stats-generator/src/collect-stats.ts b/packages/stats-generator/src/collect-stats.ts index 670c02e..69c75a3 100644 --- a/packages/stats-generator/src/collect-stats.ts +++ b/packages/stats-generator/src/collect-stats.ts @@ -35,6 +35,7 @@ async function processStarter(framework: FrameworkConfig, order: number) { name: displayName, package: pkgDir, type: 'starter-kit', + isFocused: framework.focusedFramework, order, ...dependencyStats, ...ciStats, @@ -57,6 +58,7 @@ async function processApp(framework: FrameworkConfig, order: number) { name: displayName, package: pkgDir, type: 'ssr-app', + isFocused: framework.focusedFramework, order, ...ciStats, } diff --git a/packages/stats-generator/src/types.ts b/packages/stats-generator/src/types.ts index e2a8912..39e18de 100644 --- a/packages/stats-generator/src/types.ts +++ b/packages/stats-generator/src/types.ts @@ -21,6 +21,7 @@ export interface FrameworkConfig { name: string displayName: string frameworkPackage: string + focusedFramework?: boolean starter?: TestConfig app?: TestConfig } @@ -77,6 +78,7 @@ export interface FrameworkStats extends CIStats { ssrSamples?: number ssrBodySizeKb?: number ssrDuplicationFactor?: number + isFocused?: boolean } export interface PackageJson {