Hydrated Askr marketing and documentation site, generated with Vite Plus and the Askr CLI, then deployed to GitHub Pages.
The website consumes published @askrjs/* packages from npm. Local builds and
CI therefore validate the same package boundary used by GitHub Pages.
npm run devstarts the Vite development server.npm run buildbuilds the client and runsaskr ssgintodist/.npm run fmt:checkchecks formatting without changing files.npm testruns the unit and generated-output contract tests after a build.npm run previewservesdist/withvp preview --outDir dist.npm run checkruns formatting, lint, typecheck, tests, and the production build.
src/pages/marketing/_layout.tsxowns the marketing shell and shared Askr branding.src/pages/_routes.tsxowns the complete browser and SSG route registry plus the persistent route-analytics layout, whilesrc/pages/marketing/_routes.tsxregisters the marketing leaves.src/pages/marketing/home.tsxrenders the/page.src/pages/docs/catalog.tsis the typed source of truth for docs routes, metadata, grouped navigation, breadcrumbs, page ordering, search, and SSG.src/pages/docs/also owns the shared content primitives, responsive shell, generated API entrypoint pages, exhaustive Lucide gallery, and lazy search index.src/main.tsxhydrates generated markup and starts the SPA in development.public/assets/askr-logo-64.avifprovides the in-page mark, with PNG favicon and touch-icon variants; the GitHub mark variants come from the official GitHub Brand Toolkit.ssg.config.tsinjects rendered HTML and route-specific metadata into Vite's built document and publishes its hashed assets.
The internal route registry is the only interface shared by the browser and SSG. This package does not expose a public API.
npm run build:clientbuilds the browser entry and stylesheet into.askr/client/with hashed asset names.npm run build:ssgrenders the marketing routes, authored docs catalog, and API reference routes, injects them into the built Vite document, and publishes the result todist/.
The API and CLI snapshots are checked-in documentation data. The unit suite
derives installed package entrypoints, versions, exported signatures, peer
metadata, and CLI help directly from node_modules and fails on drift before
the production build starts. Package versions remain internal contract metadata
and are not rendered on the site. Reference-only packages are kept as
development dependencies; packages used by live browser examples remain
runtime dependencies.
.github/workflows/ci.yml runs format, lint/typecheck, build, and test on pull
requests. Pushes to main and manual dispatches use
.github/workflows/deploy.yml to run the aggregate check, upload dist/, and
deploy it through the github-pages environment.
The repository does not carry a CNAME file. Configure askrjs.com in the
repository's Pages settings (or through the Pages API), wait for DNS and the
certificate to become healthy, then enable HTTPS enforcement.