Skip to content
Benchmarks
Github.com

Benchmarks

Page-weight receipts for the themes Void competes with. The same four Markdown pages (home, a nested guide with a code block, and a reference table) are built with void, material, and readthedocs; the table below is the byte count shipped by each build. Smaller is faster — and this page is regenerated by CI on every push to main.

Theme index.html CSS JS Total shipped (raw) Over the wire (gzip) Files
void 24.9 kB 150.9 kB 329.9 kB 830.5 kB 173.3 kB 25
material 12.3 kB 148.9 kB 1035.6 kB 2525.8 kB 596.5 kB 51
readthedocs 4.8 kB 136.9 kB 199.4 kB 3580.4 kB 2739.3 kB 36

Measured with MkDocs 1.6.1 at commit f5516ac.

Methodology

  • Each project uses the same minimal content and a search plugin; only the theme differs (void additionally registers the void plugin, the same way a real Void site does).
  • “Total shipped (raw)” sums every file emitted under site/ (HTML, CSS, JS, fonts, and static assets). “Over the wire (gzip)” is the same set compressed with gzip to approximate transfer size.
  • Themes that cannot be built on a machine (for example material when mkdocs-material is not installed) are shown as “—”; the CI workflow installs all three, so the table is always complete upstream.
  • No network requests happen during measurement — CDN-only assets are counted by what the theme itself ships to the browser.

Lighthouse

Lighthouse runner is enforced in CI, not measured here: .github/workflows/performance.yml asserts a minimum score of 95 in every category (performance, accessibility, best-practices, SEO) against the live docs site. A run that scores below the bar fails the build. Latest runs: Actions → Performance.

Regenerating

python tools/emit_benchmarks.py

The Benchmarks CI workflow runs the same command on every push to main and opens a pull request when the numbers change. To regenerate manually, add mkdocs-material to the environment (pip install mkdocs-material) so the material column is populated.