Back to Projects
Last reviewed

Native rendering / Selected work

Docify

A native Rust document renderer for HTML and CSS, with PDF, PNG, SVG, and editable DOCX output, plus Node.js bindings.

Docify editorial concept artwork
Private source / DOCX pre-production
Concept artwork / Native rendering

01 / The project

The problem to solve.

Business documents need consistent text, tables and page breaks across several output formats. I built Docify around that document-layout problem, with a native Rust pipeline that can be called from a Node.js service.

Decisions / Scope / Result

How I approached it.

Support a defined document subset

The engine implements a focused subset of HTML and CSS instead of embedding a browser. That gives the rendering stages a clear contract, but means unsupported styling must produce diagnostics so the caller can choose a fallback renderer.

Share layout where the format allows it

PDF, PNG and SVG are emitted from a shared layout and display pipeline. Editable DOCX needs a different treatment: Word reflows the document, so its output has separate structural checks and remains pre-production.

What came out of the work

The implementation includes document layout, font shaping, pagination, PDF/PNG/SVG output and Node.js integration. Qualification compares extracted text and rendered pages against Chromium, alongside layout and output-format tests.

The renderer source is private and DOCX remains pre-production. No private templates or customer documents are published here; the interactive studio is an illustrative explanation, not a browser build of the renderer.

From the project

A closer look at the real work.

A one-page fictional project brief rendered by Docify, with headings, a styled deliverables table and an explicit synthetic-example notice.

Actual Docify output generated on 27 September 2026 from a newly written, fictional HTML and CSS template. The same layout produced the page image and the downloadable PDF; no customer content was used.

Open the generated PDF
02 / Interactive studio / Illustrative demo

One source. Different possibilities.

Choose an output format.

01 / Source

<article>
  <h1>A small idea.</h1>
  <p>Many possibilities.</p>
</article>

h1 { color: #0f766e; }
HTML + CSS
02 / PDF preview

A small idea.

Many possibilities.

Paginated document

One source, several output formats. This is a visual explanation, not the Rust engine running in your browser.

03 / The build

Details that matter.

01

Implemented document layout, font shaping, pagination, and multiple output formats in a modular Rust workspace.

02

Exposed synchronous and asynchronous Node.js bindings, with diagnostics that allow callers to fall back to another renderer.

03

Added text and visual comparisons against Chromium, property tests for layout, and fixture-based PDF accessibility validation.

Have a related challenge?

Let’s talk about your project.

Tell me what creates your documents today, the formats you need, and which layout or integration constraints matter.

Discuss document automation