Architecture
LynxDock is spec-driven and polyglot. A versioned specification feeds an infrastructure layer, which in turn supports a single product monorepo spanning Rust and TypeScript.
- GSpecshipped
The Genesis Specification — one versioned source of truth in YAML + JSON Schema.
- Bootstrapshipped
The compiler: parse → validate → IR → generate ecosystem artifacts.
- Release Toolsshipped
Turns a GitHub release into a signed releases manifest.
- Websiteshipped
This static site, consuming generated data.
- sharedshipped
Base types, helpers, logging, config, errors.
- protocolshipped
Canonical wire types, generated Rust ↔ TypeScript via ts-rs.
- genesis-uishipped
The component framework: tokens, theme engine, Tailwind preset.
- desktopshipped
Tauri app: workspace, identity, settings, local messaging.
- studioshipped
GSpec Studio — in-browser spec validation.
- pluginsshipped
Plugin SDK: manifest + capability model.
- aishipped
Agent & tool contracts.
The pieces
GSpec
The Genesis Specification: a versioned contract (YAML modules + JSON Schema) that is the single source of truth. Everything else is generated or validated from it.
Bootstrap
The compiler. It parses GSpec, validates every module structurally, builds an in-memory IR, and generates ecosystem artifacts. A Golden-IR contract test guarantees the output never drifts.
Release Tools
A CLI + GitHub Actions that turn a published GitHub Release into a machine-readable releases manifest the website reads.
@lynxdock/shared
Foundational TypeScript: types, constants, helpers, logging, config, and error types every package builds on.
@lynxdock/protocol
The canonical wire contracts. Types are defined once in Rust and generated to TypeScript with ts-rs, so the client and server can never drift apart. CI fails if the generated output is stale.
@lynxdock/gspec
A framework-agnostic parser/validator/IR builder for the specification, with an fs-free core that also runs in the browser and a CLI for the terminal.
@lynxdock/genesis-ui
LynxDock's component framework — design tokens, a runtime theme engine, a Tailwind preset, and a growing set of accessible components shared across every surface.
Desktop
A Tauri application: a Rust core (identity, workspace, and messaging storage) with a React + Genesis UI front-end. Today it ships local workspace, identity, settings, and local messaging.
Studio
The engineering environment, including GSpec Studio — validate a specification entirely in the browser using the fs-free gspec core.
Plugins & AI
A plugin SDK (manifest + capability model) and AI tool contracts — the extension surfaces the platform will grow into.
Generated beats hand-written.
Wire types are generated from Rust. Website data is generated from the spec. The pattern is the same everywhere: define it once, generate the rest, and let the tests hold the line.