The source code for astro.build, built with Astro.
The themes catalog is based the theme.json file, updated nightly by the Nightly GitHub Action.
The nightly job collects individual JSON files for each theme, pulls down a bit of information from GitHub for each theme, and compiles them into the main themes.json
file used to actually render the themes catalog.
zod
is used for data validation - any themes with invalid data should hit build errors during astro dev
and astro build
.
When adding a new theme, it's important to run pnpm update:themes
locally to rebuild the themes.json
file locally. Commit this file as part of any PR that adds a new theme to make sure it's visible in the PR preview 🚀
The showcase doesn't depend on any data from GitHub or NPM. When adding a new showcase just include the image in src/data/showcase/images and add the JSON file.
Similar to the themes catalog, the integrations catalog also depends on data from GitHub and NPM. The same nightly GitHub Action rebuilds the integration catalog, and zod
is also used here so invalid data should be caught during dev
and build
.