Skip to main content
The frontend is a React SPA with client-side routing, built-in authentication, and pre-built system pages for admin, settings, monitoring, and docs. You write page components and route definitions — the framework handles everything else.

App entry point

Every app extends BaseBrowserApp. For the task tracker, register routes for the dashboard, task list, and task detail pages:
Routes wrapped in ProtectedRoute require authentication — unauthenticated users are redirected to /login. The title and description fields are used by the build pipeline to generate pages.json, which gives the AI agent awareness of the app’s page structure.

Page components

The routes above reference TasksPage and TaskDetailPage — these are page components that live in src/web/pages/. Create the tasks list page:
And the task detail page:
Page components live in src/web/pages/ and correspond to routes registered in App.tsx. Reusable UI elements shared across pages (headers, cards, layouts) go in src/web/components/ instead.

Authentication

Use the useAuth hook to access user info and scopes:

UserMenu

Include the UserMenu component in your header. It provides the user avatar, organization switcher, admin links, and sign out:

System pages

systemRoutes() provides pre-built pages for login, admin, settings, monitoring, and docs — no app code required. For the full list, see the Routing reference. For RouteConfig properties, dynamic routes, programmatic navigation, and scope-based route protection, see the Routing reference.