Files
igny8/docs/audits/pages-audit.md
IGNY8 VPS (Salman) cb6eca4483 123
2026-03-23 07:57:12 +00:00

50 KiB

Pages Audit — Complete Inventory

Generated from comprehensive file-by-file review of frontend/src/pages/


Legend

Field Description
Component Export name
Purpose One-line description
Origin tailadmin-original · tailadmin-modified · custom · placeholder
UI Patterns Layout/interaction patterns used
Shared Components Imports from components/
Local Sub-components Page-specific child components (in components/ subdirs)
Pattern Duplication Repeated code that could be extracted
Template Which template system is used (if any)

1. Dashboard

Dashboard/Home.tsx (~300 lines)

Field Value
Component Home
Purpose Main dashboard with workflow pipeline, quick actions, analytics widgets, and site overview
Origin custom
UI Patterns Widget grid layout (3-col responsive), floating action button, site filter, AI period filter
Shared Components PageMeta, WorkflowGuide, Button, usePageContext
Local Sub-components NeedsAttentionBar, WorkflowPipelineWidget, QuickActionsWidget, AIOperationsWidget, RecentActivityWidget, ContentVelocityWidget, AutomationStatusWidget, SitesOverviewWidget, CreditsUsageWidget, AccountInfoWidget, KeywordLibraryStatsWidget (all from components/dashboard/)
Pattern Duplication None — all widgets properly extracted
Template None (custom widget grid)

2. Planner

Planner/Keywords.tsx (~800 lines)

Field Value
Component Keywords
Purpose Keyword management table with CRUD, filters, bulk actions, import/export, auto-clustering
Origin custom
UI Patterns Config-driven table, cascading filters from backend, debounced search, volume range dropdown with refs, header metrics from API totals, bulk action with progress modal
Shared Components PageHeader, StandardThreeWidgetFooter, FormModal, ProgressModal, useProgressModal, useToast, useSiteStore, useSectorStore, usePageSizeStore
Local Sub-components useKeywordsImportExport hook (from components/keywords-library/)
Pattern Duplication Cascading filter pattern repeated in Clusters/Ideas; header metrics calculation repeated in all Planner pages; volume range dropdown is inline (not extracted)
Template TablePageTemplate + createKeywordsPageConfig()

Planner/Clusters.tsx (~700 lines)

Field Value
Component Clusters
Purpose Cluster management table with CRUD, filters, bulk idea generation
Origin custom
UI Patterns Config-driven table, cascading filters, header metrics from API totals, StandardThreeWidgetFooter
Shared Components PageHeader, StandardThreeWidgetFooter, FormModal, ProgressModal, useToast, useSiteStore, useSectorStore, usePageSizeStore
Local Sub-components None
Pattern Duplication Near-identical to Keywords.tsx — cascading filter loading, header metrics pattern, footer widget pattern
Template TablePageTemplate + createClustersPageConfig()

Planner/ClusterDetail.tsx (~280 lines)

Field Value
Component ClusterDetail
Purpose Detail view for single cluster with tabs (articles, pages, products, taxonomy)
Origin custom
UI Patterns Param-driven detail view, inline tab implementation (Button-based with border-bottom), tabbed content types, breadcrumb back navigation
Shared Components PageMeta, PageHeader, Card, Button, Badge, useToast
Local Sub-components None
Pattern Duplication Custom inline tab implementation — does NOT use a shared Tab component; duplicates tab pattern seen in Sites/Settings
Template None (custom detail view)

Planner/Ideas.tsx (~700 lines)

Field Value
Component Ideas
Purpose Content ideas management with queue-to-writer bulk action
Origin custom
UI Patterns Config-driven table, cascading filters, header metrics, bulk queue action with progress modal
Shared Components PageHeader, StandardThreeWidgetFooter, FormModal, ProgressModal, useToast, useSiteStore, useSectorStore, usePageSizeStore
Local Sub-components None
Pattern Duplication Near-identical to Keywords/Clusters — same cascading filter + header metrics + footer pattern. Bug: sectors prop passed twice in pageConfig creation
Template TablePageTemplate + createIdeasPageConfig()

3. Writer

Writer/Content.tsx (~550 lines)

Field Value
Component Content (Writer)
Purpose Content drafts table (status='draft') with generate image prompts, optimize, send to optimizer, view on WordPress actions
Origin custom
UI Patterns Config-driven table, locked status filter, per-row AI actions, inline optimization via optimizerApi
Shared Components PageHeader, StandardThreeWidgetFooter, FormModal, ProgressModal, useToast, useSiteStore, useSectorStore, usePageSizeStore
Local Sub-components None
Pattern Duplication Same table page pattern as Planner pages
Template TablePageTemplate + createContentPageConfig()

Writer/Tasks.tsx (~500+ lines)

Field Value
Component Tasks
Purpose Writing tasks management with content generation and image generation bulk actions
Origin custom
UI Patterns Config-driven table, per-row content generation, bulk image generation
Shared Components PageHeader, StandardThreeWidgetFooter, FormModal, ProgressModal, useToast, useSiteStore, useSectorStore, usePageSizeStore
Local Sub-components None
Pattern Duplication Same table page pattern as Planner/Writer pages
Template TablePageTemplate + createTasksPageConfig()

