Build And Output
Use veta build to create a production static site:
veta build
Veta discovers the config file, derives the project root, loads data, and runs page generators. Generators explicitly parse Markdown or resolve components when needed. Veta then passes templated content unchanged to its selected template, keeps template-less content as raw output, writes generated files, copies public assets, and optionally runs Tailwind CSS.
Output Directory
Configure the output directory in veta.yaml:
build:
output: dist
The path must be relative to the project.
Clean Builds
build:
clean: true
When enabled, Veta removes the output directory before writing new files. This avoids stale files from previous builds.
Generated Files
Page permalinks determine generated file paths:
/ -> dist/index.html
/about/ -> dist/about/index.html
/feed.xml -> dist/feed.xml
/llms.txt -> dist/llms.txt
Veta validates output paths and rejects duplicate output files.
Public Assets
Files under public/ are copied to the output root after generated files are prepared:
public/robots.txt -> dist/robots.txt
public/logo.svg -> dist/logo.svg
If a generated file and a public file claim the same output path, Veta fails the build.
HTML Minification
html:
minify: true
This minifies generated files with a .html extension. It does not minify:
.xml.md.json.txt.js.css- copied files from
public/
Tailwind CSS
When configured, Tailwind CSS runs after Veta writes the generated site and public files:
tailwindcss:
stylesheets:
- styles.css
minify: true
This allows Tailwind to scan the final generated output and include classes used by templates, raw or explicitly parsed page content, and components explicitly resolved with parse.renderComponents(text).
Explicit Config File
Build with an explicit config:
veta build --config ./config/veta.yaml
The project root becomes the directory containing that config file.