VMPrint — Open Source

# A desktop-publishing engine that runs in your browser

No server. No DOM. No HTML. Structured JSON in, pixel-perfect pages out — multi-column layouts, floats, drop caps, tables, and hyphenation, entirely in TypeScript.

All examples
Scale
DPI
Text

About this document

This document was generated by Claude in a single shot, from a markdown skill file describing the VMPrint schema. There were no prior VMPrint documents on the internet to learn from — no examples, no training data specific to this format. Claude built it from scratch using only the primitives the schema made available.

The JSON on the left is the complete document. Every element you see in the rendered output is a node in a structured tree. Edit it live and the engine re-renders in under a second.

Ready.

Boot: -

Layout: -

Render: -

## Document JSON

Edit live — re-renders automatically.

Document AST JSON

## Canvas Preview

Rendered on a single `<canvas>` element.

## What is VMPrint?

VMPrint is a deterministic typesetting engine written in TypeScript. It runs in Node, Deno, or the browser — no DOM, no HTML rendering pipeline, no native dependencies. Documents are pure JSON data structures. You describe what a document contains; the engine handles everything else.

- Multi-column text flow
  Stories flow across n columns, split across pages, balance or not.
- Floated elements
  Images and pull quotes interrupt flow; body text wraps around them.
- Drop caps
  Configurable dropped initials with per-character style overrides.
- Tables
  Cell spanning, repeating headers, alternating row styles.
- Zone maps
  Independent layout regions side-by-side, each with its own flow stack.
- Running headers & footers
  Per-page bands with live page-number tokens.
- Advanced justification
  Paragraph-level optimization with configurable strategies.
- Hyphenation
  Automatic or per-element control, on or off.
- Web fonts
  TTF/OTF loaded and shaped at runtime via fontkit.
- Canvas & PDF output
  Same document, multiple render targets.
- Pure TypeScript
  No native modules, no bundler required at runtime.
- Open source
  Apache 2.0. github.com/cosmiciron/vmprint