Use casesWeb apps

Static site generation

This site is the case study: build.ecko renders every page to dist/, Cloudflare serves bytes - no Node, no bundler, no runtime in production.

The problem

Marketing and docs sites drift into Next.js or Hugo because "we need a template system". That adds a JavaScript toolchain for pages that are constant for the entire life of a deploy. The build machine needs network access; the CDN serves a process that is not running.

Why Ecko

Generator is an Ecko program
build.ecko imports page modules, renders HTML, writes dist/. Preview with server.ecko uses the same modules - output is byte-identical to what ships.
No production runtime
Cloudflare serves static files. A typo fix is regenerate and deploy, not roll a container. The dogfood is honest: the footer says "built with ecko" because it is.
Docs from Markdown
Hand-written docs live as Markdown; the build discovers and renders them. One toolchain for marketing pages and documentation.

In practice

build.ecko
import std.fs

PAGES = [{ route: "", html: "<h1>Ecko</h1>" }, { route: "/download", html: "<h1>Download</h1>" }]

for page in PAGES {
    fs.mkdir("dist{page.route}")
    fs.write("dist{page.route}/index.html", page.html)
}

Try it on your workload.