Welcome
Documentation for @docubook/flame — a build-time bridge between tooling and content plain markdown in, flat static HTML out.
@docubook/flame compiles plain markdown (.md / .mdx) into flat static HTML — a build-time bridge, not a runtime. Bun, Node.js, or Deno only run the toolchain; the output deploys anywhere.
- Quick start — a docs site in minutes
- Formatting — the v2 authoring contract: markdown, fenced code, directives
- Introduction — why v2 is markdown-first, not JSX
Benchmark setup: the same 27
.mdxfiles (106 KB), npm releasesv1.7.2andv2.0.0,NODE_ENV=production, three cold builds on the same machine. v1 ran on Node 22.23.2; v2 ran on Bun 1.4.2. Because v1's mdx-remote interprets directive attributes ({...}) as JSX expressions, 19 files were converted to native JSX using the Formatting mapping; v2 built the source unchanged.
flowchart LR
classDef v1 fill:#f8fafc,stroke:#94a3b8,stroke-width:1px,color:#334155
classDef v2 fill:#ecfdf5,stroke:#34d399,stroke-width:1px,color:#064e3b
classDef note fill:#fef2f2,stroke:#f87171,stroke-width:1px,color:#7f1d1d
RAW["same content · 27 mdx / 106 KB"] --> V1
RAW --> V2
subgraph V1["Flame v1.7.2"]
direction TB
C1["JSX conversion"]
B1["mdx-remote compile"]
H1["new Function hydration"]
D1["dist 7.4 MB"]
C1 --> B1 --> H1 --> D1
end
subgraph V2["Flame v2.0.0"]
direction TB
B2["common markdown + directives"]
H2["static ESM hydration"]
D2["dist 7.8 MB"]
B2 --> H2 --> D2
end
T1["client bundle: 5092 ms"] -.-> B1
T2["client bundle: 3162 ms"] -.-> B2
class E1 note
class B1,H1,D1 v1
class B2,H2,D2 v2
xychart-beta
title "Cold build · MDX page compile (ms) — lower is better"
x-axis ["v1.7.2", "v2.0.0"]
y-axis "milliseconds" 0 --> 4000
bar [3466, 1940]
The table reports medians from three cold builds. Per-run wall times were 12 / 10 / 12 s for v1 and 13.71 / 8.00 / 7.67 s for v2. Because the benchmarks use different runtimes (Node for v1, Bun for v2), the deltas are directional rather than a controlled runtime comparison.
Last updated Sep 10, 2026