Frontend Pages & Routes
Last Verified: December 25, 2025
Version: 1.1.0
Framework: React 19 + TypeScript + React Router 6 + Vite
Route Configuration
Routes defined in /frontend/src/App.tsx:
PrivateRoute - Requires authentication
AdminRoute - Requires admin/staff role
- Nested layouts with
AppLayout (sidebar + header)
Public Routes (No Auth Required)
| Route |
File |
Description |
/login |
AuthPages/SignIn.tsx |
User login |
/register |
AuthPages/SignUp.tsx |
New account registration |
/forgot-password |
AuthPages/ForgotPassword.tsx |
Request password reset |
/reset-password/:token |
AuthPages/ResetPassword.tsx |
Set new password |
/verify-email/:token |
AuthPages/VerifyEmail.tsx |
Email verification |
Dashboard
| Route |
File |
Description |
/ |
Dashboard/Home.tsx |
Main dashboard with workflow pipeline, metrics, quick actions |
SETUP Routes
Add Keywords
| Route |
File |
Description |
/setup/add-keywords |
Setup/AddKeywords.tsx |
Browse/add seed keywords from global database |
Content Settings
| Route |
File |
Description |
/account/content-settings |
account/ContentSettingsPage.tsx |
3 tabs: Content Generation, Publishing, Image Settings |
Sites
| Route |
File |
Description |
/sites |
Sites/List.tsx |
Site listing with filters |
/sites/:id/dashboard |
Sites/SiteDashboard.tsx |
Individual site overview |
/sites/:id/settings |
Sites/SiteSettings.tsx |
Site settings (General, Integrations, Content Types) |
/sites/:id/content |
Sites/SiteContent.tsx |
Site content management |
Thinker (Admin Only)
| Route |
File |
Description |
/thinker/prompts |
Thinker/Prompts.tsx |
AI prompt template management |
/thinker/author-profiles |
Thinker/AuthorProfiles.tsx |
Author profile CRUD |
/thinker/strategies |
Thinker/Strategies.tsx |
Coming Soon placeholder |
/thinker/image-testing |
Thinker/ImageTesting.tsx |
Coming Soon placeholder |
WORKFLOW Routes
Planner
| Route |
File |
Description |
Tab |
/planner |
→ /planner/keywords |
Redirect |
- |
/planner/keywords |
Planner/Keywords.tsx |
Keyword management, bulk actions |
Keywords |
/planner/clusters |
Planner/Clusters.tsx |
Cluster listing, AI clustering |
Clusters |
/planner/clusters/:id |
Planner/ClusterView.tsx |
Individual cluster view |
- |
/planner/ideas |
Planner/Ideas.tsx |
Content ideas, queue to writer |
Ideas |
/planner/keyword-opportunities |
Planner/KeywordOpportunities.tsx |
Seed keyword discovery (hidden) |
- |
Writer
| Route |
File |
Description |
Tab |
/writer |
→ /writer/tasks |
Redirect |
- |
/writer/tasks |
Writer/Tasks.tsx |
Task queue, content generation |
Queue |
/writer/drafts |
Writer/Drafts.tsx |
Draft content listing |
Drafts |
/writer/content/:id |
Writer/ContentView.tsx |
Content detail view (read-only) |
- |
/writer/images |
Writer/Images.tsx |
Image management by content |
Images |
/writer/review |
Writer/Review.tsx |
Review queue (status=review) |
Review |
/writer/published |
Writer/Published.tsx |
Published content (status=published) |
Published |
Automation
| Route |
File |
Description |
/automation |
Automation/Dashboard.tsx |
7-stage pipeline, schedule config, run controls |
Linker (Optional Module)
| Route |
File |
Description |
/linker |
→ /linker/content |
Redirect |
/linker/content |
Linker/Content.tsx |
Content list for internal linking |
/linker/dashboard |
Linker/Dashboard.tsx |
Not exposed in navigation |
Optimizer (Optional Module)
| Route |
File |
Description |
/optimizer |
→ /optimizer/content |
Redirect |
/optimizer/content |
Optimizer/Content.tsx |
Content list with optimization scores |
/optimizer/preview/:id |
Optimizer/AnalysisPreview.tsx |
Not linked from UI |
/optimizer/dashboard |
Optimizer/Dashboard.tsx |
Not exposed in navigation |
ACCOUNT Routes
Account Settings
| Route |
File |
Description |
/account/settings |
account/AccountSettingsPage.tsx |
3 tabs: Account, Profile, Team |
Tab Structure:
- Account: Organization name, billing address, tax ID
- Profile: Name, email, phone, timezone, language, notifications, security
- Team: Team member list, invite, remove
Plans & Billing
| Route |
File |
Description |
/account/plans |
account/PlansAndBillingPage.tsx |
3 tabs: Plan, Upgrade, History |
Tab Structure:
- Current Plan: Plan details, features, credits, renewal date
- Upgrade Plan: Pricing table, plan comparison
- History: Invoices, payments, payment methods
Usage
| Route |
File |
Description |
/account/usage |
account/UsageAnalyticsPage.tsx |
3 tabs: Limits, Credit History, API Activity |
Tab Structure:
- Your Limits & Usage: Hard + monthly limits with usage bars
- Credit History: Transaction log
- API Activity: Call statistics (currently placeholder data)
AI Models (Admin Only)
| Route |
File |
Description |
/settings/integration |
Settings/IntegrationPage.tsx |
OpenAI, Runware config, image testing, site integrations |
HELP Routes
| Route |
File |
Description |
/help |
Help/HelpCenter.tsx |
Documentation, FAQ, support CTAs |
/help/docs |
Help/Documentation.tsx |
Placeholder |
/help/system-testing |
Help/SystemTesting.tsx |
Placeholder |
/help/function-testing |
Help/FunctionTesting.tsx |
Placeholder |
Legacy Redirects
These routes redirect to their new locations:
| Old Route |
Redirects To |
/team |
/account/settings |
/profile |
/account/settings |
/import-export |
/account/settings |
/billing/overview |
/account/plans |
/billing/credits |
/account/plans (separate page exists at Billing/CreditPurchase.tsx) |
/billing/history |
/account/plans |
/publishing |
/account/content-settings |
Page File Locations
Route Guards
PrivateRoute
- Checks
authStore.isAuthenticated
- Redirects to
/login if not authenticated
- Stores intended destination for post-login redirect
AdminRoute
- Requires
user.role === 'admin' or user.is_staff === true
- Used for: Thinker module, AI Models page
Module-Based Visibility
- Sidebar items hidden via
moduleStore.isModuleEnabled()
- Routes still accessible via direct URL (no server-side blocking)
Known Issues (from Audit)
- KeywordOpportunities not accessible from navigation
- Linker/Optimizer Dashboards exist but not exposed
- Help sub-pages are placeholders
- ContentView is read-only (no editing capability)
- Legacy redirects may cause confusion
See /PRE-LAUNCH-AUDIT.md for complete issue list.