Skip to content
Version 2Active developmentInfrastructure completeDesktop application under construction
How it's built

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.

Infrastructure (V1)
  1. GSpecshipped

    The Genesis Specification — one versioned source of truth in YAML + JSON Schema.

  2. Bootstrapshipped

    The compiler: parse → validate → IR → generate ecosystem artifacts.

  3. Release Toolsshipped

    Turns a GitHub release into a signed releases manifest.

  4. Websiteshipped

    This static site, consuming generated data.

Product monorepo (V2)
  1. sharedshipped

    Base types, helpers, logging, config, errors.

  2. protocolshipped

    Canonical wire types, generated Rust ↔ TypeScript via ts-rs.

  3. genesis-uishipped

    The component framework: tokens, theme engine, Tailwind preset.

  4. desktopshipped

    Tauri app: workspace, identity, settings, local messaging.

  5. studioshipped

    GSpec Studio — in-browser spec validation.

  6. pluginsshipped

    Plugin SDK: manifest + capability model.

  7. 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.

One source of truth

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.