Static sites
HTML, CSS, JS and assets — Orizon serves a static folder directly behind Caddy with automatic HTTPS. No server process, no cold starts.
How static sites are detected
If your source is a folder with an index.html and no server framework, Orizon serves it as a static site. This is the default for plain HTML projects and for the output of static site generators.
Sites with a build step
Many frameworks (Vite, Astro, and others) produce a static dist or build folder. Build it as part of your deploy, then serve the output directory. For frameworks with a server component (like Next.js), Orizon runs them as a server instead — see Supported stacks.
Static routing (multi-page vs SPA)
Orizon maps URLs to files with Caddy try_files. You can pick the mode per project so multi-page exports and client-side routers both work correctly.
multipage (default) — serve a real file first, then a directory index (/main → /main/index.html), then fall back to the root index.html for client routers. Use this for Astro / Next static export / Eleventy and most SSGs.
spa — always fall back to the root index.html when a path is not a file. Use for classic React Router / Vue Router apps with no per-route HTML on disk.
strict — only real files and directory indexes; missing paths return a real 404 (no SPA shell). Useful when you want broken links to fail loudly.
Change the mode with the API or CLI (applies live when the project is deployed — no full rebuild required):
orizon routing getorizon routing set multipagePUT /api/v1/projects/:id/static-routing with body {"mode":"multipage"} (or spa / strict).
Domains & TLS
Your site is live at <project>.apps.orizon.ng immediately, and you can attach your own domain with automatic, auto-renewing TLS — see Domains & SSL.