Templates
Project templates are the starting point for every create-vlang-app project. Each template is a complete, production-ready v.mod skeleton for a specific V stack.
What is a template?
A template provides the initial directory structure, v.mod, configuration files, and tooling for a new project. When you run create-vlang-app, you pick a template and optionally layer extensions on top to add Docker, CI, database overlays, or fmt/vet hooks.
create-vlang-app my-app --template web-serverWave-1 templates include web-server, cli-app, library-starter, and systems-app. Domain starters vsl-starter (scientific), vtl-starter (ML/tensors), and rxv-starter (reactive) ship with real VPM dependencies. Compose vtl+vsl via the vtl-vsl-bridge addon rather than a combined base template.
Available templates
Templates are maintained in cva-templates. There are currently 3 templates in the catalog (fallback data shown when the remote JSON is unavailable).
type: web-server
View templatetype: cli-app
View templatetype: library
View templateUsing templates
Interactive mode
create-vlang-app my-app --interactiveNon-interactive mode
create-vlang-app my-api --template web-server --addons v-docker github-setup --no-interactiveList all templates
create-vlang-app --list-templatesTemplate structure
Every template lives under templates/ in the cva-templates repository:
templates/
└── web-server/
├── docs/ # AUTHORING + structure notes
├── health/ # Top-level feature module example
├── v.mod # Module metadata and dependencies
├── README.md
└── AGENTS.md # AI assistant contract