20 KiB
Navigation Refactoring Plan
Date: January 17, 2026
Objective: Restructure sidebar navigation to better organize Publisher and Automation features
Current Structure
DASHBOARD (standalone)
SETUP
├── Setup Wizard
├── Sites
├── Keyword Library
└── Thinker (admin only)
├── Prompts
└── Author Profiles
WORKFLOW
├── Planner
│ ├── Keywords
│ ├── Clusters
│ └── Ideas
├── Writer
│ ├── Content Queue
│ ├── Content Drafts
│ ├── Content Images
│ ├── Content Review
│ └── Content Approved
├── Automation (single page)
└── Content Calendar (single page)
ACCOUNT
├── Notifications
├── Account Settings
│ ├── Account
│ ├── Profile
│ └── Team
├── Plans & Billing
├── Usage
└── AI Models (admin only)
HELP
└── Help & Docs
New Structure (UPDATED v2)
DASHBOARD (standalone)
SETUP
├── Setup Wizard
├── Sites
├── Keyword Library
└── Thinker (admin only)
├── Prompts
└── Author Profiles
WORKFLOW
├── Planner
│ ├── Keywords
│ ├── Clusters
│ └── Ideas
└── Writer
├── Content Queue
├── Content Drafts
└── Content Images
PUBLISHER (NEW DROPDOWN)
├── Content Review
├── Publish / Schedule (formerly "Content Approved")
├── Publish Settings (moved from Sites Settings Publishing tab + works with automation)
└── Content Calendar
AUTOMATION (NEW DROPDOWN)
├── Overview (NEW - comprehensive dashboard with metrics, costing, run history)
├── Pipeline Settings (new page from ConfigModal - 7 stage toggles + batch config)
└── Run Now (simplified - only stage cards + run controls)
ACCOUNT (CONSOLIDATED)
├── Account Settings (single page, multiple cards: Account Info, Profile, Team)
├── Plans & Billing
├── Usage
└── AI Models (admin only)
HELP
├── Notifications (moved from ACCOUNT)
└── Help & Docs
Key Changes from v1:
- "Publish Settings" moved to PUBLISHER section (better fit - used by both manual publish and automation)
- "Status" renamed to "Overview" (clearer purpose - comprehensive automation dashboard)
- "Automation Settings" renamed to "Pipeline Settings" (more descriptive of 7-stage configuration)
- "AUTOMATION & SCHEDULING" simplified to "AUTOMATION" (shorter, clearer)
- "Overview" is new comprehensive page similar to site dashboard and homepage
Changes Required (UPDATED)
1. AppSidebar.tsx
- Add new "PUBLISHER" section after WORKFLOW
- Add new "AUTOMATION & SCHEDULING" dropdown section after PUBLISHER
- Move "Content Review" from Writer to Publisher
- Rename "Content Approved" to "Publish / Schedule" and move to Publisher
- Move "Content Calendar" to Publisher dropdown
- Create new Automation & Scheduling dropdown with 3 items:
- "Publish/Schedule Settings" (new page)
- "Automation Settings" (new page from modal)
- "Run Now" (renamed from Automation)
- Consolidate Account Settings: Remove dropdown, make single page
- Move Notifications: From ACCOUNT to HELP section
2. App.tsx Routes
- Add route:
/automation→ redirect to/automation/run-now - Add route:
/automation/run-now→ AutomationPage.tsx (rename from /automation) - Add route:
/automation/settings→ new AutomationSettings.tsx page - Add route:
/automation/publishing-settings→ new PublishingSettingsPage.tsx - Update route:
/account/settings→ consolidated AccountSettings.tsx (no sub-routes) - Remove routes:
/account/settings/profile,/account/settings/team(consolidated) - Keep existing Writer routes (Content Review and Approved stay as-is)
- Keep existing Publisher route (Content Calendar stays as-is)
3. New Page: PublishingSettingsPage.tsx
- Extract Publishing tab content from Sites/Settings.tsx
- Site Awareness: Use
SingleSiteSelectorfrom AppHeader (like Automation) - Gets site from
useSiteStore().activeSite(NO URL param) - Show Publishing Settings form:
- Automation toggles (Auto-Approval, Auto-Publish)
- Limits (Daily, Weekly, Monthly)
- Schedule (Publishing Days, Time Slots, Timezone)
- Save button at bottom
- Breadcrumb: "Automation / Publish Settings"
- Route:
/automation/publishing-settings
4. New Page: AutomationSettings.tsx
- Extract ConfigModal content to standalone page
- Use same layout as other settings pages
- Show AutomationConfig form fields
- Include all 7 stage toggle switches
- Include batch sizes, delays, and schedule settings
- Save button at bottom
- Breadcrumb: "Automation / Settings"
- Route:
/automation/settings
5. Update AccountSettings.tsx (Consolidation)
- Merge Account, Profile, and Team into single page
- Use card-based layout with 3 cards in rows:
- Account Info Card: Account name, timezone, plan level
- Profile Card: Name, email, avatar, bio
- Team Card: Team members list with roles
- Remove tab navigation (no more sub-routes)
- Single route:
/account/settings - Breadcrumb: "Account / Settings"
6. Update Sites/Settings.tsx
- Remove "Publishing" tab completely
- Keep only: General, Integrations, AI Settings tabs
- Update tab navigation to exclude Publishing
- Remove all Publishing Settings form code (moved to new page)
7. Site Awareness Analysis (UPDATED)
Current Implementation:
-
Automation Pages: Use
SingleSiteSelectorfrom AppHeader- Gets site from
useSiteStore().activeSite - No URL parameter needed
- Header shows site selector
- Gets site from
-
Publishing Tab (in Site Settings): Uses URL parameter + site selector
- Gets site from URL:
/sites/:id/settings - Also has
SingleSiteSelectorin header for switching - Tab content within SiteSettings.tsx
- ISSUE: Changing site selector changes all sites' settings (bug)
- Gets site from URL:
-
Content Review & Approved Pages: Use
SiteAndSectorSelector- Gets site AND sector from store
- Different selector component than automation
New Site Awareness Strategy:
Pages Moving to Automation & Scheduling:
-
Publishing Settings (
/automation/publishing-settings)- CHANGE: From URL-based (
/sites/:id/settings) to store-based - Use
SingleSiteSelectorin header (like Automation Run Now) - Gets site from
useSiteStore().activeSite - BENEFIT: Fixes the bug where changing site in selector affected all sites
- API call:
fetchAPI(\/v1/integration/sites/${activeSite.id}/publishing-settings/`)`
- CHANGE: From URL-based (
-
Automation Settings (
/automation/settings)- Use
SingleSiteSelectorin header (same as Run Now) - Gets site from
useSiteStore().activeSite - API call:
automationService.getConfig(activeSite.id)
- Use
-
Automation Run Now (
/automation/run-now)- NO CHANGE: Already uses
SingleSiteSelector - Gets site from
useSiteStore().activeSite
- NO CHANGE: Already uses
Pages Staying in Current Location:
- Content Review (
/writer/review) - keepsSiteAndSectorSelector - Publish/Schedule (
/writer/approved) - keepsSiteAndSectorSelector - Content Calendar (
/publisher/content-calendar) - keepsSingleSiteSelector
Summary of Site Selector Usage:
SingleSiteSelector: Automation pages, Content CalendarSiteAndSectorSelector: Writer pages (Review, Approved)- No selector: Account pages (no site context)
Revised Plan (UPDATED)
What Actually Moves:
-
Publishing Settings Tab → PublishingSettingsPage.tsx
- Extract entire Publishing tab from
/sites/:id/settings - New route:
/automation/publishing-settings - Change from URL-based to store-based site awareness
- FIXES BUG: Site selector will now only affect current view
- Includes: Auto-Approval, Auto-Publish toggles, Limits, Schedule settings
- Extract entire Publishing tab from
-
ConfigModal → AutomationSettings.tsx
- Extract modal content from AutomationPage
- New route:
/automation/settings - Store-based site awareness (like Run Now page)
- Includes: 7 stage toggles, batch sizes, delays, schedule time
-
Account Settings Pages → Consolidated AccountSettings.tsx
- Merge 3 pages (Account, Profile, Team) into 1
- Remove sub-routes and dropdown
- Use card-based layout (3 cards total)
- Single route:
/account/settings
-
Notifications Menu Item
- Move from ACCOUNT section to HELP section
- No page changes, just sidebar reorganization
What Gets Reorganized in Sidebar:
New "PUBLISHER" Section:
- Content Review (from Writer)
- Publish / Schedule (from Writer, renamed from "Content Approved")
- Content Calendar (from standalone)
New "AUTOMATION & SCHEDULING" Section:
- Publish/Schedule Settings (new page from Sites Settings Publishing tab)
- Automation Settings (new page from ConfigModal)
- Run Now (renamed from "Automation")
Updated "ACCOUNT" Section:
- Account Settings (consolidated, no dropdown)
- Plans & Billing
- Usage
- AI Models (admin only)
Updated "HELP" Section:
- Notifications (moved from ACCOUNT)
- Help & Docs
Implementation Steps (UPDATED)
Step 1: Create PublishingSettingsPage.tsx
// frontend/src/pages/Automation/PublishingSettingsPage.tsx
// Extract Publishing tab content from Sites/Settings.tsx (lines ~1000-1200)
// Change from URL-based siteId to store-based activeSite
// Use activeSite from useSiteStore()
// Breadcrumb: "Automation / Publish Settings"
// Include: Automation toggles, Limits cards, Schedule card
Step 2: Create AutomationSettings.tsx
// frontend/src/pages/Automation/AutomationSettings.tsx
// Extract ConfigModal content
// Use activeSite from store
// Breadcrumb: "Automation / Settings"
// Include: 7 stage toggles, batch sizes, delays, schedule time
Step 3: Consolidate AccountSettings.tsx
// frontend/src/pages/account/AccountSettingsPage.tsx
// Merge Account, Profile, Team into single page
// Remove tab navigation
// Create 3-card layout in rows:
// - Account Info Card (account name, timezone, plan)
// - Profile Card (name, email, avatar, bio)
// - Team Card (members list with roles)
// Single route, no sub-routes
Step 4: Update Sites/Settings.tsx
- Remove "Publishing" tab from tabs array
- Remove PublishingSettings state and loading
- Remove loadPublishingSettings() function
- Remove savePublishingSettings() function
- Remove entire Publishing tab JSX (Automation, Limits, Schedule cards)
- Keep only: General, Integrations, AI Settings tabs
Step 5: Update AutomationPage.tsx
- Remove ConfigModal import and state
- Remove showConfigModal state
- Remove setShowConfigModal
- Remove "Configure" button from header
- Add "Settings" link/button that navigates to
/automation/settings - Keep all existing automation run functionality
Step 6: Update App.tsx Routes
// Add new Automation routes
<Route path="/automation" element={<Navigate to="/automation/run-now" replace />} />
<Route path="/automation/run-now" element={<AutomationPage />} />
<Route path="/automation/settings" element={<AutomationSettings />} />
<Route path="/automation/publishing-settings" element={<PublishingSettingsPage />} />
// Update Account Settings route (remove sub-routes)
<Route path="/account/settings" element={<AccountSettingsPage />} />
// Remove these:
// <Route path="/account/settings/profile" element={<AccountSettingsPage />} />
// <Route path="/account/settings/team" element={<AccountSettingsPage />} />
// Existing routes stay as-is
<Route path="/writer/review" element={<Review />} />
<Route path="/writer/approved" element={<Approved />} />
<Route path="/publisher/content-calendar" element={<ContentCalendar />} />
Step 7: Update AppSidebar.tsx
// Add Publisher section after WORKFLOW
{
label: "PUBLISHER",
items: [
{
icon: <CalendarIcon />,
name: "Publisher",
subItems: [
{ name: "Content Review", path: "/writer/review" },
{ name: "Publish / Schedule", path: "/writer/approved" },
{ name: "Content Calendar", path: "/publisher/content-calendar" },
],
},
],
},
// Add Automation & Scheduling section after Publisher
{
label: "AUTOMATION & SCHEDULING",
items: [
{
icon: <BoltIcon />,
name: "Automation",
subItems: [
{ name: "Publish/Schedule Settings", path: "/automation/publishing-settings" },
{ name: "Automation Settings", path: "/automation/settings" },
{ name: "Run Now", path: "/automation/run-now" },
],
},
],
},
// Update Account section - remove dropdown
{
label: "ACCOUNT",
items: [
{
icon: <UserCircleIcon />,
name: "Account Settings",
path: "/account/settings", // No subItems
},
{
icon: <DollarLineIcon />,
name: "Plans & Billing",
path: "/account/plans",
},
{
icon: <PieChartIcon />,
name: "Usage",
path: "/account/usage",
},
{
icon: <PlugInIcon />,
name: "AI Models",
path: "/settings/integration",
adminOnly: true,
},
],
},
// Update Help section - add Notifications
{
label: "HELP",
items: [
{
icon: <Bell />,
name: "Notifications",
path: "/account/notifications",
},
{
icon: <DocsIcon />,
name: "Help & Docs",
path: "/help",
},
],
},
Step 8: Update AppHeader.tsx
// Add new automation routes to SINGLE_SITE_ROUTES
const SINGLE_SITE_ROUTES = [
'/automation', // All automation pages
'/publisher', // Content Calendar page
'/account/content-settings', // Content settings and sub-pages
'/sites', // Site dashboard (matches /sites/21, etc.)
];
// Remove /account/settings from any site-aware routes (no site context needed)
Testing Checklist (UPDATED)
- Syntax error fixed in AutomationPage.tsx
- PublishingSettingsPage created and loads settings from activeSite
- PublishingSettingsPage: Site selector changes only current view (bug fixed)
- AutomationSettings page created and loads config
- AccountSettings page consolidated (3 cards in single page)
- Automation Run Now page works without ConfigModal
- Sites Settings page: Publishing tab removed
- Sidebar shows Publisher dropdown with 3 items
- Sidebar shows Automation & Scheduling dropdown with 3 items
- Sidebar shows Notifications in HELP section
- Sidebar shows Account Settings without dropdown
- Content Review accessible from Publisher menu
- Publish/Schedule accessible from Publisher menu
- Content Calendar accessible from Publisher menu
- Publish/Schedule Settings accessible from Automation menu
- Automation Settings accessible from Automation menu
- Automation Run Now accessible from Automation menu
- Account Settings shows all 3 sections in one page
- All pages retain correct site awareness
- No broken links or navigation issues
- Publishing Settings moved successfully from Sites Settings
Files to Modify (UPDATED)
CREATE NEW:
/data/app/igny8/frontend/src/pages/Automation/PublishingSettingsPage.tsx/data/app/igny8/frontend/src/pages/Automation/AutomationSettings.tsx
MODIFY:
/data/app/igny8/frontend/src/pages/Automation/AutomationPage.tsx(remove ConfigModal)/data/app/igny8/frontend/src/pages/Sites/Settings.tsx(remove Publishing tab)/data/app/igny8/frontend/src/pages/account/AccountSettingsPage.tsx(consolidate 3 pages)/data/app/igny8/frontend/src/App.tsx(update routes)/data/app/igny8/frontend/src/layout/AppSidebar.tsx(restructure menu)/data/app/igny8/frontend/src/layout/AppHeader.tsx(update route patterns)
Risk Assessment (UPDATED)
Low Risk:
- Adding new routes
- Adding sidebar sections
- Moving Notifications menu item
- Creating AutomationSettings page
Medium Risk:
- Removing ConfigModal from AutomationPage
- Updating navigation structure
- Consolidating Account Settings pages
High Risk:
- Moving Publishing Settings from Site Settings to new page
- Changes site awareness from URL-based to store-based
- Affects how site selector behaves
- Multiple API calls to refactor
- Tab removal from Sites Settings
- Removing Publishing tab from Sites/Settings.tsx
- Need to ensure no broken references
- State management changes
Mitigation:
- Test Publishing Settings thoroughly with site selector
- Verify site selector only affects current view (not all sites)
- Keep backup of Sites/Settings.tsx Publishing tab code
- Test all Account Settings cards render correctly
- Ensure all navigation paths work
- Test site awareness on all moved pages
Rollback Plan (UPDATED)
If critical issues occur:
-
Publishing Settings Issues:
- Revert Sites/Settings.tsx to restore Publishing tab
- Delete PublishingSettingsPage.tsx
- Revert AppSidebar.tsx Automation & Scheduling section
- Remove
/automation/publishing-settingsroute from App.tsx
-
Account Settings Issues:
- Revert AccountSettingsPage.tsx to tabbed version
- Restore sub-routes in App.tsx
- Restore Account Settings dropdown in AppSidebar.tsx
-
Navigation Issues:
- Revert App.tsx routes to original
- Revert AppSidebar.tsx to original structure
- Re-add ConfigModal to AutomationPage
-
Complete Rollback:
- Revert all 8 modified files
- Delete 2 new files
- Restart frontend dev server
Additional Considerations
API Endpoints to Verify:
/v1/integration/sites/{site_id}/publishing-settings/(GET, PATCH)/v1/automation/config/(GET, PUT)- Account settings endpoints (verify no breaking changes)
UI/UX Improvements:
- Add "Settings" link in Automation Run Now page header
- Add navigation helper text in Publishing Settings
- Ensure breadcrumbs are consistent
- Add loading states for all new pages
Documentation Updates Needed:
- Update PAGES.md with new routes
- Update navigation screenshots
- Document site awareness changes
- Update CHANGELOG.md with v1.3.3 changes
Summary of Key Changes
1. Publishing Settings Liberation
- Problem Fixed: Site selector in
/sites/:id/settings?tab=publishingwas changing settings for ALL sites - Solution: Move to
/automation/publishing-settingswith store-based site awareness - Benefit: Site selector now only affects current view, not all sites globally
2. Automation Organization
- Before: Single "Automation" page with config modal
- After: Dropdown with 3 pages:
- Publish/Schedule Settings (publishing automation)
- Automation Settings (pipeline config)
- Run Now (manual execution)
3. Publisher Centralization
- Concept: Group all publishing-related pages together
- Pages: Content Review, Publish/Schedule, Content Calendar
- Benefit: Clearer workflow from review → approve → schedule → publish
4. Account Simplification
- Before: 3 separate pages (Account, Profile, Team) with dropdown
- After: 1 consolidated page with 3 cards
- Benefit: Faster access, less navigation overhead
5. Notifications Relocation
- Move: From ACCOUNT to HELP section
- Reasoning: Notifications are more of a communication/help tool than account management
Implementation Priority
Phase 1 (Critical - Fix Publishing Settings Bug):
- Create PublishingSettingsPage.tsx
- Remove Publishing tab from Sites/Settings.tsx
- Update routes in App.tsx
- Update sidebar with Automation & Scheduling section
- Test site selector behavior
Phase 2 (Important - Automation Organization):
- Create AutomationSettings.tsx
- Update AutomationPage.tsx (remove modal)
- Update routes and sidebar
- Test all automation pages
Phase 3 (Enhancement - Account Consolidation):
- Update AccountSettingsPage.tsx (merge 3 pages)
- Remove sub-routes
- Update sidebar (remove dropdown)
- Test all account functionality
Phase 4 (Polish - Navigation Refinement):
- Move Notifications to HELP
- Add Publisher dropdown
- Test complete navigation flow
- Update documentation
Ready to Implement?
Review Checklist:
- Plan reviewed and updated
- Site awareness strategy clarified
- Risk assessment complete
- Rollback plan documented
- Awaiting approval to begin implementation
Estimated Implementation Time:
- Phase 1: 2-3 hours
- Phase 2: 1-2 hours
- Phase 3: 1-2 hours
- Phase 4: 30 minutes
- Total: 5-8 hours