Open sourceWraft is AGPLv3 and self-hostable — read the source on GitHub

Template library

Templates that arrive with their layout, fonts and flow attached

A Wraft template is not a document — it is a bundle carrying the template source, the page layout, the fonts it renders with, the fields a user fills in, and the approval flow it moves through. Download one, import it, and edit it as your own.

30 bundles · AGPLv3

30 templates · 30 available to download now

What is in a bundle

Five parts and a manifest that ties them together

Worth understanding before you download one, because it is also everything you need to know to build your own.

data_template

The document itself, as a Prosemirror doc with typed placeholders, plus the title template that names each instance — "Experience Letter - {{employee_name}}".

layout

Page geometry and the engine that renders it: A4, margins, and a background PDF the content is set onto. Every bundle renders through pandoc to Typst.

theme

Fonts and colours, shipped as files inside the bundle rather than referenced. A template that renders identically on someone else's machine has to carry its own fonts.

variant

The typed fields a user fills in, each with a name, type and whether it is required — and a prefix, so instances get readable ids like CTR-0001.

flow

The approval states this document moves through once created. Named in the manifest so the template arrives with its process attached.

wraft.json

The manifest tying the five together. It is the whole contract between a bundle and the platform — readable, diffable, and yours to edit.

Using one

Download, import, make it yours

A bundle is a starting point rather than a dependency. Once imported, nothing updates underneath you.

  1. 01 Download the bundle A zip containing the manifest, the template source, the layout PDF and the theme fonts. Nothing is fetched at render time.
  2. 02 Import it into your instance Wraft reads wraft.json and creates the layout, theme, variant and flow it describes. Existing objects with the same name are reused rather than duplicated.
  3. 03 Edit it as yours Change clauses, swap the theme, add fields. The bundle is a starting point, not a dependency — nothing phones home and nothing updates underneath you.
  4. 04 Re-export to share it Bundles are how templates move between instances: from staging to production, or from you to someone else.

About the catalogue

Thirty bundles, each with a render you can look at

Every template in the listing is built from the same standard: a manifest, a Typst frame, its own fonts and layout. The previews are rendered from each bundle's sample data, and the details on every page are read from the bundle's wraft.json — so the catalogue cannot drift from the zips it describes.

Common questions

About the library

How many templates are there?
Thirty, and every one is a real bundle you can download and import. Each preview is rendered from the bundle's own sample data by its Typst frame — not a mock-up — so what you see is the shape of an actual generated document.
Can I contribute a template?
Yes, and it is the most useful contribution to make. A bundle is a zip with a readable manifest, and every template here was built from the same standard builder — copy one, change the fields and the Typst frame, validate it, and open a pull request against the repository.
What licence are the templates under?
The bundles in this repository are AGPLv3 along with the rest of it. Documents you generate from them are yours — the licence covers the platform and the template source, not your output.
Do I need Typst to use these?
Not to use them. Every bundle renders through pandoc to Typst inside Wraft, which is part of a self-hosted install. You only need to touch Typst if you want to change the layout itself rather than the content.
Will importing a bundle overwrite what I have?
No. Import matches on names and reuses what already exists, so importing two bundles that share the Modern Slate theme gives you one theme, not two copies of it.

Start from something that works

Take a bundle, change every line of it, owe us nothing