Xerdi Document Platform

Documents and systems, automated and built to last

Most document problems are not typesetting problems. They are what happens when the data, the layout and the rules that govern them live in three different places and only meet inside somebody's afternoon.

What we build See the work

Xerdi is Erik Nijenhuis, Leeuwarden, the Netherlands. Working in English across Europe.

The problem we are actually solving

A document that is generated is not automatically a document that is trustworthy. It can be produced on a schedule and still be unreproducible, still be inaccessible to a screen reader, still be impossible to prove anything about six years later when somebody asks who changed a figure and when.

We treat a document as software: the content is data, the layout is a program, and both are under version control with an input contract between them. That is the difference between a template somebody has to remember to update and a pipeline that cannot silently produce the wrong thing.

It is also the difference between a supplier and a dependency. Everything we build runs on free software, on infrastructure you can hold, with the sources in your hands. If we disappear tomorrow, your documents still build tomorrow.

Where this pays for itself

Four shapes of engagement. They overlap; most work starts as one and grows into another.

  • High-volume publishing

    Automated typesetting at production scale, where a layout engine has to make the right call thousands of times without a human looking at it.

    • LuaLaTeX engineering and float behaviour
    • Pipelines that fail loudly rather than quietly
  • Compliance-grade output

    Documents that have to satisfy an auditor rather than a reader: archivable, verifiable, and honest about what they claim.

    • PDF/A-4f archiving with embedded sources
    • PDF/UA-2 tagging where the structure is genuinely there
  • Back-office systems

    The system behind the document — quoting, invoicing, registration, reporting — built to the same standard as the output it produces.

    • Data model first, interface second
    • Deployed as infrastructure as code
  • Knowledge and compliance corpora

    Regulatory text turned into something a machine can search and a human can defend, with the provenance kept intact.

    • Deterministic for facts, human-validated for judgement
    • Sources cited, never paraphrased away

Evidence

Work speaks louder than a capability list. Client names appear here only where the client agreed to be named; the rest is described without them.

  • Float stabilisation for a production typesetting engine

    A scientific publishing technology supplier

    A LuaLaTeX pipeline that placed figures and tables unpredictably at volume: correct on a page, wrong across a run. We stabilised the float behaviour so that the same input produces the same page every time, which is what makes an automated run reviewable at all.

    LuaLaTeXTypesetting engineReproducibility

  • A compliance knowledge base that keeps its provenance

    A regulatory-compliance venture

    Regulatory material — AI Act, GDPR, GxP — assembled into a corpus that can be searched and cited. The design rule was that a retrieved answer must always be traceable to the passage it came from: deterministic where the answer is a fact, human-validated where it is a judgement.

    Corpus engineeringRetrievalRegulatory text

  • XDP — the document platform behind all of it

    Xerdi

    A LuaLaTeX document framework with a validated data/schema separation: a recipe declares the fields a document accepts, a payload supplies them, and a document that is handed the wrong data fails to build instead of printing it. Every quote, invoice and handbook Xerdi issues is produced by it.

    LuaLaTeXSchema validationPDF/A-4fReproducible builds

  • The composer: documents generated on demand

    Xerdi

    A web front end that takes a filled-in form and returns a finished PDF, generated by the same pipeline that produces our own documents. Generation runs in an isolated container with no network and a hard time limit, because the alternative — a typesetter running on visitor input inside the web application — is a shell-escape waiting to happen.

    On-demand generationSandboxingWeb application

Start with the awkward document

The useful first conversation is about the one that keeps going wrong — the report nobody can regenerate, the export that breaks every quarter, the figure that has to be right. Send it over and we will tell you what it would take to make it dependable, whether or not that turns into a project.

Write to Erik