Configuration

Veta configuration lives in YAML. The supported file names are checked in this order:

veta.yaml
veta.yml
.veta.yaml
.veta.yml

When you run veta build or veta dev, Veta searches from the current directory upward through parent directories until it finds one of those files. You can also pass an explicit config file:

veta build --config path/to/veta.yaml
veta dev --config path/to/veta.yaml

The project root is the directory that contains the resolved config file.

Minimal Config

build:
  output: dist

If build.output is omitted or blank, Veta uses dist.

Full Common Config

build:
  output: dist
  clean: true

html:
  minify: true

dev:
  host: 127.0.0.1
  port: 3000
  watch:
    - content

tailwindcss:
  stylesheets:
    - styles.css
  minify: true

theme:
  source: "./theme"

build

build contains build workflow settings.

build:
  output: dist
  clean: true

output is the production output directory used by veta build. It must be a relative project path.

clean removes the output directory before writing a new build.

html

html contains generated HTML settings.

html:
  minify: true

html.minify minifies generated .html files only. It does not minify XML, Markdown, JSON, text, JavaScript, CSS, or files copied from public/.

dev

dev configures the local development server.

dev:
  host: 127.0.0.1
  port: 3000
  watch:
    - content

host is the network interface used by veta dev.

port is the local development server port.

watch adds project-relative files or directories to the watcher. Directories are watched recursively. Veta always watches its own project files and directories in addition to these paths.

Use watch for content directories that Veta cannot infer, such as content/, posts/, docs/, or files consumed through files.readFile.

tailwindcss

tailwindcss enables Veta's embedded Tailwind CSS standalone integration.

tailwindcss:
  stylesheets:
    - styles.css
  minify: true

stylesheets lists Tailwind CSS entrypoints relative to public/. With the config above, Veta reads public/styles.css and writes the generated CSS to dist/styles.css.

minify passes Tailwind's minification flag to the standalone CLI.

If tailwindcss.stylesheets is omitted or empty, Tailwind CSS does not run.

theme

theme.source points to a local theme directory or a GitHub theme source.

theme:
  source: "./themes/clean"

Themes can provide templates/, components/, filters/, functions/, data/, and public/. Project files override theme files.

Unknown Fields

Veta rejects unknown config fields. This catches typos early and keeps configuration predictable.