Marketing site and documentation hub for Bivvy CLI.
bivvy-site/
├── public/ # Static assets (served at site root)
│ ├── index.html # Landing page
│ ├── bivvy.css # Landing page styles
│ ├── bivvy.js # Landing page scripts
│ └── assets/
│ └── fonts/ # Custom fonts (Quaker, icon fonts)
├── src/
│ ├── content/docs/ # Docs synced from main repo at build time
│ ├── assets/ # Site assets (logo)
│ └── styles/ # Starlight theme customizations
│ ├── custom.css
│ └── docs.css
├── scripts/
│ └── sync-docs.cjs # Fetches docs from bivvy-dev/bivvy
├── astro.config.mjs
└── package.json
- Docs live in
bivvy-dev/bivvy/docs/(the main CLI repo) - When docs change, a workflow triggers a Cloudflare Pages rebuild
- During build, the
sync-docsscript fetches docs from the main repo - Astro/Starlight renders them as the documentation site
# Install dependencies
npm install
# Set up environment (for syncing from private repo)
cp .env.example .env
# Edit .env and add your GITHUB_TOKEN
# Sync docs and start dev server
npm run sync-docs
npm run devThe dev server runs at http://localhost:4321.
The site is deployed on Cloudflare Pages at bivvy.dev.
Build settings:
- Build command:
npm run build - Build output directory:
dist - Node version:
20
The landing page includes a search modal that uses Pagefind for static docs search.
To build the search index locally:
npm run build
npx pagefind --site distFSL 1.1