Skip to content

Migrate the docs site from Quarto to Astro Starlight - #112

Merged
tgerke merged 2 commits into
mainfrom
feat/astro-starlight-site
Jul 23, 2026
Merged

Migrate the docs site from Quarto to Astro Starlight#112
tgerke merged 2 commits into
mainfrom
feat/astro-starlight-site

Conversation

@tgerke

@tgerke tgerke commented Jul 23, 2026

Copy link
Copy Markdown
Owner

Why

The Quarto site had become a plain static site generator: 23 markdown pages, no executed code, stock cosmo theme. The landing page read as academic project docs, and for an EDC the front page carries much of the credibility argument. Starlight matches the TypeScript monorepo, ships search, dark mode, and sidebar navigation, and lets the landing page look like a product.

What changed

  • site/ is now an Astro Starlight project and a pnpm workspace member. All 23 pages converted from .qmd with slugs preserved; Quarto callouts became Starlight asides, screenshots moved to site/src/assets/screenshots/ so Astro optimizes them, and the custom heading anchors survive via remark-heading-id.
  • New landing page: hero, workbench screenshot, feature grid, role cards, alpha status note. Copy is carried over from the old index, not rewritten, with one added card on the operations story.
  • Design tokens follow the app chrome (zinc palette, blue accent), with full light and dark themes.
  • starlight-links-validator runs at build time and fails the build on broken internal links. Pagefind search and a sitemap come with Starlight.
  • Old .html URLs get meta-refresh stubs in public/ (e.g. /edc-core/tour.html redirects to /edc-core/tour/).
  • docs.yml builds with pnpm instead of Quarto; deploy is gated to main, so a branch workflow_dispatch validates the build without publishing.
  • scripts/screenshots.mjs default --out follows the image move. CONTRIBUTING.md and CLAUDE.md path references updated.

Verification

  • pnpm --filter site build is green with the links validator clean (25 pages).
  • Playwright walkthrough of the built site: landing in light, dark, and mobile; guide and installation pages in both themes; Pagefind search returns results ("audit trail" finds 5 pages).
  • Redirect stubs serve correctly from the preview server.
  • pnpm lint and pnpm typecheck pass with site in the workspace.
  • Build-only workflow_dispatch of docs.yml on this branch: run 30026686153, success.

To preview locally: pnpm install && pnpm --filter site dev, then open http://localhost:4321/edc-core/.

tgerke added 2 commits July 23, 2026 09:48
The site was using Quarto as a plain static site generator: 23 pages of
pure markdown, no executable chunks, stock cosmo theme. This replaces it
with an Astro Starlight project in the same site/ directory (now a pnpm
workspace member), with a product-style landing page and a zinc design
system matching the app chrome, in light and dark.

- Content converted qmd -> md/mdx with slugs preserved; callouts become
  Starlight asides, screenshots move to src/assets for optimization,
  custom heading anchors kept via remark-heading-id
- starlight-links-validator fails the build on broken internal links;
  Pagefind search and a sitemap come with Starlight
- Old .html URLs redirect via meta-refresh stubs in public/
- docs.yml builds with pnpm instead of Quarto; workflow_dispatch from a
  branch builds without deploying
- scripts/screenshots.mjs default --out follows the images move
Starlight's content spacing rule adds margin-top to every grid child
after the first, so the first card in each row sat 1rem higher than its
neighbors.
@tgerke
tgerke merged commit 7c29978 into main Jul 23, 2026
1 check passed
@tgerke
tgerke deleted the feat/astro-starlight-site branch July 23, 2026 16:55
tgerke added a commit that referenced this pull request Jul 23, 2026
Migrate the docs site from Quarto to Astro Starlight
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.

1 participant