Skip to content

Getting started

  • Node ≥ 22.13 (.nvmrc), pnpm ≥ 10 (corepack enable or npm i -g pnpm)
  • For PDFs and tests: Playwright Chromium (pnpm exec playwright install chromium)
CommandWhat it does
pnpm devAstro dev server for apps/site (landing, /docs, /reports, /tools, /design) — the public audience
pnpm dev:internalThe same, as the internal site: adds src/content/internal and private bundles, with the internal labelling (D11)
pnpm buildStatic build → apps/site/dist (public audience), then the report exports next to each page: self-contained HTML always, PDF when Playwright Chromium is installed
pnpm build:internalThe internal audience build (CSDR_AUDIENCE=internal); pnpm test:audience then checks its labelling
pnpm previewServe the build
pnpm checkThe gate: astro check + tsc for packages + ESLint (PatternFly import allowlist) + raw-class allowlist + palettes + audience rules (D11)
pnpm testPlaywright + axe accessibility on every surface, report-metadata assertions, and the PDF/HTML export gate
pnpm test:vrVisual regression of the chrome and one page per surface (Linux CI; VR=1 to force locally)
pnpm pdf [--only <slug>]Re-render the report PDFs against an existing apps/site/dist (pnpm build already does this)
pnpm icons find <term>Search the 2,885 PatternFly icons
pnpm pf:example <Component> [section]Print PatternFly React’s shipped example markdown for a component
pnpm deploy / pnpm deploy:internalwrangler deploy by hand (engineers; needs wrangler login). Normally CI deploys both sites on merge to main — see Deploy
apps/site/ the one Astro project — pages, layouts, content, data loaders, public data bundles
packages/theme/ PatternFly tokens (light+dark), base-min, fonts, Starlight bridge, editorial + print layers
packages/chrome/ Masthead, Footer, Wordmark
packages/editorial/ Figure, Table, StatTile, Callout, Ref, KeyMessages, DataDownload, Authors, Icon + remark-crossref
packages/charts/ chart theme (from PF chart tokens), ECharts SSR, Chart / LineChart / BarChart, ChartIsland
design/ COMPONENTS.md (the allowlist explained) + allowlist.json (the allowlist enforced)
templates/ new-report / new-analysis / new-tool scaffolds used by the skills
docs/decisions/ D1–D13, the panel-reviewed decisions this template implements
scripts/ export-html, build-pdf, check-classes, icons, pf-example, serve-dist