Writer/Review.tsx (~500 lines)

Field Value
Component Review
Purpose Content review queue (status='review') with approve single/bulk actions
Origin custom
UI Patterns Config-driven table, approval workflow, event-based refresh
Shared Components PageHeader, StandardThreeWidgetFooter, FormModal, ProgressModal, useToast, useSiteStore, useSectorStore, usePageSizeStore
Local Sub-components None
Pattern Duplication Same table pattern. Note: Uses different event name ('site-changed' vs 'siteChanged' used elsewhere)
Template TablePageTemplate + createReviewPageConfig()

Writer/Approved.tsx (~550+ lines)

Field Value
Component Approved
Purpose Approved content ready for publishing with extensive publishing workflow (single/bulk publish, schedule, reschedule)
Origin custom
UI Patterns Config-driven table, multi-modal publishing workflow, schedule management
Shared Components PageHeader, StandardThreeWidgetFooter, FormModal, ProgressModal, useToast, useSiteStore, useSectorStore, usePageSizeStore
Local Sub-components PublishingProgressModal, BulkPublishingModal, PublishLimitModal, ScheduleContentModal, BulkScheduleModal, BulkSchedulePreviewModal, ErrorDetailsModal (from components/publishing/, components/BulkWordPressPublish/)
Pattern Duplication Base table pattern same; extensive modal system is specific to this page
Template TablePageTemplate + createApprovedPageConfig()

Writer/Images.tsx (~550+ lines)

Field Value
Component Images
Purpose Image management grouped by content (one row per content) with image generation queue
Origin custom
UI Patterns Config-driven table, client-side filtering/sorting/pagination (not server-side), image generation queue flow, settings pre-fetch
Shared Components PageHeader, StandardThreeWidgetFooter, FormModal, useToast, useSiteStore, useSectorStore
Local Sub-components ImageQueueModal, SingleRecordStatusUpdateModal (from components/)
Pattern Duplication Client-side filtering is an anomaly vs. other table pages that use server-side; base table pattern same
Template TablePageTemplate + createImagesPageConfig()

Writer/ContentView.tsx (~67 lines)

Field Value
Component ContentView
Purpose Individual content detail view (thin wrapper loading content by ID)
Origin custom
UI Patterns Param-driven detail view, loading state, error handling
Shared Components None directly (delegates to template)
Local Sub-components None
Pattern Duplication None
Template ContentViewTemplate

4. Publisher

Publisher/ContentCalendar.tsx (~550+ lines)

Field Value
Component ContentCalendar
Purpose Content scheduling with calendar and list views, drag-drop reordering and date assignment
Origin custom
UI Patterns Dual view (calendar grid + list), drag-drop (list reorder + calendar date drop), complex derived state via useMemo, ButtonGroup view toggle
Shared Components PageMeta, PageHeader, ComponentCard, Card, Button, IconButton, ButtonGroup, CalendarItemTooltip, ScheduleContentModal
Local Sub-components None (inline calendar grid rendering)
Pattern Duplication Calendar rendering is fully inline (~200+ lines); shares ScheduleContentModal with Approved.tsx
Template None (fully custom)

Publisher/PublishSettings.tsx (~500 lines)

Field Value
Component PublishSettings
Purpose Publishing automation, limits, and schedule configuration (3-card form layout)
Origin custom
UI Patterns 3-card form layout (Automation, Limits, Schedule), toggle switches, inline form validation
Shared Components PageMeta, PageHeader, Card, Button, IconButton, Label, InputField, Switch
Local Sub-components None
Pattern Duplication Settings form pattern similar to Sites/Settings and account/ContentSettingsPage
Template None (custom form layout)

5. Sites

Sites/List.tsx (~550+ lines)

Field Value
Component SitesList
Purpose Sites list with table/grid toggle, site CRUD, activation, deletion
Origin custom
UI Patterns Dual view (table + grid cards), ViewToggle, client-side filtering, inline deletion/toggle, WorkflowGuide
Shared Components PageMeta, PageHeader, Card, Button, Badge, Alert, Switch, InputField, Select, ViewToggle, WorkflowGuide, ConfirmDialog, SiteTypeBadge
Local Sub-components None
Pattern Duplication Table view uses TablePageTemplate; grid view is custom inline cards
Template TablePageTemplate (table view only) + custom grid view

Sites/Dashboard.tsx (~500 lines)

Field Value
Component SiteDashboard
Purpose Individual site dashboard with setup checklist, quick actions, analytics
Origin custom
UI Patterns Widget layout, setup checklist, quick action cards, stat widgets
Shared Components PageMeta, PageHeader, ComponentCard, SiteInfoBar, Card, Button
Local Sub-components SiteSetupChecklist, SiteConfigWidget, OperationsCostsWidget, CreditAvailabilityWidget (from components/sites/)
Pattern Duplication Widget grid similar to Dashboard/Home but site-specific
Template None (custom widget layout)

Sites/Settings.tsx (~1000+ lines)

