colvmn

A minimal static-site layout engine.

colvmn (pronounced column) is a tiny layout engine for static sites. Pages are described by an _index.md with YAML frontmatter, or an _index.json. The engine renders each page to static HTML at build time and to live DOM in the browser, so content is visible to JavaScript-free crawlers and to readers with JavaScript enabled.

This page is itself generated by colvmn — the engine is self-hosting, with no recursive submodule.

Features

  • Markdown or JSON — write pages as _index.md with YAML frontmatter, or as structured _index.json.
  • Pre-rendered HTML — content is visible to crawlers, AI agents, and JavaScript-disabled clients without waiting for the engine to run.
  • Identical client and build paths — the same renderer runs in Node and in the browser, so static and live output match.
  • Structured content blocks — cards, tables, timelines, FAQs, key/value pairs, lists, images, and an auto-generated table of contents.
  • LLM-friendly outputsllms.txt, llms-full.txt, and sitemap.xml are emitted on every build.
  • Inherited page metadatatopTitle, parent titles, and back-links are walked up the directory tree automatically.
  • Readable from file:// — engine asset URLs are rewritten to page-relative paths so generated pages render locally without a web server. JavaScript-driven features (live re-render, dynamic fetches) require a server, but pre-rendered content, styling, and navigation work directly from disk.

Quick Start

Add colvmn and create your first page.

View →

How It Works

Build- and runtime rendering, and generated outputs.

View →

Authoring

Markdown vs JSON, page metadata, and content blocks.

View →

GitHub

Source code (MIT).

Visit →