The entire application shell is powered by the platform blueprint. This guide explains how to extend it safely.
src/app/config/platformBlueprint.tsx
— master blueprint containing public routes, workspaces, modules, quick actions and support links.src/app/config/pageRegistry.tsx
— lazy loader that resolves page names to components under src/pages
.src/app/config/types.ts
— shared TypeScript interfaces for routes, modules, navigation actions and workspaces.lucide-react
(optional).loadPage("ComponentName")
helper for each route. The component must live at src/pages/ComponentName.tsx
.ModuleDefinition
with:
id
— stable identifier used in routing metadata.title
, description
, summary
— used by the shell.category
— align with the workspace (e.g. mission-control
).routes
— array of route definitions (path + component + meta).quickLinks
and spotlight
arrays to highlight key actions.workspaces
array.The sidebar, command palette and router will automatically surface the new module.
WorkspaceDefinition
with id
, label
, headline
, defaultLanding
, optional metrics
and modules
.platformBlueprint.quickActions
if you want to promote workspace-specific flows.quickActions
appear in the header chips, command palette and sidebar.support
links show in the sidebar footer and the command palette.NavigationAction
items (id
, label
, href
, optional description
, icon
, badge
).meta.label
is used everywhere (sidebar, command palette, breadcrumbs).meta.description
appears in search results.meta.badge
surfaces status such as New
, Beta
, Action
.meta.workspaceId
and meta.moduleId
automatically so telemetry can reference context if needed.The selected workspace is stored in localStorage
under asuru:workspace
. Remove the key to reset the shell to the default workspace.
npm run lint
and npm run build
to ensure TypeScript and Vite agree with your changes.⌘/Ctrl + K
).