Documentation
New here? Start with Getting started, then read The Node tree and Ctx & URLs — between them they cover everything needed to generate a site. The Quick reference at the end of this list is the whole API on one page.
Getting started
Install astwerk, write a tree, generate a site.
Comparison
How astwerk differs from Hugo, Zola, Eleventy and Astro — and when one of those is the better choice.
The Node tree
Node, Build, BuildOptions — the shape of the tree and how it's written.
Ctx & URLs
What the walker tells a page — paths, locale, base — and how to build URLs from it.
Dev server
Watch, rebuild, reload — the loop you leave running while you work.
Content & collections
Markdown with TOML front matter, and the list-plus-detail pattern.
Locales & i18n
Locale subtrees are derived from the base tree, not written twice.
x — compiled reactive markup
Markers that generate both the HTML and the JavaScript for a page at build time — no WASM, no framework.
x — structure & scripts
Conditional and keyed subtrees, effects, and the JavaScript escape hatch.
Scripts & WebAssembly
Compiling Go to wasm as part of the build, with no JS toolchain.
wasmwrap
syscall/js made to feel like Go: DOM, style, events, fetch.
wasmwrap — canvas
Typed 2D drawing — Canvas, Ctx2D, animation loops.
reactive — state
Signals, effects, computed values and ownership — the state model behind the bindings.
reactive — DOM bindings
Fine-grained bindings: text, attributes, classes, forms, conditional and keyed subtrees.
reactive — routing & async
Client-side routing and loading async data into signals.
reactive — templ in the browser
Rendering and hydrating templ components client-side.
Starter templates
Seventeen copyable .templ files. Copied, never imported.
Testing
Unit-test reactive and wasmwrap bindings with jsdom — no browser, no headless driver.
How it works
The walker, locale derivation, and dependency tracking — the three mechanisms, in full.
Quick reference
The whole API on one page — signatures and copyable snippets, man-page style.