Field Value
Component SiteSettings
Purpose Site settings with tabs (General, Automation, Integrations) — massive form
Origin custom
UI Patterns Tabbed form, SEO settings, industry/sector selection, AI settings, WordPress integration form
Shared Components PageMeta, PageHeader, Card, Button, InputField, Select, SelectDropdown, Checkbox, Radio, TextArea, Switch, SiteInfoBar
Local Sub-components AIAutomationSettings, WordPressIntegrationForm (from components/integration/, components/sites/)
Pattern Duplication Custom inline tab implementation (duplicates pattern in ClusterDetail); very large file that could be split into tab sub-components
Template None (custom tabbed form)

Sites/Content.tsx (~500 lines)

Field Value
Component SiteContent
Purpose Site-specific content manager with manual table and custom filters
Origin custom
UI Patterns Manual table (not TablePageTemplate), custom filter cards, manual pagination
Shared Components PageMeta, PageHeader, Card, Button, InputField, Select, SiteInfoBar
Local Sub-components None
Pattern Duplication Manual table implementation duplicates what TablePageTemplate provides; manual pagination duplicates template pagination
Template None (custom manual table)

Sites/ContentStructure.tsx (416 lines)

Field Value
Component ContentStructure
Purpose Content organized by clusters with keyword table and content list
Origin custom
UI Patterns Cluster selector dropdown, keyword table, content list, inline tables
Shared Components PageMeta, PageHeader, Card, Button, Badge, Select, SiteInfoBar
Local Sub-components None
Pattern Duplication Manual inline tables duplicate TablePageTemplate capabilities
Template None (custom cluster-based view)

Sites/PostEditor.tsx (672 lines)

Field Value
Component PostEditor
Purpose Full-featured post editor with SEO metadata, taxonomy, and content validation tabs
Origin custom
UI Patterns Tabbed editor (content, taxonomy, validation), form inputs, rich content editing
Shared Components PageMeta, PageHeader, Card, Button, form components, SiteInfoBar
Local Sub-components Content validation feature inline
Pattern Duplication Tab implementation likely duplicates other inline tab patterns
Template None (custom post editor)

Sites/PageManager.tsx (395 lines)

Field Value
Component PageManager
Purpose Drag-drop page reordering and management
Origin custom
UI Patterns Drag-and-drop with react-dnd + HTML5Backend, sortable list
Shared Components PageMeta, PageHeader, DndProvider, useDrag, useDrop
Local Sub-components None
Pattern Duplication Only page using react-dnd directly
Template None (custom drag-drop interface)

Sites/SyncDashboard.tsx (460 lines)

Field Value
Component SyncDashboard
Purpose WordPress sync health dashboard with sync status, mismatches, and logs
Origin custom
UI Patterns Status cards, sync action buttons, mismatch list, log viewer
Shared Components PageMeta, PageHeader, Card, Button, Badge
Local Sub-components None
Pattern Duplication None
Template None (custom dashboard)

Sites/PublishingQueue.tsx (441 lines)

Field Value
Component PublishingQueue
Purpose Scheduled content queue with list/calendar view (site-specific)
Origin custom
UI Patterns Dual view (list + calendar), similar to ContentCalendar but site-scoped
Shared Components PageMeta, PageHeader, Card, Button
Local Sub-components None
Pattern Duplication Duplicates much of Publisher/ContentCalendar.tsx but scoped to a single site
Template None (custom queue view)

Sites/AIAutomationSettings.tsx (929 lines)

Field Value
Component AIAutomationSettings
Purpose Unified AI & automation settings per site (per SETTINGS-CONSOLIDATION-PLAN)
Origin custom
UI Patterns Multi-section settings form, stage configuration, unified settings API
Shared Components Card, Button, Switch, InputField, Label, Select
Local Sub-components Uses unifiedSettings.api with UnifiedSiteSettings, StageConfig types
Pattern Duplication Large settings form pattern similar to Sites/Settings, Publisher/PublishSettings
Template None (custom settings form)

Sites/DeploymentPanel.tsx (43 lines)

Field Value
Component DeploymentPanel
Purpose DEPRECATED — Placeholder showing deprecation notice
Origin custom (deprecated)
UI Patterns Static notice card
Shared Components PageMeta, PageHeader, Card
Local Sub-components None
Pattern Duplication None
Template None

6. Automation

Automation/AutomationPage.tsx (~1156 lines)

Field Value
Component AutomationPage
Purpose Main automation dashboard — run/pause/config pipeline, live progress tracking, activity log, eligibility checks
Origin custom
UI Patterns 7-stage pipeline visualization, live polling progress, server time display, eligibility gating, stage color coding
Shared Components PageMeta, PageHeader, ComponentCard, DebugSiteSelector, Button, useToast, useSiteStore
Local Sub-components ActivityLog, CurrentProcessingCardV2, GlobalProgressBar (from components/Automation/)
Pattern Duplication None — highly specialized
Template None (custom automation dashboard)

Automation/AutomationOverview.tsx (269 lines)

Field Value
Component AutomationOverview
Purpose Production stats dashboard showing actual output metrics and meaningful run history
Origin custom
UI Patterns Quick action buttons with badge counts, production summary, run history list
Shared Components PageMeta, PageHeader, useToast, useSiteStore
Local Sub-components MeaningfulRunHistory, ProductionSummary (from components/Automation/DetailView/)
Pattern Duplication None
Template None (custom stats dashboard)

Automation/AutomationRunDetail.tsx (218 lines)

