---
title: "Projects"
description: "hadley, Lima, Markanto, galley, quad, LottaBits and aiprov — small tools, each built to be understood as a whole."
url: "https://mko.run/projects/"
language: "en"
---
# Projects

Small tools, each built to be understood as a whole. Most of them work together: the site you are reading is built by
hadley from Lima and Markanto, laid out by galley and formatted by quad.

## hadley

A static site generator for people who write their own tools: its own parser, template engine and HTML formatter,
made for each other. TypeScript, on Bun and Node.js. First released on 1 November 2026.

[hadley.sh](https://hadley.sh) · [GitHub](https://github.com/mkorun/hadley) ·
[npm](https://www.npmjs.com/package/@mkorun/hadley)

## Lima

A small, predictable front matter format — the part of YAML front matter actually needs, with well-defined types and
no surprises. A normative specification, a conformance corpus and implementations in TypeScript, Rust and Go, plus
editor support.

[limaformat.dev](https://limaformat.dev) · [GitHub](https://github.com/limaformat/lima) ·
[npm](https://www.npmjs.com/package/@limaformat/lima)

## Markanto

A Markdown variant with one canonical form per meaning: it reads familiar Markdown tolerantly, models it in a strict
semantic tree and writes exactly one form back. A frozen specification per version and a reference parser and
formatter with zero runtime dependencies.

[markanto.org](https://markanto.org) · [Specification](https://github.com/markantolang/spec) ·
[npm](https://www.npmjs.com/package/@markantolang/parser)

## galley

The template engine of hadley: layouts and partials that escape every value unless it is HTML the program made itself.

[GitHub](https://github.com/mkorun/galley) · [npm](https://www.npmjs.com/package/@mkorun/galley)

## quad

An HTML formatter that sets the whitespace of a page the way quads fill the space between type. Synchronous, without
dependencies.

[GitHub](https://github.com/mkorun/quad) · [npm](https://www.npmjs.com/package/@mkorun/quad)

## LottaBits

Physical randomness, one chip at a time: BIP39 seeds, passwords and passphrases from numbered chips drawn from a bag.
The chips create the secrets; the computer only calculates.

[GitHub](https://github.com/mkorun/lottabits)

## aiprov

A terminal tool that writes IPTC and XMP provenance metadata into AI-generated images, so they say what they are.

[npm](https://www.npmjs.com/package/@mkorun/aiprov)

## d0

Something for running AI coding agents is taking shape here — built on enforcement rather than consent. More when it is
ready.
