88
stars
288
commits
Astro
primary language
Sep 13, 2026
updated
A redesigned home for Fastify — a fast and low overhead web framework for Node.js. Built with Astro, Tailwind CSS v4, MDX content collections, and Pagefind for static full-text search.
The design language is a dark-first "telemetry" aesthetic built around the one thing Fastify is known for: speed. The signature element is a live requests-per-second velocity gauge in the hero.
@tailwindcss/vite| Command | Action |
|---|---|
npm install | Install dependencies |
npm run dev | Start the dev server at localhost:4321 |
npm run build:website | Build to build/, optimize production images, and generate the Pagefind search index |
npm run preview | Preview the production build locally |
npm run lint | Lint with Biome |
npm run format | Format with Biome (format to verify) |
npm run check | Type-check via astro check (run by CI on every PR) |
Search only works against a production build (
npm run build:website), because the Pagefind index is generated from the built HTML. Indevthe search modal shows a graceful fallback message.Production builds optimize imported SVG components with Astro and all supported bundled and public image assets with Vite. Source image files are not modified.
Icons come from Lucide (
@lucide/astro). The GitHub star count is fetched client-side on page load so it always matches GitHub. Internal links respect Astro'sbasevia thewithBasehelper in src/lib/href.ts.
src/
components/ UI: Nav, Footer, Search, VelocityMeter, CodeTabs, BenchBars…
content/
docs/ Documentation pages (md/mdx) — grouped by `section`
data/site.ts Central data: nav, features, sponsors, team, benchmarks, plugins
layouts/ BaseLayout (chrome, theme, fonts)
pages/ Routes: /, /ecosystem, /benchmarks, /organizations, /docs
styles/ global.css — design tokens + prose styling
This redesign preserves every user-facing capability of the current Docusaurus site:
The documentation is not stored in this repository — it lives in the
fastify/fastify repo and is fetched at
build time by scripts/fetch-docs.mjs, which runs
as part of npm run build:website.
The script:
git ls-remote (no auth, no rate limit).fastify/website build:
5.x);DOCS_MIN_MAJOR (default 3) → only its
latest release (e.g. the last 4.x and the last 3.x).docs/ folder..md links and resource paths to site URLs, and injects
title / section / order / version frontmatter.src/content/docs/<version>/…, copies image
resources into public/docs/<version>/…, duplicates the newest release as
latest, and writes src/data/versions.json.The result is browsable, versioned docs (latest, v5.10.x … v5.0.x,
v4.29.x, v3.29.x) with a version switcher, exactly like the current website.
Fetched content is git-ignored so the source of truth stays in fastify/fastify.
Version-scoped search: the Pagefind index tags every doc page with its
version. When you search from a docs page, results are filtered to the selected
version only (searching from a v5.10.x page returns v5.10.x results, never
v5.9.x or v4.x); elsewhere search defaults to latest.
A GitHub Actions workflow (.github/workflows/deploy-website.yml)
builds and publishes the site to GitHub Pages on every push to main (and
on manual dispatch). It installs dependencies with npm, fetches the docs, runs
astro build + Pagefind, and deploys the build/ output.
To enable it: in the repository settings, set Settings → Pages → Build and deployment → Source to GitHub Actions.
The site is configured for a root deployment (as used by
fastify.devvia a custom domain). If you deploy to a project subpath (https://<user>.github.io/<repo>/), set Astro'sbaseand add a matching custom domain /CNAMEaccordingly.
(top 30 of 62)
Astro
59.2%
JavaScript
27.7%
TypeScript
8.3%
CSS
4.8%
88
stars
288
commits
Astro
primary language
Sep 13, 2026
updated
A redesigned home for Fastify — a fast and low overhead web framework for Node.js. Built with Astro, Tailwind CSS v4, MDX content collections, and Pagefind for static full-text search.
The design language is a dark-first "telemetry" aesthetic built around the one thing Fastify is known for: speed. The signature element is a live requests-per-second velocity gauge in the hero.
@tailwindcss/vite| Command | Action |
|---|---|
npm install | Install dependencies |
npm run dev | Start the dev server at localhost:4321 |
npm run build:website | Build to build/, optimize production images, and generate the Pagefind search index |
npm run preview | Preview the production build locally |
npm run lint | Lint with Biome |
npm run format | Format with Biome (format to verify) |
npm run check | Type-check via astro check (run by CI on every PR) |
Search only works against a production build (
npm run build:website), because the Pagefind index is generated from the built HTML. Indevthe search modal shows a graceful fallback message.Production builds optimize imported SVG components with Astro and all supported bundled and public image assets with Vite. Source image files are not modified.
Icons come from Lucide (
@lucide/astro). The GitHub star count is fetched client-side on page load so it always matches GitHub. Internal links respect Astro'sbasevia thewithBasehelper in src/lib/href.ts.
src/
components/ UI: Nav, Footer, Search, VelocityMeter, CodeTabs, BenchBars…
content/
docs/ Documentation pages (md/mdx) — grouped by `section`
data/site.ts Central data: nav, features, sponsors, team, benchmarks, plugins
layouts/ BaseLayout (chrome, theme, fonts)
pages/ Routes: /, /ecosystem, /benchmarks, /organizations, /docs
styles/ global.css — design tokens + prose styling
This redesign preserves every user-facing capability of the current Docusaurus site:
The documentation is not stored in this repository — it lives in the
fastify/fastify repo and is fetched at
build time by scripts/fetch-docs.mjs, which runs
as part of npm run build:website.
The script:
git ls-remote (no auth, no rate limit).fastify/website build:
5.x);DOCS_MIN_MAJOR (default 3) → only its
latest release (e.g. the last 4.x and the last 3.x).docs/ folder..md links and resource paths to site URLs, and injects
title / section / order / version frontmatter.src/content/docs/<version>/…, copies image
resources into public/docs/<version>/…, duplicates the newest release as
latest, and writes src/data/versions.json.The result is browsable, versioned docs (latest, v5.10.x … v5.0.x,
v4.29.x, v3.29.x) with a version switcher, exactly like the current website.
Fetched content is git-ignored so the source of truth stays in fastify/fastify.
Version-scoped search: the Pagefind index tags every doc page with its
version. When you search from a docs page, results are filtered to the selected
version only (searching from a v5.10.x page returns v5.10.x results, never
v5.9.x or v4.x); elsewhere search defaults to latest.
A GitHub Actions workflow (.github/workflows/deploy-website.yml)
builds and publishes the site to GitHub Pages on every push to main (and
on manual dispatch). It installs dependencies with npm, fetches the docs, runs
astro build + Pagefind, and deploys the build/ output.
To enable it: in the repository settings, set Settings → Pages → Build and deployment → Source to GitHub Actions.
The site is configured for a root deployment (as used by
fastify.devvia a custom domain). If you deploy to a project subpath (https://<user>.github.io/<repo>/), set Astro'sbaseand add a matching custom domain /CNAMEaccordingly.
(top 30 of 62)
Astro
59.2%
JavaScript
27.7%
TypeScript
8.3%
CSS
4.8%