Deployment
A sitelo build is plain static files: sitelo build writes HTML, CSS, and JS to dist/. Any static host works — the configs below only assume npm run build → dist/.
Clean URLs are directories with index.html (/about/index.html → /about), so pretty URLs work out of the box with no redirect rules. A 404.html is emitted automatically — the convention Netlify, Cloudflare Pages, and GitHub Pages all understand.
Ready-to-copy versions of all of these ship in the basic example (examples/basic in the repo).
Netlify
[build]
command = "npm run build"
publish = "dist"Vercel
{
"$schema": "https://openapi.vercel.sh/vercel.json",
"framework": null,
"buildCommand": "npm run build",
"outputDirectory": "dist",
"installCommand": "npm install"
}Cloudflare Pages
Dashboard builds: set build command npm run build and output directory dist. Or deploy from the CLI with npx wrangler pages deploy dist.
# Cloudflare Pages
name = "my-site"
compatibility_date = "2025-01-01"
pages_build_output_dir = "dist"AWS Amplify
# AWS Amplify Hosting
version: 1
frontend:
phases:
preBuild:
commands:
- npm install
build:
commands:
- npm run build
artifacts:
baseDirectory: dist
files:
- '**/*'
cache:
paths:
- node_modules/**/*For plain S3 + CloudFront: npm run build, then sync dist/ to the bucket.
GitHub Pages
# GitHub Pages
name: Deploy
on:
push:
branches: [main]
permissions:
contents: read
pages: write
id-token: write
jobs:
deploy:
runs-on: ubuntu-latest
environment:
name: github-pages
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci && npm run build
- uses: actions/upload-pages-artifact@v3
with:
path: dist
- uses: actions/deploy-pages@v4Deploying under a subpath (user.github.io/repo)? Build with --base /repo/.
Before you ship
- Set
siteinsitelo.config.jssositemap.xmlis generated — see Configuration - Add a
src/404.ht.jsfor a branded not-found page (a clean default is emitted otherwise) sitelo previewserves the production build locally for a final check