Everything .it can do, on one page. Each capability links to its guide, reference, and
API so you can go from "can it do X?" to "here's exactly how" in one hop.
The throughline: a .it file is one plain-text artifact that is readable by people,
parseable by code, and — when sealed — tamper-evident and verifiable offline, forever. The
same file is your document, your data, your form, your contract, your config, and your audit
trail. No second system to keep in sync.
Authoring & structure
| Capability | What it is | Docs |
|---|
| Keyword model | 40 canonical keywords give every line a purpose; tiered core / agent / contract / data / print | Concepts · Keywords |
| Bare prose | text: is optional — write natural prose, reach for keywords only when a line needs meaning | Bare prose |
| Arabic keywords | 32 localized keyword names (عنوان:, مهمة:) that resolve to the canonical keyword and round-trip as written | Localized keywords |
| Custom keywords | Any non-reserved word: … line parses as a typed custom block — never an error, never reinterpreted (zero synonym aliases = collision-free) | Concepts §2 |
| Sections | section: (H2) / sub: (H3) group blocks; toc: builds a table of contents | Structure |
| Inline formatting | *bold*, _italic_, ~strike~, `code`, dates, mentions, tags, footnote refs | Style properties |
| Two-tier styling | Pipe properties (color:, weight:) + [text]{ key: value } inline spans + style: house rules | Style properties |
| RTL / bidi | Arabic and mixed-direction documents render and round-trip correctly | Localized keywords |
Data & query
| Capability | What it is | Docs |
|---|
| Tables | headers: / row: typed tabular data; totals; each: dynamic rows from data | Data keywords · Templates |
| Metrics | metric: measurable values, queryable and dashboard-ready | Metrics cookbook |
| Typed values & money | metric:'s value: holds a bare magnitude + unit: (ISO-4217 / % / unit); readTypedValue / metricTypedValue parse it to { number, currency, kind } | Data keywords |
| Definitions & figures | def: glossary entries, figure: numbered captioned figures, ref: cross-doc references | Data cookbook |
| Folder as a database | Every .it in a folder is a queryable row — no DB, no import | A Folder Is a Database |
| Query engine | queryBlocks / queryDocument / dotit query across any number of files | Query reference |
| Natural-language query | askDocuments — ask a folder a question in plain English | Core API |
| Shallow index | .it-index files for fast lookup over large folders | Index files |
Templates & merge
| Capability | What it is | Docs |
|---|
| Templates | {{variables}}, dot paths, array access; same parser as documents | Templates · First template |
| Data merge | mergeData / parseAndMerge — fill a template from JSON | Core API |
| Dynamic rows | each: repeats a table row per array item | Building templates |
Trust, signing & approvals
| Capability | What it is | Docs |
|---|
| Integrity seal | SHA-256 seal over canonical content (styling, comments, CRLF/whitespace excluded) — tamper-evident, offline-verifiable forever | Trust & Signing |
| Approve / sign / freeze / amend | The trust lifecycle, each step a line in the file | Trust & Signing |
| Ed25519 signatures | @dotit/sign — cryptographic identity binding a key to a hash | Trust §Layer 2 |
| Authority / certification | UTS certify: with root→intermediate X.509-style chain | Trust §Layer 3 |
| In-file approval routing | route: / require: declare who must approve, in what order, conditionally | Approval Workflows |
| Derived workflow state | workflowState() — pending / next / complete, never stored, can't drift | Approval Workflows |
| Hash-chained audit | appendApproval / verifyAuditChain — the approval order is tamper-evident | Approval Workflows |
| Byte preservation | No tool reformats a .it; reconcileEdit + storage contract keep seals intact | Byte Preservation |
| Amendments | amendment: changes a frozen doc additively, preserving the original seal | Trust §Amend |
| Capability | What it is | Docs |
|---|
| Fillable forms | meta: type: form + input: fields; text, choice, date, signature, table, attachment | Forms |
| Conditional & computed fields | show-if: reveals fields; compute: derives values (safe, no eval) | Forms |
| Two-party form trust | Author seals the blank structure; filler seals the answers; both verify independently | Form trust |
| Attachments | Carry files by href: reference or embedded base64 (covered by the seal) | Attachments |
| Redline & compare | Tracked changes + comments; compareVersions; accept/reject | Redline |
| Async co-authoring | mergeThreeWay — merge two independent edits, surfacing conflicts | Co-authoring |
| Redaction | applyRedactions legally removes content with a verifiable salted receipt | Redaction |
Output & rendering
| Capability | What it is | Docs |
|---|
| HTML | renderHTML with 8 built-in themes + per-document house styling | Themes · Core API |
| Print / PDF | renderPrint → WYSIWYG PDF; page setup, headers/footers, watermarks | PDF export |
| Accessible (tagged) PDF | Structure tree + alt text for screen readers (PDF/UA-style) — automatic | Accessible PDFs |
| PDF/A archival | toPdfA — XMP + sRGB + document ID, validated with veraPDF | Compliance |
| PAdES signatures | @dotit/pades — ECDSA + X.509 + CMS PDF signatures Adobe and courts recognize | Compliance |
| Math | math: blocks + inline [E=mc^2]{math: tex}; MathML / KaTeX via @dotit/math | Math |
| Conversion | .it ⇄ Markdown / HTML / .xlsx / .docx | Core API |
Agents & workflows
| Capability | What it is | Docs |
|---|
| Agent keywords | step: decision: gate: trigger: result: policy: audit: for machine workflows | Agent keywords · For Agents |
| Workflow extraction / execution | extractWorkflow (DAG) / executeWorkflow with a runtime | Core API |
| MCP server | @dotit/mcp — let an AI agent parse, render, query, and seal .it over MCP | MCP server |
Config & integration
| Capability | What it is | Docs |
|---|
| Config / options file | A readable, commentable, signable alternative to YAML/JSON | Config & Options |
| Conformance check | checkConformance(src, { level }) — lax (no errors) or strict (no warnings either); read-only, never rewrites | Conformance |
| Format version stamp | An optional // it-format: 1.0 header comment → document.version; the level inferred from blocks used is document.detectedFeatureLevel | Conformance |
| Lossless round-trip | parseIntentText ⇄ documentToSource reproduce source byte-for-byte | Conformance |
| Storage contract | toStorageRecord / verifyStorageRecord — byte-exact persistence, drift detected | Byte Preservation |
| Embeddable editor | @dotit/editor — a controlled React editor over plain .it source | Editor |
| CLI | dotit — seal, verify, amend, history, query, convert, render | CLI reference |
| SDKs & tools | npm (@dotit/*), PyPI, VS Code extension, Hub | Ecosystem |
| ERP / app integration | The template → merge → seal → PDF pipeline in a backend | ERP Integration |
The five things only .it does
If you remember nothing else, these are the capabilities no Word/PDF/YAML/DB stack gives
you in one portable text file:
- One artifact, six jobs. Document, data, form, contract, config, and audit trail are
the same file — no second system to sync. (Concepts)
- Trust travels with the file. A SHA-256 seal anyone can verify offline, forever — no
vendor, no server. (Trust & Signing)
- The workflow lives inside the document. Routing policy, live state, and a
tamper-evident approval trail are derived from the file, not a database.
(Approval Workflows)
- The seal survives reformatting. The seal hashes canonical content, so restyling,
reformatting, and CRLF/whitespace changes never break it — only a real content change
does. Byte-preservation tooling keeps your stored file faithful on top of that.
(Byte Preservation)
- It reads like a document and parses like a database. The same lines a clerk reads,
code queries. (A Folder Is a Database)
Start here: Quick Start · Core Concepts · Reference Overview