Skip to content

0010 — Developer tooling: a dotnet tool with a browser UI

Status: Accepted

Context

Building documents by editing code and reopening a PDF is slow. Parity requires a live previewer: pages updating as code changes, an inspector for the frame tree, layout failures shown on the page, and navigation to source.

Decision

A dotnet tool plus a browser UI. document.Preview() (or dotnet rustaveli preview) starts a local server and opens the browser: live pages, the frame tree with each frame's measured space, layout errors highlighted in place, and click-to-source opening the IDE at the line. Hot reload comes from dotnet watch.

Consequences

  • One codebase for every operating system, no installers, and it works in dev containers and over SSH.
  • Click-to-source requires frames to capture caller file and line when built, which the fluent API must support cheaply enough to leave on in development.