IGNY8 IMPLEMENTATION PLAN
Preserving Existing Functionality + Phase 2 Features
Last Updated: 2025-01-XX
Purpose: Step-by-step implementation plan that keeps everything working while adding Phase 2 features.
TABLE OF CONTENTS
- Implementation Strategy
- Phase 0: Foundation & Credit System
- Phase 1: Service Layer Refactoring
- Phase 2: Automation System
- Phase 3: Site Builder
- Phase 4: Linker & Optimizer
- Phase 5: Sites Renderer
- Phase 6: Site Integration & Multi-Destination Publishing
- Phase 7: UI Components & Module Settings
- Phase 8: Universal Content Types
- Testing & Validation
1. IMPLEMENTATION STRATEGY
1.1 Core Principles
| Principle |
Implementation |
| Backward Compatibility |
All existing APIs, workflows, and features continue working |
| Incremental Changes |
Add new features without breaking existing ones |
| Feature Flags |
Use flags to enable/disable new features during rollout |
| Parallel Development |
New features developed alongside existing code |
| Gradual Migration |
Move to new architecture gradually, not all at once |
1.2 What's Currently Working (PRESERVE)
| Module |
Features |
Status |
| Planner |
Keywords, Clusters, Ideas |
✅ Working |
| Writer |
Tasks, Content Generation, Images |
✅ Working |
| Thinker |
Prompts, Author Profiles, Strategies |
✅ Working |
| Billing |
Credits, Transactions, Usage Logs |
✅ Working |
| System |
Settings, Integration Settings |
✅ Working |
| Auth |
Multi-tenancy, Users, Sites, Sectors |
✅ Working |
| AI Framework |
5 AI functions (cluster, ideas, content, prompts, images) |
✅ Working |
| WordPress Publishing |
Content publishing to WordPress |
✅ Working |
1.3 What Needs to Be Built (PHASE 2)
| Feature |
Status |
Priority |
| Credit-Only System |
🔨 Build |
HIGH |
| Automation System |
🔨 Build |
HIGH |
| Service Layer |
🔨 Build |
HIGH |
| Site Builder |
🔨 Build |
HIGH |
| Linker |
🔨 Build |
MEDIUM |
| Optimizer |
🔨 Build |
MEDIUM |
| Sites Renderer |
🔨 Build |
MEDIUM |
| Site Integration |
🔨 Build |
MEDIUM |
| Universal Content Types |
🔨 Build |
LOW |
PHASE 0: FOUNDATION & CREDIT SYSTEM
Goal: Migrate to credit-only model while preserving all existing functionality.
0.0 Module Settings System (Enable/Disable Modules)
| Task |
Files |
Dependencies |
Risk |
| Add Module Enable/Disable |
domain/system/models.py |
EXISTING (ModuleSettings) |
LOW - Extend existing |
| Module Settings API |
modules/system/views.py |
EXISTING |
LOW - Extend existing |
| Module Settings UI |
frontend/src/pages/Settings/Modules.tsx |
EXISTING (placeholder) |
LOW - Implement UI |
| Frontend Module Loader |
frontend/src/config/modules.config.ts |
None |
MEDIUM - Conditional loading |
| Route Guard |
frontend/src/components/common/ModuleGuard.tsx |
None |
LOW - New component |
Module Enable/Disable Logic:
- Each module has
enabled flag in ModuleSettings
- Frontend checks module status before loading routes
- Disabled modules don't appear in sidebar
- Disabled modules don't load code (lazy loading check)
Modules to Control:
- Planner
- Writer
- Thinker
- Automation
- Site Builder (NEW)
- Linker (NEW)
- Optimizer (NEW)
- Publisher (NEW)
0.1 Credit System Updates
| Task |
Files |
Dependencies |
Risk |
| Remove Plan Limit Fields |
core/auth/models.py |
None |
LOW - Add migration to set defaults |
| Update Plan Model |
core/auth/models.py |
None |
LOW - Keep only monthly_credits, support_level |
| Update CreditService |
domain/billing/services/credit_service.py |
None |
MEDIUM - Add credit cost constants |
| Add Credit Costs |
domain/billing/constants.py |
None |
LOW - Define credit costs per operation |
| Update AI Engine |
infrastructure/ai/engine.py |
CreditService |
MEDIUM - Check credits before AI calls |
| Update Content Generation |
domain/content/services/ |
CreditService |
MEDIUM - Check credits before generation |
| Update Image Generation |
infrastructure/ai/functions/generate_images.py |
CreditService |
MEDIUM - Check credits before generation |
| Remove Limit Checks |
All services |
None |
MEDIUM - Remove all plan limit validations |
| Update Usage Logging |
domain/billing/models.py |
None |
LOW - Ensure all operations log credits |
| Update Frontend Limits UI |
frontend/src/pages/Billing/ |
Backend API |
LOW - Replace limits with credit display |
Credit Cost Constants:
0.2 Operational Limits (Keep)
| Limit |
Location |
Implementation |
| 50 keywords per request |
modules/planner/views.py |
Request validation |
| 6 images per request |
modules/writer/views.py |
Request validation |
0.3 Database Migrations
| Migration |
Purpose |
Risk |
| Remove limit fields from Plan |
Clean up unused fields |
LOW - Add defaults first |
| Add credit cost tracking |
Enhance CreditUsageLog |
LOW - Additive only |
| Monthly credit replenishment |
Celery Beat task |
LOW - New feature |
0.4 Testing
- ✅ All existing features work with credit checks
- ✅ Credit deduction happens correctly
- ✅ Insufficient credits show clear error
- ✅ Usage logging tracks all operations
- ✅ Frontend shows credit balance, not limits
Timeline: 1-2 weeks
PHASE 1: SERVICE LAYER REFACTORING
Goal: Extract business logic from ViewSets into services, preserving all existing functionality.
1.1 Create Domain Structure
| Task |
Files |
Dependencies |
| Create domain/ folder |
backend/igny8_core/domain/ |
None |
| Move Content models |
domain/content/models.py |
Phase 0 |
| Move Planning models |
domain/planning/models.py |
Phase 0 |
| Create ContentService |
domain/content/services/content_generation_service.py |
Existing Writer logic |
| Create PlanningService |
domain/planning/services/clustering_service.py |
Existing Planner logic |
| Create IdeasService |
domain/planning/services/ideas_service.py |
Existing Planner logic |
1.2 Refactor ViewSets (Keep APIs Working)
| Module |
Current |
New |
Risk |
| Planner ViewSets |
Business logic in views |
Delegate to services |
LOW - Internal refactor |
| Writer ViewSets |
Business logic in views |
Delegate to services |
LOW - Internal refactor |
| Billing ViewSets |
Already uses CreditService |
Keep as-is |
NONE |
Strategy:
- ViewSets become thin wrappers
- All business logic moves to services
- APIs remain unchanged (backward compatible)
1.3 Testing
- ✅ All existing API endpoints work identically
- ✅ Response formats unchanged
- ✅ No breaking changes for frontend
- ✅ Services are testable independently
Timeline: 2-3 weeks
PHASE 2: AUTOMATION SYSTEM
Goal: Implement automation rules and scheduled tasks.
2.1 Automation Models
| Task |
Files |
Dependencies |
| AutomationRule Model |
domain/automation/models.py |
Phase 1 |
| ScheduledTask Model |
domain/automation/models.py |
Phase 1 |
| Automation Migrations |
domain/automation/migrations/ |
Phase 1 |
2.2 Automation Service
| Task |
Files |
Dependencies |
| AutomationService |
domain/automation/services/automation_service.py |
Phase 1 services |
| Rule Execution Engine |
domain/automation/services/rule_engine.py |
Phase 1 services |
| Condition Evaluator |
domain/automation/services/condition_evaluator.py |
None |
| Action Executor |
domain/automation/services/action_executor.py |
Phase 1 services |
2.3 Celery Beat Tasks
| Task |
Files |
Dependencies |
| Scheduled Automation Task |
infrastructure/messaging/automation_tasks.py |
AutomationService |
| Monthly Credit Replenishment |
infrastructure/messaging/automation_tasks.py |
CreditService |
| Celery Beat Configuration |
backend/igny8_core/celery.py |
None |
2.4 Automation API
| Task |
Files |
Dependencies |
| AutomationRule ViewSet |
modules/automation/views.py |
AutomationService |
| ScheduledTask ViewSet |
modules/automation/views.py |
AutomationService |
| Automation URLs |
modules/automation/urls.py |
None |
2.5 Automation UI
| Task |
Files |
Dependencies |
| Automation Dashboard |
frontend/src/pages/Automation/Dashboard.tsx |
EXISTING (placeholder) |
| Rules Management |
frontend/src/pages/Automation/Rules.tsx |
NEW |
| Schedules (within Automation) |
Integrated into Automation Dashboard |
Part of automation menu |
| Automation API Client |
frontend/src/services/automation.api.ts |
NEW |
2.6 Testing
- ✅ Automation rules execute correctly
- ✅ Scheduled tasks run on time
- ✅ Credit replenishment works monthly
- ✅ UI shows automation status
Timeline: 2-3 weeks
PHASE 3: SITE BUILDER
Goal: Build Site Builder for creating sites via wizard.
3.0 Sites Folder Access & File Management
| Task |
Files |
Dependencies |
| Site File Management Service |
domain/site_building/services/file_management_service.py |
Phase 1 |
| User Site Access Check |
domain/site_building/services/file_management_service.py |
EXISTING (SiteUserAccess) |
| File Upload API |
modules/site_builder/views.py |
File Management Service |
| File Browser UI |
site-builder/src/components/files/FileBrowser.tsx |
NEW |
| Storage Quota Check |
infrastructure/storage/file_storage.py |
Phase 1 |
Sites Folder Structure:
User Access Rules:
- Owner/Admin: Full access to all account sites
- Editor: Access to granted sites (via SiteUserAccess)
- Viewer: Read-only access to granted sites
- File operations scoped to user's accessible sites only
3.1 Site Builder Models
| Task |
Files |
Dependencies |
| SiteBlueprint Model |
domain/site_building/models.py |
Phase 1 |
| PageBlueprint Model |
domain/site_building/models.py |
Phase 1 |
| Site Builder Migrations |
domain/site_building/migrations/ |
Phase 1 |
3.2 Site Structure Generation
| Task |
Files |
Dependencies |
| Structure Generation AI Function |
infrastructure/ai/functions/generate_site_structure.py |
Existing AI framework |
| Structure Generation Service |
domain/site_building/services/structure_generation_service.py |
Phase 1, AI framework |
| Site Structure Prompts |
infrastructure/ai/prompts.py |
Existing prompt system |
3.3 Site Builder API
| Task |
Files |
Dependencies |
| Site Builder ViewSet |
modules/site_builder/views.py |
Structure Generation Service |
| Site Builder URLs |
modules/site_builder/urls.py |
None |
| Site Builder Serializers |
modules/site_builder/serializers.py |
None |
3.4 Site Builder Frontend (New Container)
User-Friendly Name: "Website Builder" or "Site Creator"
| Task |
Files |
Dependencies |
| Create Site Builder Container |
docker-compose.app.yml |
None |
| Wizard Steps |
site-builder/src/pages/wizard/ |
NEW |
| Preview Canvas |
site-builder/src/pages/preview/ |
NEW |
| Site Builder State |
site-builder/src/state/builderStore.ts |
NEW |
| Site Builder API Client |
site-builder/src/api/builder.api.ts |
NEW |
| Layout Selection |
site-builder/src/components/layouts/ |
NEW |
| Template Library |
site-builder/src/components/templates/ |
NEW |
| Block Components |
site-builder/src/components/blocks/ |
NEW (uses shared library) |
3.7 Global Component Library
| Task |
Files |
Dependencies |
| Create Shared Component Library |
frontend/src/components/shared/ |
None |
| Block Components |
frontend/src/components/shared/blocks/ |
NEW |
| Layout Components |
frontend/src/components/shared/layouts/ |
NEW |
| Template Components |
frontend/src/components/shared/templates/ |
NEW |
| Component Documentation |
frontend/src/components/shared/README.md |
None |
Component Library Structure:
Usage: Site Builder, Sites Renderer, and Main App all use same components (no duplicates)
3.5 Page Generation (Reuse Content Service)
| Task |
Files |
Dependencies |
| Extend ContentService |
domain/content/services/content_generation_service.py |
Phase 1 |
| Add Site Page Type |
domain/content/models.py |
Phase 1 |
| Page Generation Prompts |
infrastructure/ai/prompts.py |
Existing prompt system |
3.6 Testing
- ✅ Site Builder wizard works end-to-end
- ✅ Structure generation creates valid blueprints
- ✅ Preview renders correctly
- ✅ Page generation reuses existing content service
Timeline: 3-4 weeks
PHASE 4: LINKER & OPTIMIZER
Goal: Add linking and optimization as post-processing stages with multiple entry points.
4.0 Content Workflow & Entry Points
Content Sources:
- IGNY8 Generated - Content created via Writer module
- WordPress Synced - Content synced from WordPress via plugin
- 3rd Party Synced - Content synced from external sources (Shopify, custom APIs)
Content Storage Strategy:
- All content stored in unified
Content model
source field: 'igny8', 'wordpress', 'shopify', 'custom'
sync_status field: 'native', 'imported', 'synced'
- Same location, filtered by source/sync_status
Workflow Entry Points:
4.0.1 Writer → Linker Handover
| Step |
Action |
Implementation |
| 1. Content Generated |
Writer generates content |
ContentService.generate() |
| 2. Content Saved |
Content saved to DB |
Content model with source='igny8' |
| 3. Linker Trigger |
Auto-trigger or manual |
LinkerService.process(content_id) |
| 4. Links Injected |
Links added to content |
Content.internal_links updated |
| 5. Content Updated |
Content version incremented |
Content.linker_version++ |
| 6. Optimizer Ready |
Content ready for optimization |
Status: 'linked' or 'ready_for_optimization' |
Auto-Trigger Options:
- Immediate (after content generation)
- Scheduled (via AutomationRule)
- Manual (user clicks "Add Links")
4.0.2 Optimizer Entry Points
| Entry Point |
Source |
Trigger |
Content Status |
| Writer → Optimizer |
IGNY8 generated |
After linking or direct |
source='igny8', status='draft' |
| WordPress Sync → Optimizer |
WordPress plugin |
After sync or manual |
source='wordpress', sync_status='synced' |
| 3rd Party Sync → Optimizer |
External API |
After sync or manual |
source='shopify'/'custom', sync_status='imported' |
| Manual Selection |
Any content |
User selects content |
Any source, any status |
Optimizer Processing:
- All entry points use same
OptimizerService
- Content source doesn't matter - optimizer works on any content
- Results stored in
OptimizationTask model
- Original content preserved, optimized version stored separately
4.1 Content Model Extensions (For Synced Content)
| Task |
Files |
Dependencies |
| Add source field |
domain/content/models.py |
Phase 1 |
| Add sync_status field |
domain/content/models.py |
Phase 1 |
| Add external_id field |
domain/content/models.py |
Phase 1 |
| Add sync_metadata field |
domain/content/models.py |
Phase 1 |
| Content Migrations |
domain/content/migrations/ |
Phase 1 |
Content Model Extensions:
4.2 Linker Models
| Task |
Files |
Dependencies |
| InternalLink Model |
domain/linking/models.py |
Phase 1 |
| LinkGraph Model |
domain/linking/models.py |
Phase 1 |
| Linker Migrations |
domain/linking/migrations/ |
Phase 1 |
4.3 Linker Service
| Task |
Files |
Dependencies |
| LinkerService |
domain/linking/services/linker_service.py |
Phase 1, ContentService |
| Link Candidate Engine |
domain/linking/services/candidate_engine.py |
Phase 1 |
| Link Injection Engine |
domain/linking/services/injection_engine.py |
Phase 1 |
4.4 Content Sync Service (For WordPress/3rd Party)
| Task |
Files |
Dependencies |
| ContentSyncService |
domain/integration/services/content_sync_service.py |
Phase 1, Phase 6 |
| WordPress Content Sync |
domain/integration/services/wordpress_sync.py |
Phase 6 |
| 3rd Party Content Sync |
domain/integration/services/external_sync.py |
Phase 6 |
| Content Import Logic |
domain/integration/services/import_service.py |
Phase 1 |
Sync Service Flow:
4.5 Optimizer Models
| Task |
Files |
Dependencies |
| OptimizationTask Model |
domain/optimization/models.py |
Phase 1 |
| OptimizationScores Model |
domain/optimization/models.py |
Phase 1 |
| Optimizer Migrations |
domain/optimization/migrations/ |
Phase 1 |
4.6 Optimizer Service (Multiple Entry Points)
| Task |
Files |
Dependencies |
| OptimizerService |
domain/optimization/services/optimizer_service.py |
Phase 1, ContentService |
| Content Analyzer |
domain/optimization/services/analyzer.py |
Phase 1 |
| Entry Point Handler |
domain/optimization/services/entry_handler.py |
Phase 1 |
| Optimization AI Function |
infrastructure/ai/functions/optimize_content.py |
Existing AI framework |
| Optimization Prompts |
infrastructure/ai/prompts.py |
Existing prompt system |
Optimizer Entry Point Handler:
| Task |
Files |
Dependencies |
| OptimizerService |
domain/optimization/services/optimizer_service.py |
Phase 1, ContentService |
| Content Analyzer |
domain/optimization/services/analyzer.py |
Phase 1 |
| Optimization AI Function |
infrastructure/ai/functions/optimize_content.py |
Existing AI framework |
| Optimization Prompts |
infrastructure/ai/prompts.py |
Existing prompt system |
4.7 Content Pipeline Service
| Task |
Files |
Dependencies |
| ContentPipelineService |
domain/content/services/content_pipeline_service.py |
LinkerService, OptimizerService |
| Pipeline Orchestration |
domain/content/services/pipeline_service.py |
Phase 1 services |
| Workflow State Machine |
domain/content/services/workflow_state.py |
Phase 1 services |
Pipeline Workflow States:
Pipeline Orchestration:
4.8 Linker & Optimizer APIs
| Task |
Files |
Dependencies |
| Linker ViewSet |
modules/linker/views.py |
LinkerService |
| Optimizer ViewSet |
modules/optimizer/views.py |
OptimizerService |
| Linker URLs |
modules/linker/urls.py |
None |
| Optimizer URLs |
modules/optimizer/urls.py |
None |
4.9 Linker & Optimizer UI
| Task |
Files |
Dependencies |
| Linker Dashboard |
frontend/src/pages/Linker/Dashboard.tsx |
NEW |
| Optimizer Dashboard |
frontend/src/pages/Optimizer/Dashboard.tsx |
NEW |
| Linker API Client |
frontend/src/services/linker.api.ts |
NEW |
| Optimizer API Client |
frontend/src/services/optimizer.api.ts |
NEW |
| Content Selection UI |
frontend/src/components/optimizer/ContentSelector.tsx |
NEW |
| Entry Point Handler UI |
frontend/src/components/optimizer/EntryPointHandler.tsx |
NEW |
| Source Badge Component |
frontend/src/components/content/SourceBadge.tsx |
NEW |
Optimizer UI Features:
- Show content source (IGNY8, WordPress, Shopify badge)
- Show sync status (Native, Synced, Imported badge)
- Entry point selection (from Writer, from Sync, Manual)
- Content list with source filters
- "Send to Optimizer" button (works for any source)
4.10 Content Filtering & Display
| Task |
Files |
Dependencies |
| Content Filter Component |
frontend/src/components/content/ContentFilter.tsx |
NEW |
| Source Filter |
frontend/src/components/content/SourceFilter.tsx |
NEW |
| Sync Status Filter |
frontend/src/components/content/SyncStatusFilter.tsx |
NEW |
| Content List with Filters |
frontend/src/pages/Writer/Content.tsx |
EXISTING (update) |
Content Filtering:
- Filter by source: IGNY8, WordPress, Shopify, Custom
- Filter by sync_status: Native, Imported, Synced
- Filter by optimization status: Not optimized, Optimized, Needs optimization
- Filter by linking status: Not linked, Linked, Needs linking
4.11 Testing
- ✅ Writer → Linker handover works
- ✅ Linker finds appropriate link candidates
- ✅ Links inject correctly into content
- ✅ Optimizer works from Writer entry point
- ✅ Optimizer works from WordPress sync entry point
- ✅ Optimizer works from 3rd party sync entry point
- ✅ Optimizer works from manual selection
- ✅ Synced content stored correctly with source flags
- ✅ Content filtering works (by source, sync_status)
- ✅ Pipeline orchestrates correctly
- ✅ All entry points use same optimization logic
Timeline: 4-5 weeks (extended for multiple entry points)
PHASE 5: SITES RENDERER
Goal: Build Sites renderer for hosting public sites.
5.1 Sites Renderer Container
User-Friendly Name: "My Websites" or "Published Sites"
| Task |
Files |
Dependencies |
| Create Sites Container |
docker-compose.app.yml |
None |
| Sites Renderer Frontend |
sites/src/ |
NEW |
| Block Components |
sites/src/components/blocks/ |
NEW (imports from shared) |
| Layout Components |
sites/src/components/layouts/ |
NEW (imports from shared) |
| Template Components |
sites/src/components/templates/ |
NEW (imports from shared) |
| Site Definition Loader |
sites/src/loaders/loadSiteDefinition.ts |
NEW |
| Multiple Layout Support |
sites/src/utils/layoutResolver.ts |
NEW |
| Template System |
sites/src/utils/templateEngine.ts |
NEW |
| CMS Styling |
sites/src/styles/cms.css |
NEW |
5.6 Multiple Layout Options
| Task |
Files |
Dependencies |
| Layout Configuration |
domain/site_building/models.py |
Phase 3 |
| Layout Selector UI |
site-builder/src/components/layouts/LayoutSelector.tsx |
Phase 3 |
| Layout Renderer |
sites/src/utils/layoutRenderer.ts |
Phase 5 |
| Layout Preview |
site-builder/src/components/preview/LayoutPreview.tsx |
Phase 3 |
Layout Types:
- Default (Standard)
- Minimal (Clean, simple)
- Magazine (Editorial, content-focused)
- Ecommerce (Product-focused)
- Portfolio (Showcase)
- Blog (Content-first)
- Corporate (Business)
5.2 Publisher Service
| Task |
Files |
Dependencies |
| PublisherService |
domain/publishing/services/publisher_service.py |
Phase 1 |
| SitesRendererAdapter |
domain/publishing/services/adapters/sites_renderer_adapter.py |
Phase 3 |
| DeploymentService |
domain/publishing/services/deployment_service.py |
Phase 3 |
5.3 Publishing Models
| Task |
Files |
Dependencies |
| PublishingRecord Model |
domain/publishing/models.py |
Phase 1 |
| DeploymentRecord Model |
domain/publishing/models.py |
Phase 3 |
| Publishing Migrations |
domain/publishing/migrations/ |
Phase 1 |
5.4 Publisher API
| Task |
Files |
Dependencies |
| Publisher ViewSet |
modules/publisher/views.py |
PublisherService |
| Publisher URLs |
modules/publisher/urls.py |
None |
5.5 Testing
- ✅ Sites renderer loads site definitions
- ✅ Blocks render correctly
- ✅ Deployment works end-to-end
- ✅ Sites are accessible publicly
Timeline: 2-3 weeks
PHASE 6: SITE INTEGRATION & MULTI-DESTINATION PUBLISHING
Goal: Support multiple publishing destinations (WordPress, Sites, Shopify).
6.1 Site Integration Models
| Task |
Files |
Dependencies |
| SiteIntegration Model |
domain/integration/models.py |
Phase 1 |
| Integration Migrations |
domain/integration/migrations/ |
Phase 1 |
6.2 Integration Service
| Task |
Files |
Dependencies |
| IntegrationService |
domain/integration/services/integration_service.py |
Phase 1 |
| SyncService |
domain/integration/services/sync_service.py |
Phase 1 |
6.3 Publishing Adapters
| Task |
Files |
Dependencies |
| BaseAdapter |
domain/publishing/services/adapters/base_adapter.py |
Phase 5 |
| WordPressAdapter |
domain/publishing/services/adapters/wordpress_adapter.py |
EXISTING (refactor) |
| SitesRendererAdapter |
domain/publishing/services/adapters/sites_renderer_adapter.py |
Phase 5 |
| ShopifyAdapter |
domain/publishing/services/adapters/shopify_adapter.py |
Phase 5 (future) |
6.4 Multi-Destination Publishing
| Task |
Files |
Dependencies |
| Extend PublisherService |
domain/publishing/services/publisher_service.py |
Phase 5 |
| Multi-destination Support |
domain/publishing/services/publisher_service.py |
Phase 5 |
| Update PublishingRecord |
domain/publishing/models.py |
Phase 5 |
6.5 Site Model Extensions
| Task |
Files |
Dependencies |
| Add site_type field |
core/auth/models.py |
None |
| Add hosting_type field |
core/auth/models.py |
None |
| Add integrations relationship |
core/auth/models.py |
Phase 6.1 |
| Migration |
core/auth/migrations/ |
None |
6.6 Integration API
| Task |
Files |
Dependencies |
| Integration ViewSet |
modules/integration/views.py |
IntegrationService |
| Integration URLs |
modules/integration/urls.py |
None |
6.7 Integration UI (Update Existing)
| Task |
Files |
Dependencies |
| Update Integration Settings |
frontend/src/pages/Settings/Integration.tsx |
EXISTING (update) |
| Site Integration Management |
frontend/src/pages/Settings/Integration.tsx |
EXISTING (update) |
| Integration API Client |
frontend/src/services/integration.api.ts |
NEW |
| Multi-Platform Support |
frontend/src/components/integration/PlatformSelector.tsx |
NEW |
| Integration Status |
frontend/src/components/integration/IntegrationStatus.tsx |
NEW |
Update Existing Integration Page:
- Add SiteIntegration model support
- Show multiple integrations per site
- Add WordPress, Shopify, Custom API options
- Two-way sync toggle
- Connection testing
6.8 Publishing Settings UI
| Task |
Files |
Dependencies |
| Publishing Settings Page |
frontend/src/pages/Settings/Publishing.tsx |
NEW |
| Destination Management |
frontend/src/pages/Settings/Publishing.tsx |
Phase 6 |
| Publishing Rules |
frontend/src/components/publishing/PublishingRules.tsx |
NEW |
| Auto-Publish Settings |
frontend/src/components/publishing/AutoPublishSettings.tsx |
NEW |
| Publishing API Client |
frontend/src/services/publisher.api.ts |
NEW |
6.9 Individual Site Management (CMS)
User-Friendly Name: "Site Manager" or "Content Manager"
| Task |
Files |
Dependencies |
| Site Management Dashboard |
frontend/src/pages/Sites/Manage.tsx |
NEW |
| Site Content Editor |
frontend/src/pages/Sites/Editor.tsx |
NEW |
| Post Editor |
frontend/src/pages/Sites/PostEditor.tsx |
NEW |
| Page Manager |
frontend/src/pages/Sites/PageManager.tsx |
NEW |
| Add/Remove Pages |
frontend/src/components/sites/PageManager.tsx |
NEW |
| Content List |
frontend/src/components/sites/ContentList.tsx |
NEW |
| Site Settings |
frontend/src/pages/Sites/Settings.tsx |
NEW |
| Site API Client |
frontend/src/services/sites.api.ts |
NEW |
Site Management Features:
- View all pages/posts for a site
- Add new pages
- Remove pages
- Edit page content
- Manage page order
- Change page templates
- Update site settings
- Preview site
6.11 WordPress Plugin Connection (API Only)
| Task |
Files |
Dependencies |
| WordPress Sync Endpoints |
modules/integration/views.py |
IntegrationService |
| Two-way Sync Logic |
domain/integration/services/sync_service.py |
Phase 6.2 |
| WordPress Webhook Handler |
modules/integration/views.py |
Phase 6.2 |
Note: WordPress plugin itself is built separately. Only API endpoints for plugin connection are built here.
6.9 Testing
- ✅ Site integrations work correctly
- ✅ Multi-destination publishing works
- ✅ WordPress sync works (when plugin connected)
- ✅ Two-way sync functions properly
Timeline: 2-3 weeks
PHASE 7: UI COMPONENTS & MODULE SETTINGS
Goal: Build comprehensive UI system with shared components, module settings, and site management.
7.1 Global Component Library
| Task |
Files |
Dependencies |
| Component Library Structure |
frontend/src/components/shared/ |
None |
| Block Components |
frontend/src/components/shared/blocks/ |
None |
| Layout Components |
frontend/src/components/shared/layouts/ |
None |
| Template Components |
frontend/src/components/shared/templates/ |
None |
| Component Documentation |
frontend/src/components/shared/README.md |
None |
| Component Storybook |
frontend/.storybook/ |
Optional |
| Component Tests |
frontend/src/components/shared/**/*.test.tsx |
None |
Component Standards:
- All components use TypeScript
- All components have props interfaces
- All components are responsive
- All components support dark mode
- All components are accessible (ARIA)
- No duplicate components
7.2 Module Settings UI
| Task |
Files |
Dependencies |
| Module Settings Page |
frontend/src/pages/Settings/Modules.tsx |
EXISTING (implement) |
| Module Toggle Component |
frontend/src/components/settings/ModuleToggle.tsx |
NEW |
| Module Status Indicator |
frontend/src/components/settings/ModuleStatus.tsx |
NEW |
| Module Configuration |
frontend/src/components/settings/ModuleConfig.tsx |
NEW |
| Module Settings API |
frontend/src/services/modules.api.ts |
NEW |
Module Settings Features:
- Enable/disable modules per account
- Module-specific configuration
- Module status display
- Module usage statistics
- Module dependencies check
7.3 Frontend Module Loader
| Task |
Files |
Dependencies |
| Module Config |
frontend/src/config/modules.config.ts |
Phase 0 |
| Module Guard |
frontend/src/components/common/ModuleGuard.tsx |
Phase 0 |
| Conditional Route Loading |
frontend/src/App.tsx |
Phase 0 |
| Sidebar Module Filter |
frontend/src/layout/AppSidebar.tsx |
Phase 0 |
Module Loading Logic:
7.4 Site Management UI
| Task |
Files |
Dependencies |
| Site List View |
frontend/src/pages/Sites/List.tsx |
NEW |
| Site Dashboard |
frontend/src/pages/Sites/Dashboard.tsx |
NEW |
| Site Content Manager |
frontend/src/pages/Sites/Content.tsx |
NEW |
| Post Editor |
frontend/src/pages/Sites/PostEditor.tsx |
NEW |
| Page Manager |
frontend/src/pages/Sites/Pages.tsx |
NEW |
| Site Settings |
frontend/src/pages/Sites/Settings.tsx |
NEW |
| Site Preview |
frontend/src/pages/Sites/Preview.tsx |
NEW |
Site Management Features:
- List all sites
- Site dashboard with stats
- Content management (posts, pages)
- Add/remove pages
- Edit content
- Change templates
- Update site settings
- Preview site
7.5 Layout & Template System
| Task |
Files |
Dependencies |
| Layout Selector |
frontend/src/components/sites/LayoutSelector.tsx |
NEW |
| Template Library |
frontend/src/components/sites/TemplateLibrary.tsx |
NEW |
| Layout Preview |
frontend/src/components/sites/LayoutPreview.tsx |
NEW |
| Template Customizer |
frontend/src/components/sites/TemplateCustomizer.tsx |
NEW |
| Style Editor |
frontend/src/components/sites/StyleEditor.tsx |
NEW |
Layout Options:
- Default Layout
- Minimal Layout
- Magazine Layout
- Ecommerce Layout
- Portfolio Layout
- Blog Layout
- Corporate Layout
Template System:
- Pre-built templates
- Custom templates
- Template customization
- Style presets
- Color schemes
- Typography options
7.6 CMS Styling System
| Task |
Files |
Dependencies |
| CMS Theme System |
frontend/src/styles/cms/ |
NEW |
| Style Presets |
frontend/src/styles/cms/presets.ts |
NEW |
| Color Schemes |
frontend/src/styles/cms/colors.ts |
NEW |
| Typography System |
frontend/src/styles/cms/typography.ts |
NEW |
| Component Styles |
frontend/src/styles/cms/components.ts |
NEW |
CMS Features:
- Theme customization
- Color palette management
- Typography settings
- Component styling
- Responsive breakpoints
- Dark/light mode
7.7 Testing
- ✅ All components render correctly
- ✅ Module settings enable/disable modules
- ✅ Disabled modules don't load
- ✅ Site management works end-to-end
- ✅ Layout system works
- ✅ Template system works
- ✅ No duplicate components
Timeline: 3-4 weeks
PHASE 8: UNIVERSAL CONTENT TYPES
Goal: Extend content system to support products, services, taxonomies.
8.1 Content Model Extensions
| Task |
Files |
Dependencies |
| Add entity_type field |
domain/content/models.py |
Phase 1 |
| Add json_blocks field |
domain/content/models.py |
Phase 1 |
| Add structure_data field |
domain/content/models.py |
Phase 1 |
| Content Migrations |
domain/content/migrations/ |
Phase 1 |
8.2 Content Type Prompts
| Task |
Files |
Dependencies |
| Product Prompts |
infrastructure/ai/prompts.py |
Existing prompt system |
| Service Page Prompts |
infrastructure/ai/prompts.py |
Existing prompt system |
| Taxonomy Prompts |
infrastructure/ai/prompts.py |
Existing prompt system |
8.3 Content Service Extensions
| Task |
Files |
Dependencies |
| Product Content Generation |
domain/content/services/content_generation_service.py |
Phase 1 |
| Service Page Generation |
domain/content/services/content_generation_service.py |
Phase 1 |
| Taxonomy Generation |
domain/content/services/content_generation_service.py |
Phase 1 |
8.4 Linker & Optimizer Extensions
| Task |
Files |
Dependencies |
| Product Linking |
domain/linking/services/linker_service.py |
Phase 4 |
| Taxonomy Linking |
domain/linking/services/linker_service.py |
Phase 4 |
| Product Optimization |
domain/optimization/services/optimizer_service.py |
Phase 4 |
| Taxonomy Optimization |
domain/optimization/services/optimizer_service.py |
Phase 4 |
8.5 Testing
- ✅ Product content generates correctly
- ✅ Service pages work
- ✅ Taxonomy pages work
- ✅ Linking works for all types
- ✅ Optimization works for all types
Timeline: 2-3 weeks
TESTING & VALIDATION
Testing Strategy
| Phase |
Testing Focus |
Validation |
| Phase 0 |
Credit system, existing features |
All existing features work with credits |
| Phase 1 |
Service layer, API compatibility |
APIs unchanged, services work |
| Phase 2 |
Automation execution |
Rules execute, schedules work |
| Phase 3 |
Site Builder end-to-end |
Sites build and deploy |
| Phase 4 |
Linker/Optimizer quality |
Content improves, links work |
| Phase 5 |
Sites renderer |
Sites render correctly |
| Phase 6 |
Multi-destination publishing |
Content publishes to all destinations |
| Phase 7 |
UI components & module settings |
Components work, modules can be disabled, site management works |
| Phase 8 |
Universal content types |
All content types work |
Backward Compatibility Checklist
- ✅ All existing API endpoints work
- ✅ All existing workflows function
- ✅ Frontend continues working
- ✅ Database migrations are safe
- ✅ No data loss during migration
Rollout Strategy
- Feature Flags: Enable new features gradually
- Beta Testing: Test with select accounts first
- Gradual Rollout: Enable for all users after validation
- Monitoring: Track errors, performance, usage
SUMMARY
Implementation Timeline
| Phase |
Duration |
Dependencies |
| Phase 0: Credit System |
1-2 weeks |
None |
| Phase 1: Service Layer |
2-3 weeks |
Phase 0 |
| Phase 2: Automation |
2-3 weeks |
Phase 1 |
| Phase 3: Site Builder |
3-4 weeks |
Phase 1, Phase 2 |
| Phase 4: Linker/Optimizer |
3-4 weeks |
Phase 1 |
| Phase 5: Sites Renderer |
2-3 weeks |
Phase 3 |
| Phase 6: Site Integration |
2-3 weeks |
Phase 5 |
| Phase 7: UI Components & Module Settings |
3-4 weeks |
Phase 0, Phase 3, Phase 5 |
| Phase 8: Universal Types |
2-3 weeks |
Phase 4 |
Total Estimated Time: 20-29 weeks (5-7 months)
Key Success Criteria
- ✅ All existing features continue working
- ✅ Credit system is universal and consistent
- ✅ Automation system is functional
- ✅ Site Builder creates and deploys sites ("Website Builder" in UI)
- ✅ Sites Renderer hosts sites ("My Websites" in UI)
- ✅ Linker and Optimizer improve content
- ✅ Multi-destination publishing works
- ✅ Module settings enable/disable modules (modules don't load when disabled)
- ✅ Global component library (no duplicates, shared across all apps)
- ✅ Multiple layout options for sites (7 layout types)
- ✅ Site management UI (CMS) for content editing, page management
- ✅ Site Integration UI updated with new SiteIntegration model
- ✅ Publishing Settings UI functional
- ✅ All content types supported
END OF DOCUMENT