Shared runtime, starter-owned shell
The admin is split into two layers on purpose:- The admin runtime is framework-owned. It provides shared providers, an auth-aware admin context, locale and timezone runtime, and base layout primitives. This lives in the common admin packages so it is not reimplemented in every app.
- The admin shell is starter-owned. Your app composes the final layout, navigation defaults, and route composition on top of the shared runtime.
Extension points
The admin is extensible through explicit extension points rather than ad hoc patching. Each domain module contributes its admin surface, and the framework assembles them. The CLI generates the wiring from yourvoyant.config.ts manifest:
voyant admin generate --check to verify the generated files are in sync without rewriting them, which is useful in CI.
Localization
The admin supports its own localization for the operator interface. This is kept separate from business-content translation: translating the admin UI for your staff is a different concern from translating customer-facing catalog content, and the two do not share a pipeline.Packages
The shared admin shell lives in@voyant-travel/admin, with @voyant-travel/admin-react and the per-domain -react packages contributing the views. Cross-cutting UI primitives live in @voyant-travel/ui.
Next steps
Modules
The domain modules that contribute admin surfaces.
Storefront
The customer-facing counterpart.