CodeVetter · Repo Unpack · System map
withastro/astro
The repository is a pnpm workspace whose main product is the published astro package, with companion integrations, adapters, scaffolding, and language tools. The executable CLI loads built modules, while development and production builds orchestrate Vite environments. Server requests use a manifest-driven functional core and browser islands handle selective hydration. Content persistence belongs to build/dev infrastructure, while runtime content access goes through a portable read interface. This inventory is bounded and does not enumerate every package or exported API.
- The root is a private ESM workspace pinned to pnpm@11.27.0 with Node >=22.12.0; its build scripts select Astro, create-astro, @astrojs packages, and benchmark packages through Turbo.
- pnpm-workspace.yaml includes packages, examples, scripts, benchmarks, and temporary test workspaces, and prefers linked workspace packages over registry Astro versions.
- The published astro package is version 7.3.5; its executable is bin/astro.mjs and its public exports include config, app, fetch, Hono, content loaders, assets, middleware, and container APIs.
- bin/astro.mjs checks Node compatibility, normalizes Windows drive-letter casing, then imports dist/cli/index.js and passes process.argv to cli().
- Server request architecture is keyed by SSRManifest with per-request FetchState; App and NodeApp remain compatibility shells and owning modules hold per-manifest memoized state.
- Development creates a Vite server and route list, runs config hooks and syncInternal(), and exposes request handling through Vite middlewares.
- Build output can be static or server-oriented; AstroBuilder rejects server output without an adapter and passes collected page data to viteBuild().
- Vite build orchestration runs prerender, optional SSR, and client builds in that order; client inputs are discovered during earlier builds and sorted before the client build.
- Content storage supports deterministic single-file devalue serialization and content-addressed chunk files committed through a manifest; runtime storage defaults to InMemorySource.
- The repository includes React, Vue, Svelte, Node, Vercel, Cloudflare, Netlify, MDX, RSS, and language-tooling packages; Cloudflare declares static/server support and a Workers-compatible image-service constraint.