Skip to content

feat(devtime): add dev server startup time metric - #434

Merged
AlexanderKaran merged 2 commits into
e18e:mainfrom
dreyfus92:feat/server-startup-time
Sep 5, 2026
Merged

AlexanderKaran merged 2 commits into
e18e:mainfrom
dreyfus92:feat/server-startup-time

Conversation

@dreyfus92

@dreyfus92 dreyfus92 commented Aug 29, 2026

Copy link
Copy Markdown
Member

adds a dev server startup benchmark for every starter. It copies the tracked files into a temp dir, installs with a frozen lockfile outside the timedregion, runs pnpm dev, and times until the first GET / returns 200. this considers 5 runs as requested.

starters aren't touched. ports live in frameworks.json as devServerPort.

things I hit while toying with this:

  • astro spawns its dev server detached when it thinks an ai agent is running it, so the kill walks the whole process tree and the server gets a clean env instead of inheriting the terminal's.
  • mastro only serves dev routes when the Host header says localhost, which fetch() won't let you set, so the readiness probe uses node:http.
  • vite listens on one loopback family depending on what localhost resolves to, so the probe races 127.0.0.1 and ::1.

tables will be populated after this lands and the ci runs 😄

closes: #206

@43081j 43081j left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seems good to me but lets wait for @AlexanderKaran to review too

@AlexanderKaran

Copy link
Copy Markdown
Collaborator

Sorry @dreyfus92 for the delay. Was doing schema thinking and final got to a place which I am happy with and this will not effect it

Resolve conflicts from the build output size removal (e18e#440): keep the
devServerStartTime field next to the build stats in types.ts and
content.config.ts, drop buildOutputSize.

Satisfy the new Knip config (e18e#445): LOOPBACK_ADDRESSES and DevServerExit
are only used inside dev-server.ts, so they are no longer exported, and
the `pnpm dev` spawn is ignored as a binary the same way `pnpm build` is.
@AlexanderKaran
AlexanderKaran merged commit cbbfd30 into e18e:main Sep 5, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Development server startup time

3 participants