Weft

One file. Publish fast. Keep content readable.

Read Documentation

Read Specification


Why Weft

Write pages as plain text.

Use tiny tags for style and motion.

No HTML, CSS, or JS required in author files.

Reliable Output

Compilation is deterministic.

Same source always produces the same HTML.

Good for version control and static hosting.

Minimal Surface

One .weft file equals one page.

No imports.

No config files.

No layout DSL.


Start In 60 Seconds

@title My First Weft Page
@desc A complete page from one file
@theme default
@accent cyan

# Hello Weft <center> <glow>

This line is calm <muted>

:::
## Card One <blue>
Cards are the only layout primitive.
:::

[Open Docs](https://weft.aspenini.com/documentation) <button>

Everything You Need

Practical Docs

Step-by-step reference for syntax and rules.

Includes code spans, fenced blocks, tags, cards, and colors.

Open Documentation

Formal Spec

Numbered reference with guarantees, boundaries, and compiler model.

Useful for implementers and tooling.

Open Specification


Language Boundaries

No custom CSS.

No custom JS.

No logic or variables.

No multi-file page composition.

If you need those, use HTML directly.


Documentation

Specification