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
npm run build # or: azox compile
Everything lands in .azox/build/. Point any static host at that directory.
| Setting | Value |
|---|---|
| Build command | npm run build |
| Output directory | .azox/build |
| Node version | 18 or newer |
| Install command | npm install |
Vercel
Import the repository, then set the output directory. Azox is not a framework Vercel detects, so choose Other as the preset.
{
"buildCommand": "npm run build",
"outputDirectory": ".azox/build"
}Netlify
[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
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@v4On 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.
cd .azox/build python3 -m http.server 4321
Checklist
- Commit
.gitignorewith.azox/in it — the build is generated - Run
azox doctorbefore deploying to catch broken references - Use absolute paths (
/style.css) for assets
Next
- Limitations — what Azox deliberately does not do