Field Value
Component AutomationRunDetail
Purpose Detailed view of a single automation run with stage breakdown, charts, and insights
Origin custom
UI Patterns Run summary card, 2-col layout (credit chart + stage accordion), insights panel, derived insights from data
Shared Components PageMeta, PageHeader, useToast, useSiteStore
Local Sub-components RunSummaryCard, StageAccordion, EfficiencyMetrics, InsightsPanel, CreditBreakdownChart (from components/Automation/DetailView/)
Pattern Duplication None
Template None (custom detail view)

Automation/PipelineSettings.tsx (399 lines)

Field Value
Component PipelineSettings
Purpose Configure 7-stage automation pipeline — per-stage enable/disable, batch sizes, delays
Origin custom
UI Patterns Multi-stage form with checkboxes and inputs per stage, save/cancel flow
Shared Components PageMeta, PageHeader, Card, Button, Checkbox, Select, InputField, useToast, useSiteStore
Local Sub-components None
Pattern Duplication Settings form pattern (similar to PublishSettings, Sites/Settings)
Template None (custom pipeline settings form)

7. Thinker

Thinker/Prompts.tsx (499 lines)

Field Value
Component Prompts
Purpose AI prompt library — manage/edit/reset prompt templates for all AI operations (clustering, ideas, content, images, site structure)
Origin custom
UI Patterns Grouped prompt editor cards (Planner, Writer, Image, Site Builder sections), save/reset per prompt, TextArea editors
Shared Components PageMeta, PageHeader, Button, TextArea, useToast
Local Sub-components None
Pattern Duplication Repeating card+TextArea+save/reset pattern for each prompt type — could extract a PromptEditorCard component
Template None (custom prompt editor layout)

Thinker/AuthorProfiles.tsx (160 lines)

Field Value
Component AuthorProfiles
Purpose CRUD for writing style profiles (name, tone, language)
Origin custom
UI Patterns Card grid, FormModal for create/edit, confirm-delete, CRUD API calls
Shared Components PageMeta, PageHeader, Card, Button, Badge, FormModal, useToast, usePageLoading
Local Sub-components None
Pattern Duplication FormModal CRUD pattern is clean and reusable
Template None (card grid + FormModal)

Thinker/ImageTesting.tsx (28 lines)

Field Value
Component ImageTesting
Purpose PLACEHOLDER — "Coming Soon" for image testing
Origin placeholder
UI Patterns Static placeholder card
Shared Components PageMeta, PageHeader, ComponentCard
Local Sub-components None
Pattern Duplication Same "Coming Soon" pattern as Profile, Strategies
Template None

Thinker/Profile.tsx (22 lines)

Field Value
Component Profile
Purpose PLACEHOLDER — "Coming Soon" for AI profile settings
Origin placeholder
UI Patterns Static placeholder card
Shared Components PageMeta, ComponentCard
Local Sub-components None
Pattern Duplication Same "Coming Soon" pattern as ImageTesting, Strategies
Template None

Thinker/Strategies.tsx (28 lines)

Field Value
Component Strategies
Purpose PLACEHOLDER — "Coming Soon" for content strategies
Origin placeholder
UI Patterns Static placeholder card
Shared Components PageMeta, PageHeader, ComponentCard
Local Sub-components None
Pattern Duplication Same "Coming Soon" pattern as ImageTesting, Profile
Template None

8. Optimizer

Optimizer/ContentSelector.tsx (303 lines)

Field Value
Component OptimizerContentSelector
Purpose Content list for selecting items to optimize — single/batch optimize with entry point selection
Origin custom
UI Patterns Manual table with checkboxes, client-side filtering, batch selection, entry-point dropdown, manual pagination
Shared Components PageMeta, PageHeader, ModuleNavigationTabs, Button, Select, Checkbox, useToast, useSectorStore, usePageSizeStore
Local Sub-components ContentFilter, SourceBadge, OptimizationScores (from components/content/, components/optimizer/)
Pattern Duplication Manual table with inline pagination — duplicates TablePageTemplate capability; pagination buttons duplicate pattern seen in Linker, Sites/Content
Template None (custom manual table)

Optimizer/AnalysisPreview.tsx (304 lines)

Field Value
Component AnalysisPreview
Purpose Preview optimization scores for a single content item without applying changes
Origin custom
UI Patterns Param-driven detail view, score cards, metadata coverage scorecards, recommended actions list
Shared Components PageMeta, PageHeader, useToast
Local Sub-components OptimizationScores (from components/optimizer/)
Pattern Duplication None
Template None (custom analysis view)

9. Linker

Linker/ContentList.tsx (237 lines)

Field Value
Component LinkerContentList
Purpose Content list for adding internal links — single/batch link processing
Origin custom
UI Patterns Manual table, per-row process button, batch processing, link results display, manual pagination
Shared Components PageMeta, PageHeader, ModuleNavigationTabs, Button, useToast, useSectorStore, usePageSizeStore, usePageLoading
Local Sub-components SourceBadge, LinkResults (from components/content/, components/linker/)
Pattern Duplication Manual table + inline pagination — same pattern as Optimizer/ContentSelector and Sites/Content
Template None (custom manual table)

10. Settings (Admin/Legacy)

Settings/Integration.tsx (~1028 lines)

