Skip to content

Architecture

Understand Aster's product surfaces and the runtime underneath them.

Product surfaces

Aster has three user-facing surfaces in this repo:

  • products/desktop is the Electron app shell.
  • products/web is the browser-hosted product UI.
  • products/docs is the public docs site.

The desktop and web apps both host the shared renderer from packages/app. They are product surfaces, not separate runtimes.

Runtime boundary

The active product runtime is @aster/distro in packages/distro. Distro assembles the default Aster product graph and starts it through the Gate framework in @aster/gate/node.

products/web needs runtime bootstrap, gateway proxying, and shared application state with @aster/app. products/desktop packages the same product model for the desktop shell. products/docs does not boot the product runtime; it builds stable content, search, and generated references.

Why the docs are separate

The docs site is its own Astro + Starlight surface because docs have different requirements from the app:

  • isolated build tooling
  • stable content paths
  • generated reference artifacts in the built output
  • no risk of coupling docs routing to product runtime state

What remains connected

The docs site still reuses Aster branding and still documents the same runtime. The split is about delivery and maintenance, not about creating a second product.

When app behavior changes, the docs should be checked against Distro, Gate, Spaces, and the generated SDK rather than against deprecated Seed-era code.