Context
Dependabot opened #110 to bump astro 5.18.1 → 6.1.8 in apps/docs. CI has been red since 2026-04-21 because the upgrade can't be done as a drive-by — it's a real migration. This issue captures the work so the dependency PR can be closed without losing the intent.
Blockers
From bun.lock:
@astrojs/starlight@0.33.2 peer-deps astro: ^5.1.5 → no Starlight release supports Astro 6 yet. This is the gating blocker.
@astrojs/tailwind@6.0.2 peer-deps astro: ^3 || ^4 || ^5. The package itself is being deprecated upstream in favor of the Vite Tailwind v4 plugin path.
Migration shape (when Starlight ships v6 support)
- Bump
@astrojs/starlight to whatever release first declares astro: ^6.
- Bump
astro itself in apps/docs/package.json.
- Drop
@astrojs/tailwind from dependencies; switch astro.config.mjs to the Vite @tailwindcss/vite plugin (Tailwind v4 path) — confirm @astrojs/starlight-tailwind@3.0.x still works against the new wiring or wait for a Starlight Tailwind release that targets v4.
- Validate:
bun --cwd apps/docs run typecheck && bun --cwd apps/docs run build. Spot-check Starlight nav, search (pagefind), code blocks (astro-expressive-code), and the dark theme.
wrangler pages deploy preview on a branch deploy before landing.
Risk areas
- Tailwind v3 → v4 config migration (
tailwind.config.ts → CSS-first config).
zod jump from v3 to v4 transitively via Astro 6 — content collections that import z from astro:content may shift behavior.
vite ^6 → ^7 inside Astro — any custom Vite plugins in astro.config.mjs (currently none, but verify) need a compatibility check.
Acceptance
Refs
Context
Dependabot opened #110 to bump
astro5.18.1 → 6.1.8inapps/docs. CI has been red since 2026-04-21 because the upgrade can't be done as a drive-by — it's a real migration. This issue captures the work so the dependency PR can be closed without losing the intent.Blockers
From
bun.lock:@astrojs/starlight@0.33.2peer-depsastro: ^5.1.5→ no Starlight release supports Astro 6 yet. This is the gating blocker.@astrojs/tailwind@6.0.2peer-depsastro: ^3 || ^4 || ^5. The package itself is being deprecated upstream in favor of the Vite Tailwind v4 plugin path.Migration shape (when Starlight ships v6 support)
@astrojs/starlightto whatever release first declaresastro: ^6.astroitself inapps/docs/package.json.@astrojs/tailwindfrom dependencies; switchastro.config.mjsto the Vite@tailwindcss/viteplugin (Tailwind v4 path) — confirm@astrojs/starlight-tailwind@3.0.xstill works against the new wiring or wait for a Starlight Tailwind release that targets v4.bun --cwd apps/docs run typecheck && bun --cwd apps/docs run build. Spot-check Starlight nav, search (pagefind), code blocks (astro-expressive-code), and the dark theme.wrangler pages deploy previewon a branch deploy before landing.Risk areas
tailwind.config.ts→ CSS-first config).zodjump from v3 to v4 transitively via Astro 6 — content collections that importzfromastro:contentmay shift behavior.vite ^6 → ^7inside Astro — any custom Vite plugins inastro.config.mjs(currently none, but verify) need a compatibility check.Acceptance
apps/docsbuilds and deploys againstastro@^6.@astrojs/tailwinddependency.Refs
@dependabot ignore this major versionuntil this issue is actionable.