Beacon

Deployment

Ship your Beacon site as static files to any host.

Beacon builds to plain static HTML, CSS, and JS. Any static host works — there’s no server to run.

Build output

npm run build

The result lands in dist/. Point any static host at that folder.

Set your site URL

Before deploying, set the canonical URL in src/config/site.ts. It’s used for the sitemap, RSS feed, canonical tags, and Open Graph links:

// src/config/site.ts
export const SITE = {
  url: "https://docs.yourcompany.com",
  // ...
};

Netlify

Connect the repo and use:

  • Build command: npm run build
  • Publish directory: dist

Vercel

Import the project; Vercel detects Astro automatically. If prompted:

  • Build command: npm run build
  • Output directory: dist

Cloudflare Pages

  • Build command: npm run build
  • Build output directory: dist

GitHub Pages

Build in CI and publish dist/ to the gh-pages branch:

- run: npm ci && npm run build
- uses: actions/upload-pages-artifact@v3
  with:
    path: dist

If you serve from a sub-path (e.g. username.github.io/repo), set base in astro.config.mjs accordingly.

Beacon’s search uses a static JSON index generated at build time, so it works on any host with zero extra steps. If you later want full-text search across page bodies, you can layer Pagefind on top — but it’s entirely optional, and the default build never depends on it.

That’s the whole pipeline: npm run build, upload dist/, done.