Skip to content

Architecture

Zimanyar is a TypeScript monorepo. Each package may import only those in lower layers, and make check-imports holds it to that.

layerpackagesdoes
0configshared settings and design tokens
1dataloads the compiled lexicons
2corethe linguistic engine, a port of zimankit
3rulesthe document model and every checking rule
4checker, i18nruns rules in a worker with a cache; the interface strings
5ui, contentthe components; the lessons
6editorunderlines and cards on any text field
6practicedrills, spaced repetition and the mistake history
appswebthis website

core uses no DOM, browser or Node-only APIs, so the same engine runs in a worker, in Node and in the desktop app.

Parity fixtures exported from zimankit decide what the engine should do. The tables in the lessons are computed by the engine at build time, and a test holds each one to zimankit’s output.

See docs/dev in the repository for more.