Skip to main content

Your First Document

Build a complete, professional invoice from scratch — with contacts, deadlines, metrics, approval, and a seal.

Start with identity

Every .it file starts with what the document is:

title: Invoice INV-2026-042
summary: Consulting services — Acme Corp — Q2 2026
meta: | type: invoice | currency: USD | ref: INV-2026-042
track: | version: 1.0 | by: Ahmed Al-Rashid

title: becomes the H1. summary: is the subtitle. meta: holds machine-readable metadata. track: activates change history.

Add the parties

Use contact: to declare who's involved:

section: Parties

contact: Ahmed Al-Rashid | role: CEO | email: ahmed@acme.com | org: Acme Corp | phone: +971-4-555-0100
contact: James Miller | role: CFO | email: j.miller@globaltech.co | org: GlobalTech Inc. | phone: +1-415-555-0200

Every contact: is queryable. Later, you can run intenttext query ./invoices --type contact --org "Acme" and find every contact across every invoice.

Add line items

Use a Markdown pipe table with each: for dynamic rows:

section: Line Items

| Description | Hours | Rate | Total | each: items |
| {{item.description}} | {{item.hours}} | {{item.rate}} | {{item.total}} |

Or for a static invoice, write the rows directly:

section: Line Items

| Description | Hours | Rate | Total |
| Strategy consultation | 40 | USD 150 | USD 6,000 |
| Technical implementation | 80 | USD 150 | USD 12,000 |
| Project management | 40 | USD 150 | USD 6,000 |

Add totals with metrics

section: Summary

metric: Subtotal | value: 24000 | unit: USD
metric: Tax (5%) | value: 1200 | unit: USD
metric: Total Due | value: 25200 | unit: USD | weight: bold

metric: blocks are queryable and renderable. They show up in dashboards, queries, and reports.

Set the deadline

deadline: Payment due | date: 2026-04-30 | consequence: Late fee of 1.5% per month | owner: GlobalTech Inc.

deadline: renders with proximity color coding — green when far away, amber when approaching, red when overdue.

Approve and seal

approve: Reviewed and approved | by: Sarah Chen | role: Finance Director | at: 2026-03-06
sign: Ahmed Al-Rashid | role: CEO | at: 2026-03-06T14:32:00Z
freeze: | status: locked | at: 2026-03-06T14:33:00Z

Now seal it with the CLI:

intenttext seal invoice.it --signer "Ahmed Al-Rashid" --role "CEO"

The document is now frozen. Any edit breaks the hash.

Verify anytime

intenttext verify invoice.it
✓ Document integrity verified
Signer: Ahmed Al-Rashid (CEO)
Sealed: 2026-03-06T14:33:00Z
Hash: sha256:a1b2c3...
Status: INTACT — no modifications detected

Render it

intenttext invoice.it --html --theme corporate
intenttext invoice.it --print --theme corporate
intenttext invoice.it --print --theme corporate --pdf invoice.pdf

The complete file

title: Invoice INV-2026-042
summary: Consulting services — Acme Corp — Q2 2026
meta: | type: invoice | currency: USD | ref: INV-2026-042
track: | version: 1.0 | by: Ahmed Al-Rashid

section: Parties
contact: Ahmed Al-Rashid | role: CEO | email: ahmed@acme.com | org: Acme Corp
contact: James Miller | role: CFO | email: j.miller@globaltech.co | org: GlobalTech Inc.

section: Line Items
| Description | Hours | Rate | Total |
| Strategy consultation | 40 | USD 150 | USD 6,000 |
| Technical implementation | 80 | USD 150 | USD 12,000 |
| Project management | 40 | USD 150 | USD 6,000 |

section: Summary
metric: Subtotal | value: 24000 | unit: USD
metric: Tax (5%) | value: 1200 | unit: USD
metric: Total Due | value: 25200 | unit: USD

deadline: Payment due | date: 2026-04-30 | consequence: Late fee of 1.5% per month

approve: Reviewed and approved | by: Sarah Chen | role: Finance Director
sign: Ahmed Al-Rashid | role: CEO | at: 2026-03-06T14:32:00Z
freeze: | status: locked

Next: Turn this into a reusable template →