Dashboard overview

The operator workspace at /dashboard/platform, its pages, and how they are grouped.

Operators work under /dashboard/platform/*. Screens live in features/platform/<slice>, and the sidebar groups come from features/platform/lib/navigation.ts. The generic Keystone list pages (/dashboard/<listKey>) remain for lists without a dedicated screen such as User, Role, PaymentEvent, ChangelogEntry, and IntegrationRecipe; many of those are read-only because raw lists deny direct writes.

Pages

PageRouteGuide
Orders/dashboard/platform/ordersOrders
Store/dashboard/platform/storeStore settings
Products/dashboard/platform/catalogCatalog
Components/dashboard/platform/componentsCatalog
Design systems/dashboard/platform/design-systemsDesign systems
Studio/dashboard/platform/studioStudio
Releases/dashboard/platform/releasesReleases
Quality gates/dashboard/platform/qualityQuality gates
Access/dashboard/platform/accessAccess and keys
Payments/dashboard/platform/paymentsPayments and refunds
Refunds/dashboard/platform/refundsPayments and refunds
Payment providers/dashboard/platform/payment-providersPayment providers
API keys/dashboard/platform/api-keysAccess and keys
Audit and outbox/dashboard/platform/auditAudit

/dashboard/platform/settings redirects to Store, /dashboard/platform/registry redirects to Products, and /dashboard/brand-settings/* redirects to Store.

Other dashboard routes

/dashboard/init (first admin), /signin, /signup, /reset, /no-access.

Onboarding

Users with canManageOnboarding see onboarding cards in the sidebar. The dialog asks for studio name, brand mark, accent hue, email, website, tagline, and description, then calls runUIKitOnboarding(template, brand). It needs canManageOnboarding and canManageProducts.

  • full: brand settings, the "Studio Design System" with tokens, eight products (free: Status Badge, Copy Button, Stat Card, Empty State; paid: Pricing Table, Dusk Launch Kit, Mist Dashboard Kit, Quartz Checkout Kit), and Stripe, PayPal, and Manual provider records.
  • minimal: brand settings, the design system, Status Badge, Pricing Table, Stripe, and Manual.

Each seeded product gets a release that is submitted, approved, and published, so it ends stable. The run is a single serializable transaction. Running it again adds missing records and does not overwrite tokens you edited. Replace the seeded products with your own before launch.

List screens

Platform lists share one layout: status tabs with counts, a search box, sort and filter controls, and pagination from URL search params.

AI assistant

The dashboard chat sends requests to /api/completion, which uses OpenRouter and the MCP tools described on the overview.

On this page