A map of the repos and apps that make Sri Lankan-script type happen at Mooniak:
from the glyphset standard, through the build system, out to the apps people
actually use. Some of these are public; several are still private or
unpublished — marked below. See also the styled version of this page:
tools/index.html.
Status current as of July 2026 — private repos in particular move fast.
flowchart LR
LG["Lanka Glyphsets\n(standard)"] --> SFT["Sinhala Font Tools\n(dev toolkit)"]
SFT --> FR["font-repos\n(~90 font repos)"]
FR --> MNIK["mnik / mooniak-font-tools\n(build system)"]
MNIK -->|"showcase --publish"| DIR["directory\n(public showcase)"]
MNIK -->|"channel-index.json"| FP["fontpipe\n(fontpackagemanager)"]
FP --> AKURU["Akuru App\n(font library)"]
LG -.->|"fonts for shaping tests"| BP["Bookpress\n(book typesetting)"]
font-repos/ draws on (design-stage
tracking, test texts, glyph charts built from Lanka Glyphsets data).font-repos/ workspace
(~90 of them — mostly private FontMaster-legacy revivals, some public).font-repos/, then fans its output two ways:
directory repo
(src.mooniak.com), andchannel-index.json, the machine-readable feed fontpipe consumes.fontpackage.json, and installs/updates fonts on a
user’s machine.github.com/mooniak/lanka-glyphsets — Public
The standard everything else is built against. Defines four cumulative
Sinhala glyphset tiers (Kernel / Core / Plus / Pro, mapped to ICTA’s Level
1–3 classification) plus a Tamil glyphset, and a normative glyph-naming
standard (visual-form-based, e.g. kRa-sinh for ක්ර).
Ships two packages: @mooniak/lankaglyphsets (npm, TypeScript reader + CLI)
and mnik-lankafea (PyPI, Sinhala/Tamil OpenType feature generation +
glyph-dependency validation). Also includes a HarfBuzz-based shaping
conformance checker (tools/font-coverage/).
Feeds: its generated data is vendored by Sinhala Font Tools’ glyph-chart tool; the naming standard is what individual font repos are renamed against; Bookpress uses Lanka Glyphsets-conformant fonts for its Sinhala shaping tests.
github.com/mooniak/sinhala-font-tools — Public
The shared docs-and-dev-toolkit layer for multiscript (Sinhala/Tamil/Latin)
font projects: project-status conventions (actively-developed →
deprecated), release-channel definitions (dev / nightly), a
sinhala-composites.yaml reference, design-stage tracking, a bank of test
texts, and browser-based tools (glyph chart, font tester) used across the
font-repos workspace.
Distinct from — but a sibling/descendant of — akuru/sinhala-font-tools (“Tools, templates and specifications for sinhala font development”), the original Akuru Collective repo Mooniak’s own version grew out of.
github.com/mooniak/mooniak-font-tools — Private
The homebase for every font project. Holds no fonts itself — those live as
sibling git repos inside font-repos/ — and instead provides mnik, one
Python package with three interchangeable surfaces (CLI, Makefile, and a
local Flask dashboard) covering the whole pipeline:
build (gftools), collect, scale, qa (fontspector)manifest, channel-index, doctor (drift checks)registry, showcase (→ the public directory site),
proof-pdf, native export (Glyphs.app)status / commit / push / pull / template-sync across
every repo in the workspace at oncechannel-index.json — aggregated per-repo, per-channel build data — is
explicitly the hand-off point: mnik’s own docs describe it as “the public
data source that fontpipe consumes.”
Lives in github.com/mooniak/fontpackagemanager — Private
(repo name predates the product name; the binary, crates, and README all say “fontpipe”)
A GitHub-native font package manager — a Tauri 2 desktop app (Rust + React)
that subscribes to font repositories via a fontpackage.json manifest
standard, installs fonts system-wide, and auto-updates across release / dev /
nightly channels. Handles per-OS font activation natively (CoreText on
macOS, GDI on Windows).
Consumes: channel-index.json from mnik. Feeds: the installer engine
behind Akuru App’s Font Library tool.
No public repo yet — local-only, not pushed to GitHub.
A book-typesetting desktop app for publishers, built on Tauri 2 with the Typst compiler embedded natively in the Rust backend (structured-model-as-truth: a structured book model is the source of truth, with deterministic one-way codegen to Typst). Ships live per-page SVG preview, click-to-jump editing, font management (embedded + system + project fonts), PDF export, and autosave/crash recovery.
Its font-handling test suite specifically exercises Sinhala shaping using Lanka Glyphsets-conformant fonts — making it the most concrete real-world consumer of the whole standard-to-font pipeline, laying out actual trilingual (Sinhala/Tamil/English) books rather than just rendering type specimens.
Landing/waitlist page: github.com/mooniak/akuruapp-landing — Public
The app itself — Unpublished (alpha, no public source repo; waitlist)
A desktop “super app” for individuals, businesses, and organisations working with text, fonts, and writing in Sri Lanka’s official languages. The alpha ships four tools: a font library (font installer — Google Fonts today, expanding to Mooniak’s own catalogue), a canvas for trying fonts without installing, a glossary of official-language technical terms, and a Sinhala ASCII→Unicode text converter.
The font library is the natural end-user face of fontpipe’s distribution technology — where the standard (Lanka Glyphsets), the build system (mnik), and the distribution app (fontpipe) ultimately reach a reader who just wants a working font.
directory — Public (src.mooniak.com)
The public showcase for every Mooniak typeface — a static Astro site with no
backend of its own. Its public/data/ is entirely generated and pushed by
mnik showcase --publish from mooniak-font-tools; nothing under it is
hand-edited. This is the visible, human-facing output of the build pipeline
described above.