Field Value
Component Integration
Purpose API integration management (OpenAI, Runware, GSC) — configure keys, test connections, image generation settings
Origin custom
UI Patterns Integration cards, validation cards, image generation/result cards, site integrations, FormModal for config
Shared Components PageMeta, IntegrationCard, ValidationCard, ImageGenerationCard, ImageResultCard, ImageServiceCard, SiteIntegrationsSection, Modal, FormModal, Button, Checkbox, Label, SelectDropdown, Alert, useToast
Local Sub-components Inline SVG icon components (OpenAIIcon, RunwareIcon, GSCIcon)
Pattern Duplication Complex integration management — unique
Template None (custom integration management)

Settings/Sites.tsx (~638 lines)

Field Value
Component Sites (Settings)
Purpose Admin site management — CRUD sites, manage sectors, toggle active sites
Origin custom
UI Patterns SiteCard grid, FormModal for create/edit, sector selector modal, confirm delete
Shared Components PageMeta, SiteCard, FormModal, ConfirmDialog, Button, Alert, Select, Checkbox, Badge, useToast
Local Sub-components Inline SiteIcon SVG
Pattern Duplication Overlaps with Sites/List.tsx — both manage sites with different UIs
Template None (card grid + modals)

Settings/WordPressIntegrationDebug.tsx (~655 lines)

Field Value
Component WordPressIntegrationDebug
Purpose WordPress integration health debugging — sync events, data validation, API status checks
Origin custom
UI Patterns Health status cards, sync event log, data validation table, debug toggle
Shared Components useSiteStore, useToast, icons
Local Sub-components None
Pattern Duplication Overlaps with Sites/SyncDashboard — both show WordPress sync health
Template None (custom debug interface)

Settings/CreditsAndBilling.tsx (~238 lines)

Field Value
Component CreditsAndBilling
Purpose Usage overview with credit balance and transaction history
Origin custom
UI Patterns Tab toggle (overview/transactions), metric cards, transaction table
Shared Components PageMeta, ComponentCard, EnhancedMetricCard, Button, Badge, useToast
Local Sub-components None
Pattern Duplication Duplicates functionality in account/UsageDashboardPage and Billing/Usage
Template None (custom billing view)

Settings/Plans.tsx (~218 lines)

Field Value
Component Plans
Purpose Display available subscription plans using PricingTable component
Origin custom
UI Patterns Pricing table display, plan feature extraction, URL-based plan preselection
Shared Components PageMeta, PricingTable1, useToast, usePageLoading, useAuthStore
Local Sub-components None
Pattern Duplication Plan display overlaps with account/PlansAndBillingPage
Template None (pricing table)

Settings/Publishing.tsx (~226 lines)

Field Value
Component Publishing
Purpose Publishing rules, auto-publish, sync settings (TODO: mostly placeholder)
Origin custom
UI Patterns Settings form with checkboxes, dropdowns, PublishingRules component
Shared Components PageMeta, Card, Button, Checkbox, Label, Input, Select, PublishingRules, useToast, usePageLoading
Local Sub-components None
Pattern Duplication Overlaps with Publisher/PublishSettings
Template None (custom settings form)

Settings/General.tsx (109 lines)

Field Value
Component GeneralSettings
Purpose App preferences (table records per page, default sort)
Origin custom
UI Patterns Simple settings form, settingsStore integration
Shared Components PageMeta, ComponentCard, Button, Label, InputField, Select, useSettingsStore, useToast
Local Sub-components None
Pattern Duplication None
Template None (ComponentCard form)

Settings/Industries.tsx (59 lines)

Field Value
Component Industries (Settings)
Purpose Admin industry template viewer (read-only card grid)
Origin custom
UI Patterns Card grid, badge for active status
Shared Components PageMeta, Card, Badge, useToast, usePageLoading
Local Sub-components None
Pattern Duplication Overlaps with Reference/Industries
Template None (card grid)

Settings/Subscriptions.tsx (94 lines)

Field Value
Component Subscriptions
Purpose Admin subscription list (table of account subscriptions)
Origin custom
UI Patterns Simple table in Card, status badges
Shared Components PageMeta, Card, Badge, useToast, usePageLoading
Local Sub-components None
Pattern Duplication None
Template None (simple table)

Settings/Users.tsx (79 lines)

Field Value
Component Users
Purpose Admin user list (table of account users)
Origin custom
UI Patterns Simple table in Card, role/status badges
Shared Components PageMeta, Card, Badge, useToast, usePageLoading
Local Sub-components None
Pattern Duplication None
Template None (simple table)

Settings/Account.tsx (43 lines)

Field Value
Component AccountSettings (Settings)
Purpose PLACEHOLDER — "coming soon" for account settings
Origin placeholder
UI Patterns Static placeholder
Shared Components PageMeta, Card, useToast, usePageLoading
Local Sub-components None
Pattern Duplication Functionality exists in account/AccountSettingsPage
Template None

Settings/System.tsx (43 lines)

Field Value
Component SystemSettings
Purpose PLACEHOLDER — "coming soon" for system settings
Origin placeholder
UI Patterns Static placeholder
Shared Components PageMeta, Card, useToast, usePageLoading
Local Sub-components None
Pattern Duplication None
Template None

11. Billing (Legacy)

Billing/Usage.tsx (170 lines)

