Frontend Pages & Routes
Last Verified: December 25, 2025
Framework: React 18 + TypeScript + React Router 6
Route Configuration
Routes defined in /frontend/src/App.tsx with:
- Auth guards via
PrivateRoute component
- Public routes for auth pages
- Nested layouts with sidebar
Public Routes (No Auth Required)
| Route |
Component |
Description |
/login |
LoginPage |
User login |
/register |
RegisterPage |
New account |
/forgot-password |
ForgotPasswordPage |
Request reset |
/reset-password/:token |
ResetPasswordPage |
Set new password |
/verify-email/:token |
VerifyEmailPage |
Email verification |
Dashboard Routes
| Route |
Component |
Module |
Description |
/ |
Dashboard |
- |
Main dashboard |
/dashboard |
Dashboard |
- |
Main dashboard (alias) |
Planner Routes
| Route |
Component |
Module |
Description |
/planner |
PlannerPage |
Planner |
Keyword management |
/planner/keywords |
KeywordsPage |
Planner |
Keywords list |
/planner/clusters |
ClustersPage |
Planner |
Cluster view |
/planner/ideas |
ContentIdeasPage |
Planner |
Content ideas |
Writer Routes
| Route |
Component |
Module |
Description |
/writer |
WriterPage |
Writer |
Task management |
/writer/tasks |
TasksPage |
Writer |
Task list |
/writer/content |
ContentListPage |
Writer |
Content list |
/writer/content/:id |
ContentEditorPage |
Writer |
Edit content |
Automation Routes
| Route |
Component |
Module |
Description |
/automation |
AutomationPage |
Automation |
Pipeline view |
/automation/config |
AutomationConfigPage |
Automation |
Configuration |
/automation/logs |
AutomationLogsPage |
Automation |
Activity logs |
Linker Routes
| Route |
Component |
Module |
Description |
/linker |
LinkerPage |
Linker |
Internal linking (inactive) |
Optimizer Routes
| Route |
Component |
Module |
Description |
/optimizer |
OptimizerPage |
Optimizer |
SEO optimization (inactive) |
Settings Routes
| Route |
Component |
Description |
/settings |
SettingsPage |
Settings index |
/settings/sites |
SitesSettingsPage |
Site management |
/settings/sites/:id |
SiteDetailPage |
Site details |
/settings/sectors |
SectorsSettingsPage |
Sector management |
/settings/users |
UsersSettingsPage |
User management |
/settings/integrations |
IntegrationsSettingsPage |
Integration setup |
/settings/integrations/:id |
IntegrationDetailPage |
Integration details |
/settings/prompts |
PromptsSettingsPage |
AI prompts |
/settings/modules |
ModulesSettingsPage |
Module enable/disable |
/settings/api-keys |
APIKeysSettingsPage |
AI API keys |
/settings/billing |
BillingSettingsPage |
Credit/billing |
Profile Routes
| Route |
Component |
Description |
/profile |
ProfilePage |
User profile |
/profile/account |
AccountPage |
Account settings |
/profile/security |
SecurityPage |
Password/2FA |
Page Components Location
Route Guards
PrivateRoute Component
Module-Based Visibility
Sidebar items hidden when module disabled:
- Controlled by
moduleStore.isModuleEnabled()
- Does NOT block direct URL access (pending implementation)
Navigation Structure
Main Sidebar (AppSidebar.tsx)
Layout Components
| Component |
Location |
Purpose |
AppLayout |
/layouts/AppLayout.tsx |
Main app wrapper |
AppSidebar |
/components/sidebar/AppSidebar.tsx |
Navigation sidebar |
AppHeader |
/components/header/AppHeader.tsx |
Top navigation |
PageHeader |
/components/common/PageHeader.tsx |
Page title section |
ContentContainer |
/components/common/ContentContainer.tsx |
Content wrapper |
State Context
All routes have access to:
useAuthStore() - User/account info
useSiteStore() - Current site selection
useSectorStore() - Current sector selection
useModuleStore() - Module enable states
Planned Changes
| Item |
Description |
Priority |
| Route-level guards |
Block disabled module routes, not just hide sidebar |
High |
| Breadcrumbs |
Add breadcrumb navigation |
Medium |
| Route analytics |
Track page views |
Low |