xlli is the structured-spreadsheet citizen the document ecosystem has been
missing — a single canonical JSON form that round-trips through
.xlsx, HTML, and, via Pandoc, every other format Pandoc reaches.
Two reference engines (C# and Rust) produce byte-identical canonical output;
JavaScript and Python bindings layer over Rust. The format is owned by no
one. The reference implementations are open source.
A complete .xlli document
{
"xlliVersion": "0.1.0",
"documentKind": "container",
"meta": { "id": "01HXM3V4F8Q2WK9C6YNBZPRS71", "title": "Q1 Revenue Review" },
"microtables": {
"summary": {
"caption": "Q1 by Product",
"columns": [
{ "id": "product", "label": "Product" },
{ "id": "q1", "label": "Q1 Revenue", "styleName": "money" },
{ "id": "trend", "label": "Trend" }
],
"values": [
["Widget A", 42500, null],
["Widget B", 38100, null],
["Widget C", 29700, null]
],
"presentation": [
[null, null, null],
[null, null, null],
[null, null, { "type": "sparkline", "values": [10,12,15,14,18] }]
]
}
}
}
Cells are grid positions, not objects.
values, styleMatrix, rowspan,
colspan, and presentation are parallel 2D arrays
of the same shape, with null as the empty marker.
cat it, grep it, diff it,
jq it. The format is exactly what it appears to be on disk.
See it live: JavaScript demo · Rust WASM demo (coming soon)
§1Three bridges
xlli's strategic position is to be the structured-data citizen of the Pandoc world. Three bridges define what that means in practice. Each is independently useful; together they describe how xlli content moves through the document ecosystem without losing what makes it structured.
01 / Pandoc
The spreadsheet bridge
format · convert
Pandoc has had a tables story for years and a readers/writers framework
that scales beautifully — but no structured-spreadsheet target.
pandoc --to xlli reads anything Pandoc reads;
pandoc --from xlli puts xlli content into LaTeX, DOCX,
HTML, ICML, EPUB. Reader and writer in collaboration with the Pandoc
community, upstream-bound.
02 / RawBlock
The in-document bridge
embed · transit
xlli embeds inside any Pandoc-routed document as
RawBlock "xlli". One Markdown source flows to a styled HTML
page with a rendered microtable, an .xlsx with a real
worksheet, or a JSON pipeline that picks out only the embedded data.
Structured data without a sidecar file.
03 / MathIR
The codeBlock bridge
typed source · math
xlli's codeBlocks dictionary carries typed source by
language tag. language: "python" and "sql"
are what Pandoc's CodeBlock already understands.
language: "mathir" is a structured-mathematics
intermediate representation, round-trippable through xlli without
losing its tree.
More: Architecture · Pandoc bridge details
§2MicroTable now. NanoTable next.
xlli's table story stages in two pieces. MicroTable is the entry-level grid that ships first; NanoTable is the full spreadsheet engine that graduates to public later. Both live inside the same canonical container, so adopters who start with MicroTable today move to NanoTable without migration.
Now · v0.2 · Open source
MicroTable
xlli's entry-level table. The reference implementation of
documentKind: "container": CSS-style named styles, spans,
presentation cells, HTML-first rendering. Fits naturally into the data
models browser spreadsheet libraries already use. This is where most
adopters start.
Next · v1.0 · Graduating from private
NanoTable
The full grid engine — LibreOffice / Excel feature parity, plus a handful of extras. Graduates to public alongside the composition dictionaries (sections, cards, pages, codeBlocks, mathBlocks). When NanoTable lands, the same canonical JSON that carries a MicroTable today will carry an entire workbook.
§3Implementations
Two reference engines maintained in lockstep, validated by golden-file tests that produce byte-identical canonical JSON. Implementations in any language are welcome — pass the conformance suite, list yourself.
§4Get involved
xlli is in late-private collaboration. v0.2 graduates the format and reference implementations to fully public. If you want early access to drafts, reference implementations, or the conformance test suite during the private phase, get in touch.
- Contributing What's most useful right now: a Pandoc reader/writer pair, MathIR alignment review, conformance tests, language ports.
- Governance Founder-stewarded, deliberately open. Independent of any commercial implementer.
- Architecture The anchor document — JSON shape, canonicalisation, identifiers, additive evolution.
- Founder — Steve Dickson Lineage from Edinburgh CS 1990 through Lehman Optmodel to today.
- steve@xll.ai Direct contact during the private-collaboration phase.