Field Value
Component Usage
Purpose Credit usage overview with cost table and transaction history
Origin custom
UI Patterns Balance card, cost reference table, transaction list
Shared Components PageMeta, Card, Badge, useToast, usePageLoading
Local Sub-components None
Pattern Duplication Duplicates Settings/CreditsAndBilling and account/UsageDashboardPage
Template None

Billing/Credits.tsx (122 lines)

Field Value
Component Credits
Purpose Credit balance display with upgrade CTA
Origin custom
UI Patterns Balance cards, link to plans
Shared Components PageMeta, Card, Badge, Button, useToast, usePageLoading
Local Sub-components None
Pattern Duplication Overlaps with Usage page and account/UsageDashboardPage
Template None

Billing/Transactions.tsx (103 lines)

Field Value
Component Transactions
Purpose Credit transaction history table with pagination
Origin custom
UI Patterns Table with color-coded badges, pagination
Shared Components PageMeta, Card, Badge, useToast, usePageLoading
Local Sub-components None
Pattern Duplication Transaction table duplicated in Settings/CreditsAndBilling and Billing/Usage
Template None

12. Account (Current)

account/PlansAndBillingPage.tsx (~1822 lines)

Field Value
Component PlansAndBillingPage
Purpose Comprehensive billing dashboard — current plan, credit packages, invoices, payment methods, purchase flow
Origin custom
UI Patterns Multi-section dashboard, credit package cards, invoice downloads, payment method cards, purchase modals, portal integration
Shared Components PageMeta, PageHeader, Card, Badge, Button, Label, useToast, usePageLoading
Local Sub-components Inline SVG icons, portal-based purchase modal
Pattern Duplication Supersedes Settings/Plans, Settings/CreditsAndBilling, Billing/*; very large file that could be split
Template None (custom multi-section dashboard)

account/AccountSettingsPage.tsx (~979 lines)

Field Value
Component AccountSettingsPage
Purpose Account, profile, and team management — single scrollable page with all settings
Origin custom
UI Patterns Vertical form sections (Account, Profile, Team), invite/remove team members, change password, modal for invites
Shared Components PageMeta, PageHeader, ComponentCard, Card, Badge, Button, InputField, Select, Checkbox, Modal, useToast, useAuthStore, usePageLoading
Local Sub-components None
Pattern Duplication Supersedes Settings/Account placeholder
Template None (custom form sections)

account/UsageDashboardPage.tsx (~954 lines)

Field Value
Component UsageDashboardPage
Purpose Unified analytics dashboard — credit usage charts, operation breakdowns, plan limits, usage trends
Origin custom
UI Patterns Charts (react-apexcharts), stat cards, operation breakdown table, period selector, pagination
Shared Components PageMeta, PageHeader, Card, Badge, Button, SelectDropdown, Input, Pagination, useToast
Local Sub-components None (uses Chart from react-apexcharts)
Pattern Duplication Supersedes Billing/Usage, Billing/Credits, Settings/CreditsAndBilling; most comprehensive usage view
Template None (custom analytics dashboard)

account/ContentSettingsPage.tsx (~686 lines)

Field Value
Component ContentSettingsPage
Purpose Content generation, publishing, and image settings — 3-tab settings page
Origin custom
UI Patterns Tabbed form (Content, Publishing, Images), image generation settings with provider/model selectors
Shared Components PageMeta, PageHeader, Card, Button, SelectDropdown, Label, Checkbox, TextArea, useToast
Local Sub-components None
Pattern Duplication Publishing settings overlap with Publisher/PublishSettings; image settings overlap with Settings/Integration
Template None (tabbed settings form)

account/PurchaseCreditsPage.tsx (~429 lines)

Field Value
Component PurchaseCreditsPage
Purpose Credit package selection and payment flow — choose package, select payment method, purchase
Origin custom
UI Patterns Package selection cards, payment method selection, manual payment form, invoice display
Shared Components PageMeta, PageHeader, Button, InputField, TextArea, Label
Local Sub-components None
Pattern Duplication Purchase flow also exists within PlansAndBillingPage
Template None (custom purchase flow)

account/NotificationsPage.tsx (~428 lines)

Field Value
Component NotificationsPage
Purpose Notification center — list, filter, mark read, delete notifications
Origin custom
UI Patterns Filterable notification list, severity/type/read filters, bulk mark all read, individual delete
Shared Components PageMeta, PageHeader, Card, Button, Select, useNotificationStore, usePageLoading
Local Sub-components None
Pattern Duplication None
Template None (custom notification list)

account/UsageAnalyticsPage.tsx (~278 lines)

Field Value
Component UsageAnalyticsPage
Purpose Usage analytics with URL-driven tabs (limits, activity, insights, API)
Origin custom
UI Patterns URL-driven tab selection (path-based), period selector, billing panels
Shared Components PageMeta, PageHeader, Card, Badge, Button, useToast
Local Sub-components BillingUsagePanel, UsageLimitsPanel, CreditInsightsCharts (from components/billing/)
Pattern Duplication Overlaps with UsageDashboardPage — both show usage analytics with different approaches
Template None (tabbed analytics)

13. Setup

Setup/SetupWizard.tsx (46 lines)

Field Value
Component SetupWizard
Purpose Onboarding setup wizard — thin wrapper delegating to OnboardingWizard component
Origin custom
UI Patterns Wizard flow, complete/skip callbacks, page context integration
Shared Components PageMeta, OnboardingWizard, usePageContext
Local Sub-components None (all logic in OnboardingWizard)
Pattern Duplication None
Template None (delegated to OnboardingWizard)

Setup/IndustriesSectorsKeywords.tsx (~1583 lines)

Field Value
Component IndustriesSectorsKeywords
Purpose Keywords library — browse seed keywords by industry/sector, add to workflow, CSV import, smart suggestions
Origin custom
UI Patterns Sector metric grid, smart suggestions, sector card browsing, CSV import modal, bulk add with confirmation, TablePageTemplate for keyword table
Shared Components PageMeta, PageHeader, WorkflowGuide, Badge, Button, Modal, FileInput, Label, Input, Card, useToast, usePageLoading, useSiteStore, useSectorStore, usePageSizeStore
Local Sub-components SectorMetricGrid, SmartSuggestions, SectorCardsGrid, BulkAddConfirmation (from components/keywords-library/)
Pattern Duplication Very large file that mixes browsing, importing, and management; could be split
Template TablePageTemplate (for keyword browsing table)

14. AuthPages

AuthPages/SignIn.tsx (17 lines)

Field Value
Component SignIn
Purpose Sign-in page — thin wrapper composing AuthLayout + SignInForm
Origin tailadmin-modified
UI Patterns Auth layout with split-screen
Shared Components PageMeta, AuthLayout, SignInForm
Local Sub-components None
Pattern Duplication None
Template AuthLayout (shared auth template)

AuthPages/SignUp.tsx (~120 lines)

Field Value
Component SignUp
Purpose Registration page with plan selection and unified signup form
Origin tailadmin-modified
UI Patterns Plan pre-selection from URL, plan cards, auth layout
Shared Components PageMeta, SignUpFormUnified, GridShape
Local Sub-components None
Pattern Duplication Plan fetching logic duplicated from Settings/Plans
Template Custom layout (inline, not AuthLayout)

AuthPages/AuthPageLayout.tsx (87 lines)

Field Value
Component AuthLayout
Purpose Shared auth page layout — split-screen with branding panel and plan preview
Origin tailadmin-modified
UI Patterns Split-screen layout (form left, branding right), responsive collapse, plan preview card, theme toggler
Shared Components GridShape, ThemeTogglerTwo
Local Sub-components None
Pattern Duplication None — this IS the shared layout
Template N/A (this is a layout component)

AuthPages/ForgotPassword.tsx (177 lines)

Field Value
Component ForgotPassword
Purpose Request password reset email
Origin custom
UI Patterns Centered card form, success state transition, anti-enumeration (always shows success)
Shared Components PageMeta
Local Sub-components None
Pattern Duplication Standalone layout (doesn't use AuthLayout)
Template None (standalone centered form)

AuthPages/ResetPassword.tsx (348 lines)

Field Value
Component ResetPassword
Purpose Password reset form with token from email link
Origin custom
UI Patterns Token-validated form, password strength checks, state machine (form/success/error/expired), auto-redirect
Shared Components PageMeta
Local Sub-components None
Pattern Duplication Standalone layout (doesn't use AuthLayout)
Template None (standalone centered form)

AuthPages/VerifyEmail.tsx (220 lines)

Field Value
Component VerifyEmail
Purpose Email verification with token from email link
Origin custom
UI Patterns Auto-verify on mount, state machine (verifying/success/error/expired), resend option
Shared Components PageMeta
Local Sub-components None
Pattern Duplication Standalone layout (doesn't use AuthLayout)
Template None (standalone centered form)

AuthPages/Unsubscribe.tsx (82 lines)

Field Value
Component Unsubscribe
Purpose Email preferences redirect — auto-redirects to account settings after 5s
Origin custom
UI Patterns Informational card with auto-redirect timer, transactional email notice
Shared Components PageMeta
Local Sub-components None
Pattern Duplication Standalone layout
Template None (standalone centered card)

15. Help

Help/Help.tsx (~1306 lines)

Field Value
Component Help
Purpose In-app help documentation — workflow pipeline visualization, Q&A accordions, getting started guide
Origin custom
UI Patterns Table of contents, anchor-link scrolling, workflow pipeline visualization, accordion FAQ sections, cards
Shared Components PageMeta, PageHeader, Accordion, AccordionItem, Card, Badge
Local Sub-components WorkflowPipeline (inline component), TableOfContentsItem interface
Pattern Duplication WorkflowPipeline visualization duplicates Dashboard pipeline widget concept; very large file
Template None (custom documentation page)

16. Reference

Reference/Industries.tsx (185 lines)

Field Value
Component Industries (Reference)
Purpose Reference view of industries with keyword counts and volume stats
Origin custom
UI Patterns Card grid with keyword stats, volume formatting, tooltip enrichment
Shared Components PageMeta, PageHeader, Card, Badge, Tooltip, useToast, usePageLoading
Local Sub-components None
Pattern Duplication Overlaps with Settings/Industries (both show industry cards)
Template None (card grid)

Reference/SeedKeywords.tsx (119 lines)

Field Value
Component SeedKeywords
Purpose Global keyword library browser with industry filter and search
Origin custom
UI Patterns Filter bar (industry dropdown + search), keyword list
Shared Components PageMeta, Card, Badge, useToast, usePageLoading
Local Sub-components None
Pattern Duplication Overlaps with Setup/IndustriesSectorsKeywords keyword browsing
Template None

17. Standalone Pages

Payment.tsx (122 lines)

Field Value
Component Payment
Purpose Manual payment contact form — generates mailto link for sales
Origin custom
UI Patterns Simple form, mailto link generation, plan display from URL params
Shared Components InputField, TextArea, Label, Button, useAuthStore
Local Sub-components None
Pattern Duplication None — unique manual payment flow
Template None

UIElements.tsx (737 lines)

Field Value
Component UIElements
Purpose DEV REFERENCE — UI component showcase/documentation page (non-indexable)
Origin tailadmin-modified
UI Patterns Component showcase with live examples of all components/ui/ elements
Shared Components Imports effectively ALL components/ui/ components
Local Sub-components None
Pattern Duplication N/A — reference page
Template None

Components.tsx (680 lines)

Field Value
Component Components
Purpose DEV REFERENCE — Modal, dropdown, pagination, card, chart demo page
Origin tailadmin-modified
UI Patterns Component showcase with AlertModal, Modal, Dropdown, Pagination, Card variants
Shared Components PageMeta, AlertModal, Modal, Button, Dropdown, DropdownItem, Pagination, Card, ChartTab, InputField, TextArea
Local Sub-components None
Pattern Duplication N/A — reference page
Template None

legal/Privacy.tsx (260 lines)

Field Value
Component Privacy
Purpose Privacy policy static content page
Origin custom
UI Patterns Static content with sections, centered card layout, back-to-home link
Shared Components PageMeta
Local Sub-components None
Pattern Duplication Same layout pattern as Terms.tsx
Template None (standalone legal)

legal/Terms.tsx (186 lines)

Field Value
Component Terms
Purpose Terms and conditions static content page
Origin custom
UI Patterns Static content with sections, centered card layout, back-to-home link
Shared Components PageMeta
Local Sub-components None
Pattern Duplication Same layout pattern as Privacy.tsx — could extract a LegalPageLayout
Template None (standalone legal)

19. OtherPage

OtherPage/NotFound.tsx (44 lines)

Field Value
Component NotFound
Purpose 404 error page
Origin tailadmin-original
UI Patterns Centered error display, SVG illustration, back-to-home link, GridShape background
Shared Components PageMeta, GridShape
Local Sub-components None
Pattern Duplication None
Template None

Summary Statistics

Metric Count
Total page files 68
Using TablePageTemplate 10 (Keywords, Clusters, Ideas, Tasks, Content, Review, Approved, Images, Sites/List (table view), Setup/IndustriesSectorsKeywords)
Using ContentViewTemplate 1 (ContentView)
Custom (no template) 50
Placeholder / Coming Soon 5 (ImageTesting, Profile, Strategies, Settings/Account, Settings/System)
Deprecated 1 (DeploymentPanel)
TailAdmin-original 1 (NotFound)
TailAdmin-modified 4 (SignIn, SignUp, UIElements, Components)
Dev reference only 2 (UIElements, Components)

Key Findings — Pattern Duplication

1. Manual Table Duplication

Pages: Sites/Content, Sites/ContentStructure, Optimizer/ContentSelector, Linker/ContentList These pages build manual <table> with inline pagination instead of using TablePageTemplate. Candidate for migration or a simpler SimpleTableTemplate.

2. Settings Form Proliferation

Pages: Sites/Settings, Sites/AIAutomationSettings, Publisher/PublishSettings, Automation/PipelineSettings, account/ContentSettingsPage, Settings/Publishing At least 6 pages implement settings forms with similar card+toggle+save patterns. Consider a SettingsFormTemplate or shared SettingsSection component.

3. Billing/Usage Triplication

Legacy: Settings/CreditsAndBilling, Billing/Usage, Billing/Credits, Billing/Transactions Current: account/PlansAndBillingPage, account/UsageDashboardPage, account/UsageAnalyticsPage The legacy Settings/Billing pages duplicate what the account/* pages already provide. Candidates for removal.

4. Inline Tab Implementation

Pages: ClusterDetail, Sites/Settings, Sites/PostEditor Custom button-based tab implementations instead of using a shared Tabs component.

5. Cascading Filter Boilerplate

Pages: Keywords, Clusters, Ideas, Tasks, Content, Review, Approved, Images All Planner+Writer table pages repeat ~50-100 lines of cascading filter loading logic. Could be extracted into a useCascadingFilters hook.

6. WordPress Sync Overlap

Pages: Settings/WordPressIntegrationDebug vs Sites/SyncDashboard Both show WordPress sync health with overlapping functionality.

7. Industry Display Overlap

Pages: Settings/Industries vs Reference/Industries Both display industry cards; the Reference version adds keyword stats.

8. Calendar Duplication

Pages: Publisher/ContentCalendar vs Sites/PublishingQueue Both implement calendar+list views for scheduled content. The site-scoped version could reuse the publisher calendar component.

Pages: legal/Privacy vs legal/Terms Identical layout wrapper — candidate for a LegalPageLayout component.