Requirements
- Node.js 22.12 or newer
- npm (pnpm and bun work too — the commands below use npm)
Set up
Unzip the theme (or clone your copy of the repository), then from inside the folder:
npm installnpm run devOpen http://localhost:4321. Edits to content, config and styles hot-reload.
Scripts
| Script | Purpose |
|---|---|
npm run dev |
Development server with hot reload |
npm run build |
Production build → dist/ |
npm run preview |
Preview the production build |
npm run check |
Type-check (astro check) |
npm run lint |
ESLint |
npm run format |
Prettier |
Deploy
The build is fully static — no server, no environment variables. Deploy dist/ anywhere.
GitHub Pages: a workflow is included at .github/workflows/deploy.yml. Set Settings → Pages → Source to GitHub Actions and push to main. The workflow detects the repository name and passes it as the base path, so project sites (https://<user>.github.io/<repo>/) work without any changes — links, wallpapers, fonts and Markdown images included. User sites and custom domains get /.
Netlify / Vercel / Cloudflare Pages: build command npm run build, output directory dist. A public/_headers file with sensible caching and security headers is included; Netlify and Cloudflare Pages pick it up automatically.
Optional: the merged-PR counter
The homepage “open source” section can show a live count of your merged upstream pull requests. Set openSource.githubUser in site.ts; the count is fetched once per build from the GitHub search API. Set a GITHUB_TOKEN secret in CI to avoid rate limits (the included workflow passes the default token automatically). If the request fails, the configured mergedCount is shown instead.