Xentropy Docs
Architecture

Architecture overview

The subsystem map — apps, shared packages, and how they communicate.

Xentropy is a TypeScript monorepo split into applications and shared packages, with strict boundaries between them.

Applications

AppResponsibility
apps/webThe web console: public and authenticated surfaces, session handling
apps/apiThe service hub: identity, data integrations, charts, artifact services
apps/workerBackground compute with dedicated chart-worker and artifact-worker entry points
apps/artifact-mcpMCP endpoints for external agents and tooling

Shared packages

LayerPackagesContains
Contractsauth-contracts, data-contracts, chart-contracts, artifact-contracts, worker-contractsCanonical schemas: DataFrame, ChartSpec/Binding, artifact models, the worker job protocol
SDKsartifact-sdk, chart-sdkClient operations mapped to versioned REST paths
Engineschart-core, motion-coreValidation, compilation, timeline evaluation
Rendererschart-renderer, motion-rendererServer-side ECharts/Sharp and Remotion/Three.js pipelines
UI@repo/ui, @xentropy/themeComponent primitives and the semantic design tokens
Runtimeworker-runtimeWorker pools, leases, health monitors

@xentropy/* names domain libraries and contracts; @repo/* names shared UI and configuration.

The five subsystems

  1. Tabular data — typed DataFrames, owned datasets with versions, and the connection providers behind them.
  2. Charts — declarative specs, live/snapshot bindings, multi-format exports.
  3. Motion — scene graphs, timeline evaluation, deterministic rendering.
  4. Workspace — artifacts, revisions, outputs, shares, and publications.
  5. Async workers — the job protocol that moves heavy rendering off the request path.

How a request flows

Browser → apps/web (same-origin /api) → apps/api → contracts/engines
                                              ↘ async job → workers → outputs

Details: service boundaries and the worker protocol.

On this page