The static website for Celeris — landing page, user docs, and the benchmarks dashboard — built with Astro + Bun and deployed to Cloudflare Pages.
Benchmark data is pushed into results/ by
probatorium; the site reads that tree
directly at build time and derives every dashboard asset itself.
bun install
bun run dev # serve against the real results/ tree (empty until data lands)
bun run demo # serve with a synthesized demo dataset (.dev-results, gitignored)http://localhost:4321/— landing/docs— documentation/benchmarks— dashboard
bun run build # build:data → astro build → pagefind index → dist/
bun run preview # serve the built dist/
bun test # data-layer tests
bun run validate # validate the results/ tree without emitting (publish gate)scripts/build-data.tswalksresults/and emits compact assets:src/data/generated/{manifest,competitors,scenarios}.jsonand per-version payloads underpublic/data/v/<version>/<arch>.json. Runs before every build.src/lib/results/is the self-contained, typed data layer (walk, validate, aggregate, taxonomy).bun testcovers it.src/dashboard/is the Preact island that renders the dashboard from those assets (uPlot for time-series, hand-built SVG for bars/heatmap).src/content/docs/holds the markdown docs (Astro content collection)..github/workflows/sync-benchmarks.ymlpings a Cloudflare Pages deploy hook when probatorium publishes a run.
- Build command:
bun run build - Output directory:
dist - Set
SITE_URL(defaults tohttps://goceleris.dev) and theCF_PAGES_DEPLOY_HOOK_URLrepo secret for publish-triggered rebuilds.