Veta Static Site Generator

Build static sites with no complex tooling

Veta turns project files and APIs into a static output directory by using simple JavaScript page generators, Pongo templates, components, filters, themes, and Tailwind CSS. All in one binary with no frontend toolchain to maintain.

No Node.js, no Tailwind to install, the CLI is all you need.

Everything in one binary

The JavaScript runtime, template engine, Markdown renderer, and Tailwind CSS all ship inside the same binary. Nothing else to install.

  • JavaScript page generators with an explicit API
  • Pongo templates, components, filters, and functions
  • JSON, YAML, TOML, and JavaScript data files

What Veta gives you

A focused set of building blocks that compose into any static site.

  • pages/

    Page Generators

    Flat JavaScript files declare exactly which pages to build and which templates they use. No hidden routes.

  • templates/

    Pongo Templates

    Jinja-style templates with inheritance, includes, macros, filters, and a small, explicit context.

  • data/

    Structured Data

    Global data files in JSON, YAML, TOML, or JavaScript, plus on-demand loading from templates.

  • components/

    Components

    Reusable component templates resolved explicitly with props and slots, without a frontend framework.

  • any source

    Content From Any Source

    Read any project file or fetch any HTTP API (Markdown, JSON, YAML, or any format) and shape it into pages from JavaScript.

  • theme

    Themes And Tailwind CSS

    Compose local or remote themes with your project and style the result with the Tailwind CSS engine built into the binary, nothing to install.

How it works

Explicit, synchronous, and predictable

Veta separates what you write from how it looks. Your project declares pages, writes content, and configures a few settings; Veta does the rest at build time.

  • Page generators return page objects with permalinks and templates
  • Markdown and components are rendered explicitly when you ask for them
  • Data is loaded globally before generation and shared everywhere
  • The output is plain static files you can deploy anywhere

Batteries included

No Node.js runtime, no Tailwind install, no bundler, no configuration drift. Download the CLI, add a theme and build.

Common questions

A few things people ask before getting started.

Veta is a static site generator distributed as a single CLI binary. It uses JavaScript page generators, Pongo templates, structured data, components, filters, Markdown, themes, and embedded Tailwind CSS to produce a static output directory.

No. Veta runs its own embedded JavaScript runtime and ships the Tailwind CSS engine inside the binary. There's no Node.js, no package manager, and no bundler to install - one download is everything your project needs.

No. Tailwind CSS is built into the Veta binary. You point Veta at an input stylesheet and it compiles and minifies your CSS on every build, so there's nothing to install or keep in sync. For a typical project, the CLI is the only requirement. You'd only reach for external tooling if you deliberately go beyond what Veta ships - for example, building a very complex theme with its own custom pipeline.

No. Markdown and component rendering are explicit operations. Page generators call parse.markdown and parse.renderComponents when they need them, which keeps output predictable.

Yes. Veta supports local and remote themes that provide templates, components, filters, functions, data, and public assets - all running from the same binary with no extra dependencies. Project files always override theme files.

Anywhere that serves static files. The build output is a plain directory of HTML, assets, and generated files, so it works with every static hosting provider.

Ready to build?

Install Veta, create a project, and write your first page in minutes.