Stacks / Backend

Easy

Hugo / Zola + Caddy

Static files you build and serve. Hugo is Apache-2.0; Zola is EUPL-1.2; Caddy is Apache-2.0 — GitHub Pages, Cloudflare Pages, and Carrd without the hosted pages seat.

The problem

GitHub Pages and Cloudflare Pages are hosted static-site runtimes next to a git host or a CDN. Carrd is a visual one-pager — this stack is files you build, not Carrd's editor. You wanted a generator and a file server you run. Hugo is Apache-2.0 (gohugoio/hugo; last push 24 Oct 2026). Zola is EUPL-1.2 (getzola/zola; last push 19 Oct 2026). Caddy is Apache-2.0 and already in the catalog. This is not GitHub Actions minutes, Cloudflare Workers (/replace/cloudflare-workers), or a CMS. Ghost stays a publication — /replace/medium. Coolify is a PaaS — /replace/heroku. Forgejo is the git host — /replace/github. A link-in-bio page stays on /replace/linktree. A visual builder stays on /replace/webflow.

Replaces

GitHub Pages / Cloudflare Pages / Carrd

Replace GitHub Pages Replace Cloudflare Pages Replace Carrd See all best open-source static site hosts

Estimated SaaS saved

$1,200

per year, small team, before lock-in

Start on Railway

Ghost if this is a CMS publication, not static files

Sponsor this stack Tip jar

Placeholder: build Hugo or Zola in CI, serve public/ with Caddy (or any file server) plus a volume if you copy the output onto the box. No one-click template in this repo yet — Start on Railway. A CMS stays on /stacks/ghost-cms. A git host stays on /stacks/forgejo-git.

The stack

Cost table

You stop payingTypical / yearSelf-host instead
GitHub Pages / Cloudflare Pages (small site)$1,200Hugo or Zola + Caddy

Agent setup prompt

Replace GitHub Pages or Cloudflare Pages with Hugo (preferred) or Zola, served by Caddy.

- Build the site in CI or on the box. Serve the output directory. Persist nothing unless you copy artifacts onto a volume. Do not claim Workers, Actions minutes, or a CMS.
- Ghost if the job is a publication — /stacks/ghost-cms. Forgejo if the pain is the git host — /stacks/forgejo-git.
- Write AGENT_PROMPT.md.

Also as markdown: /stacks/hugo-static.md

FAQ

Hugo or Zola?
Hugo if you want the common Apache generator (the published GitHub Pages path). Zola if you want that Rust binary — /compare/hugo-vs-zola.
Is this Netlify?
Netlify-shaped app hosting stays on /replace/netlify. This page is static files.
Is this Carrd?
Carrd is a visual one-pager. This page is Hugo or Zola files — /replace/carrd. A bio page stays on /replace/linktree. A visual builder stays on /replace/webflow.
Are these free?
Hugo and Caddy are Apache-2.0. Zola is EUPL-1.2. You pay hosting. Template users never pay c17.