# Vascula > Vascula is a template language for HTML, embedded in Go: output is always escaped, templates read only the data the application allows, and rendering is bounded. Version v0.1.5. Start with [Vascula for agents](https://vascula.dev/agents.md): the whole language, rules and common mistakes on one page. [llms-full.txt](https://vascula.dev/llms-full.txt) has every page. ## Start - [Vascula](https://vascula.dev/index.md): A template language for HTML that is safe by default, explicit about data, and fast. Embedded in Go. - [Getting started](https://vascula.dev/getting-started.md): Add Vascula to a Go program, compile a template, render it with data and handle errors. - [Tutorial](https://vascula.dev/tutorial.md): Build a product list step by step and learn the language along the way. ## Language - [Syntax](https://vascula.dev/syntax.md): The three kinds of markup in a template, whitespace control and comments. - [Values and truthiness](https://vascula.dev/values.md): Strings, numbers, booleans, nil, collections, what counts as true, and how values compare. - [Variables, data and scope](https://vascula.dev/variables.md): Where a template's data comes from, reading fields, assign and capture, and the scope rules. - [Expressions and operators](https://vascula.dev/expressions.md): Filters, comparisons, and/or, ranges, and the order in which they apply. - [Conditionals](https://vascula.dev/conditionals.md): if, elsif, else, unless and case/when. - [Loops](https://vascula.dev/loops.md): for loops, limit/offset/reversed, ranges, forloop, break, continue, empty collections and cycle. - [Composition](https://vascula.dev/composition.md): Render child templates with render, pass arguments, and how a child's scope and data work. - [Output and escaping](https://vascula.dev/output.md): What Vascula escapes, where JSON is safe, trusted HTML, and what remains the template author's job. - [Filters](https://vascula.dev/filters.md): Every built-in filter, with its arguments, exact behavior and edge cases. ## Go - [Go API](https://vascula.dev/go-api.md): Reference for package vascula.dev/vascula — every exported type, function, field and method. - [Embedding](https://vascula.dev/embedding.md): How to design the data a template sees, cache compiled templates, compose children and report errors in a Go application. - [Extending Vascula](https://vascula.dev/extending.md): Add application filters, form actions, host tags and globals, and hand templates trusted HTML. - [Inspection](https://vascula.dev/inspection.md): Check a template before it renders — the names it reads, the children it renders and the features it uses. - [Safety and limits](https://vascula.dev/safety.md): What Vascula protects against, the resource limits, and what remains the application's responsibility. - [Errors](https://vascula.dev/errors.md): Every error message, what causes it and how to fix it. ## Guides - [Coming from Liquid](https://vascula.dev/from-liquid.md): Every difference between Vascula and Liquid, for template authors and for people porting templates. - [Recipes](https://vascula.dev/recipes.md): Short, tested solutions to common template tasks. - [Vascula for agents](https://vascula.dev/agents.md): A compact, complete brief for AI agents and tools that read or write Vascula templates. - [Performance](https://vascula.dev/performance.md): Benchmarks against Liquid, and how to keep templates fast. ## Reference - [Grammar](https://vascula.dev/grammar.md): The formal grammar of Vascula templates. - [Versions and stability](https://vascula.dev/stability.md): How Vascula is versioned, what will not change, and how to upgrade. - [Changelog](https://vascula.dev/changelog.md): Every change in every release, and what to check when you upgrade. - [About](https://vascula.dev/about.md): Licence, security reports, contact and credits.