Architecture
Understand Aster's product surfaces and the runtime underneath them.
Product surfaces
Aster has three user-facing surfaces in this repo:
products/desktopis the Electron app shell.products/webis the browser-hosted product UI.products/docsis 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.