Docs Navigation

Deploy

How to deploy the ABS website to GitHub Pages.

The ABS website is a Next.js static site. A push to main triggers the deploy automatically via GitHub Actions. Here's how it's set up and how to maintain it.

Architecture

git push main (website/** changed)
    │
    ▼
.github/workflows/deploy-website.yml
    │
    ├─ Checkout repo
    ├─ npm ci
    ├─ next build → website/out/
    ├─ Upload Pages artifact
    └─ Deploy to GitHub Pages
        │
        ▼
https://fvinciarelli.github.io/abs

Configuration

next.config.mjs

const nextConfig = {
  basePath: '/abs',           // Serves from /abs (project page), not /
  output: 'export',           // Static HTML — no Node server
  images: { unoptimized: true },
  typescript: { ignoreBuildErrors: true },
};

GitHub Pages source

Go to Repo → Settings → Pages → Source: "GitHub Actions". This is set once and never touched again.

Manual trigger

  1. Go to Actions
  2. Click Deploy website to GitHub Pages
  3. Click Run workflow

Local preview

cd website
npm run dev       # http://localhost:3000/abs

# or build and serve static output:
npm run build
npx serve out

Custom domain (future)

  1. Add a CNAME record to your DNS pointing to fvinciarelli.github.io
  2. Add the domain in Repo → Settings → Pages → Custom domain
  3. Remove basePath: '/abs' from next.config.mjs
  4. Push — HTTPS is automatic via Let's Encrypt

Troubleshooting

SymptomFix
Blank page at /absbasePath is wrong. Check next.config.mjs.
404 on subpagesVerify output: 'export' is set — every route generates a real .html file.
Build timeoutCold build takes ~60s. Increase job timeout in the workflow if needed.
Mermaid diagrams blankDiagrams render at build time. Check browser console for errors.