Deployment

A build is plain HTML, JavaScript and assets. There is no server to run, no adapter to install, and no rewrite rules to configure.

The build

terminal
npm run build     # or: azox compile

Everything lands in .azox/build/. Point any static host at that directory.

SettingValue
Build commandnpm run build
Output directory.azox/build
Node version18 or newer
Install commandnpm install

Vercel

Import the repository, then set the output directory. Azox is not a framework Vercel detects, so choose Other as the preset.

vercel.json
{
  "buildCommand": "npm run build",
  "outputDirectory": ".azox/build"
}

Netlify

netlify.toml
[build]
  command = "npm run build"
  publish = ".azox/build"

Cloudflare Pages

Set the build command to npm run build and the output directory to .azox/build. No framework preset is needed.

GitHub Pages

.github/workflows/deploy.yml
name: Deploy

on:
  push:
    branches: [main]

permissions:
  contents: read
  pages: write
  id-token: write

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: actions/setup-node@v5
        with:
          node-version: '22'
      - run: npm ci
      - run: npm run build
      - uses: actions/upload-pages-artifact@v3
        with:
          path: .azox/build

  deploy:
    needs: build
    runs-on: ubuntu-latest
    environment:
      name: github-pages
    steps:
      - uses: actions/deploy-pages@v4

On GitHub Pages a project site is served from a subpath (/repo-name/), which breaks the absolute asset paths Azox emits. Use a custom domain, or a user site (username.github.io), to serve from the root.

Add an empty public/.nojekyll. Without it GitHub runs Jekyll over the output, which drops any file or folder beginning with an underscore. For a custom domain, put the hostname in public/CNAME — both are copied to the build root like any other asset.

Any static host

The output has no special requirements. Upload it to S3, nginx, or anything else that serves files. Clean URLs work because every route is a directory with an index.html, which every static server already handles.

local preview
cd .azox/build
python3 -m http.server 4321

Checklist

  • Commit .gitignore with .azox/ in it — the build is generated
  • Run azox doctor before deploying to catch broken references
  • Use absolute paths (/style.css) for assets

Next