Skip to content

PROMOTE

The chess developer stack — coordinated libraries that compose into an app foundation. Rendered from each project’s canonical docs, with a stack map and an honest status dashboard.

How it composes

Apps compose the stack at their boundary: Tabia holds the game data, Rabbit renders the board, Motif supplies the chess-aware UI, and Edge answers corpus-scale questions. OpenFile and Priyome extend Tabia’s foundation.

your chess app
composes
Tabiadata Rabbitrender MotifUI Edgebatch
extends the foundation OpenFile · Priyome

Status dashboard

Status is read from each project’s docs + code (2026-05-30) — a best-faith reading, not a self-report. Treat as inferred, confirm.

Active Real API, in use; evolving toward a stable surface.

Tabia chess UX runtime + data layer

The foundation most of the stack builds on. PGN parser, Game factory, ReplayEngine, a generic UCI engine client, and multi-source merge with attribution. Variant-agnostic, data-only — rendering and UI are left to consumers.

Built
  • PGN tokenize/serialize
  • Game tree (variations, NAGs, comments, drawables)
  • ReplayEngine + position hashing
  • Generic UCI engine client + registry
  • FEN parse + semantic validation
  • Collection merge with attribution
  • Slice-based reactive lifecycle
Next
  • API audit → stable surface
  • PGN header editing
  • NAG kit
  • variant support
own reporead docs
Motif design system + chess components

The visual identity and the chess-aware UI layer. Design tokens, a runtime theme switcher, eleven Lit web components (move list, engine panel, FEN/PGN areas, board editor, …), static reference data, and the cross-library Game / Renderer contracts.

Built
  • Design tokens + theme switcher
  • 11 chess-aware Lit components
  • ECO data (3641 positions) + 39 piece sets
  • Game + Renderer contracts
  • Component recipes + canonical keyboard map
Next
  • extract more components on consumer demand
  • piece-set licensing follow-through
own reporead docs
Rabbit SVG board renderer

A pure-SVG chess board: small, fast, framework-free, variant-aware. A rendering substrate that any chess UI composes on — sibling to Tabia, wired together at the app boundary.

Built
  • Pure-SVG board (~15 kB gzipped)
  • Drag/tap gestures → intent events
  • Shapes: arrows, circles, fills, glow (+ PGN drawables)
  • Variant geometries (Capablanca, holes/walls)
  • Promotion UI, theming via CSS layer
Next
  • public-surface polish (in progress)
own reporead docs
Edge batch chess data tier

The high-performance batch tier: native-C tools that index and query corpora of millions of PGN games. Two engines over one corpus — a tree builder and a per-position scan engine with bitmap composition. A different runtime and shape from the JS projects; apps compose both at the boundary.

Built
  • Indexer (~1.9 s warm / 10 M games)
  • Tree builder + header-only fast path (~7 ms / 10 M)
  • Scan engine: position predicates + windows + Boolean composition
  • Three reducer families (bitmaps, aggregations, position stream)
  • Feature-complete query language
Next
  • predicate-vocabulary expansion
  • packaging (libedge / daemon / WASM)
spec in PROMOTE/Edge · prototype in experiments/c-explorerread docs