# 🏭 Spark Content Factory - Implementation Plan ## Overview Transform the three intelligence files into a fully automated content generation system that creates **hyper-personalized articles** by combining: - **WHO** (Avatar + Niche) - **WHERE** (City + Wealth Cluster) - **WHAT** (Offer Block + Spintax) --- ## πŸ“Š Architecture Diagram ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ DIRECTUS SCHEMA β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ SITES │────▢│ CAMPAIGNS │────▢│ ARTICLES β”‚ β”‚ β”‚ β”‚ (Your Sites)β”‚ β”‚(What to buildβ”‚ β”‚(Generated) β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ β”‚ β–Ό β–Ό β–Ό β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ β”‚ AVATARS β”‚ β”‚ NICHES β”‚ β”‚ LOCATIONS β”‚ β”‚ β”‚ β”‚ β”‚ (Who) β”‚ β”‚ (Industry)β”‚ β”‚ (Where) β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β–Ό β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ └──────────▢│OFFER BLOCKS β”‚β—€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚(Messaging) β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”‚ β–Ό β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ SEO ENGINE β”‚ β”‚ β”‚ β”‚β€’ Meta Title β”‚ β”‚ β”‚ β”‚β€’ Meta Desc β”‚ β”‚ β”‚ β”‚β€’ Schema.org β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` --- ## πŸ“ Directus Collections to Create ### 1. **avatars** (FROM: avatar_intelligence.json) | Field | Type | Description | |-------|------|-------------| | id | uuid | Primary key | | slug | string | `scaling_founder`, `elite_consultant`, etc. | | base_name | string | "The Tech Titan / Scaling Founder" | | wealth_cluster | string | "Tech-Native" | | psychographics | text | Long description of mindset | | tech_stack | json | ["Zapier", "Slack", "AWS"] | | pronoun_male | string | "he" | | pronoun_female | string | "she" | | identity_male | string | "bottlenecked technical founder" | | identity_female | string | "bottlenecked technical founder" | ### 2. **niches** (FROM: avatar_intelligence.json β†’ business_niches) | Field | Type | Description | |-------|------|-------------| | id | uuid | Primary key | | name | string | "Vertical SaaS (B2B)" | | slug | string | "vertical-saas-b2b" | | avatar | m2o β†’ avatars | Which avatar owns this niche | | keywords | json | SEO keywords for this niche | | pain_points | json | Common pains in this niche | ### 3. **wealth_clusters** (FROM: geo_intelligence.json) | Field | Type | Description | |-------|------|-------------| | id | uuid | Primary key | | slug | string | `tech_native`, `financial_power` | | name | string | "The Silicon Valleys" | | tech_adoption_score | integer | 1-10 | | primary_need | string | "Advanced Custom Automation & SaaS" | | matching_avatars | m2m β†’ avatars | Which avatars match this cluster | ### 4. **elite_cities** (FROM: geo_intelligence.json β†’ cities) | Field | Type | Description | |-------|------|-------------| | id | uuid | Primary key | | name | string | "Atherton" | | state | string | "CA" | | full_name | string | "Atherton, CA" | | wealth_cluster | m2o β†’ wealth_clusters | Which cluster | | landmarks | json | Local landmarks for spintax | ### 5. **offer_blocks** (FROM: offer_engine.json) | Field | Type | Description | |-------|------|-------------| | id | uuid | Primary key | | slug | string | `block_01_zapier_fix` | | title | string | "The $1,000 Fix" | | hook | text | "Stop the bleeding in your {{NICHE}} business." | | spintax | text | Full spintax template | | avatar_pains | json | { avatar_slug: [pain1, pain2, pain3] } | | meta_title_template | string | "{{OFFER}} for {{NICHE}} in {{CITY}}" | | meta_desc_template | text | SEO description template | ### 6. **content_campaigns** (User creates these) | Field | Type | Description | |-------|------|-------------| | id | uuid | Primary key | | site | m2o β†’ sites | Which site to publish to | | name | string | "Q1 2025 - Tech Founders" | | target_avatars | m2m β†’ avatars | Which avatars to target | | target_niches | m2m β†’ niches | Which niches | | target_cities | m2m β†’ elite_cities | Which cities | | offer_blocks | m2m β†’ offer_blocks | Which offers to use | | velocity_mode | select | RAMP_UP, STEADY, SPIKES | | target_count | integer | How many articles | ### 7. **generated_articles** (Factory output) | Field | Type | Description | |-------|------|-------------| | id | uuid | Primary key | | site | m2o β†’ sites | Published to this site | | campaign | m2o β†’ content_campaigns | Source campaign | | avatar | m2o β†’ avatars | Target avatar | | niche | m2o β†’ niches | Target niche | | city | m2o β†’ elite_cities | Target city | | offer | m2o β†’ offer_blocks | Offer used | | headline | string | Generated headline | | meta_title | string | SEO title (60 chars) | | meta_description | string | SEO desc (160 chars) | | full_html_body | text | The article content | | schema_json | json | Schema.org markup | | sitemap_status | select | ghost, queued, indexed | | date_published | datetime | Backdate or now | --- ## πŸ”„ How It All Connects ### Page Generation Flow ``` USER SELECTS: β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Site: la.christopheramaya.work β”‚ β”‚ Avatar: scaling_founder β”‚ β”‚ Niche: Vertical SaaS (B2B) β”‚ β”‚ City: Palo Alto, CA β”‚ β”‚ Offer: The $1,000 Fix β”‚ β”‚ Count: 50 articles β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β–Ό FACTORY GENERATES: β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ FOR EACH COMBINATION: β”‚ β”‚ β”‚ β”‚ 1. Pull avatar psychographics β”‚ β”‚ 2. Pull niche-specific pains β”‚ β”‚ 3. Pull city landmarks β”‚ β”‚ 4. Pull offer spintax β”‚ β”‚ 5. Replace all {{TOKENS}} β”‚ β”‚ 6. Spin the spintax β”‚ β”‚ 7. Generate SEO meta β”‚ β”‚ 8. Create schema.org JSON β”‚ β”‚ 9. Save to generated_articles β”‚ β”‚ 10. Apply Gaussian scheduling β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` ### Token Replacement Map | Token | Source | Example | |-------|--------|---------| | `{{NICHE}}` | niches.name | "Vertical SaaS" | | `{{CITY}}` | elite_cities.name | "Palo Alto" | | `{{STATE}}` | elite_cities.state | "CA" | | `{{AVATAR}}` | avatars.identity_male | "bottlenecked technical founder" | | `{{PRONOUN}}` | avatars.pronoun_male | "he" | | `{{TECH_STACK}}` | avatars.tech_stack[random] | "Zapier" | | `{{LANDMARK}}` | elite_cities.landmarks[random] | "Stanford University" | | `{{AGENCY_NAME}}` | sites.name | "Spark Digital" | | `{{AGENCY_URL}}` | sites.domain | "sparkdigital.com" | | `{{CURRENT_YEAR}}` | context | "2024" | | `{{WEALTH_VIBE}}` | wealth_clusters.primary_need | "Advanced Custom Automation" | --- ## πŸ“‹ SEO Meta Generation For each article, auto-generate: ### Meta Title (60 chars) ``` {{OFFER_TITLE}} for {{NICHE}} Businesses in {{CITY}}, {{STATE}} ``` Example: "The $1,000 Fix for Vertical SaaS Businesses in Palo Alto, CA" ### Meta Description (160 chars) ``` {{AVATAR_IDENTITY}} in {{CITY}}? {{OFFER_HOOK}} We {{SOLUTION}}. Get your free audit today. ``` Example: "Bottlenecked technical founder in Palo Alto? Stop the bleeding in your SaaS business. We rebuild broken automation. Get your free audit today." ### Schema.org JSON-LD ```json { "@context": "https://schema.org", "@type": "Article", "headline": "{{META_TITLE}}", "description": "{{META_DESC}}", "author": { "@type": "Organization", "name": "{{AGENCY_NAME}}" }, "datePublished": "{{DATE_PUBLISHED}}", "dateModified": "{{DATE_MODIFIED}}", "publisher": { "@type": "Organization", "name": "{{AGENCY_NAME}}" } } ``` --- ## πŸš€ User Workflow in Directus ### Step 1: Add Your Site ``` Sites β†’ + New - Name: "Spark Digital LA" - Domain: "la.christopheramaya.work" ``` ### Step 2: Create Campaign ``` Content Campaigns β†’ + New - Site: (dropdown) Spark Digital LA - Target Avatars: β˜‘οΈ scaling_founder β˜‘οΈ saas_overloader - Target Niches: β˜‘οΈ Vertical SaaS β˜‘οΈ Fintech - Target Cities: β˜‘οΈ Palo Alto β˜‘οΈ Austin β˜‘οΈ Seattle - Offer Blocks: β˜‘οΈ Zapier Fix β˜‘οΈ Market Domination - Velocity: RAMP_UP - Target Count: 100 ``` ### Step 3: Click "Generate" ``` β†’ Factory creates 100 unique articles β†’ Each article = unique combo β†’ SEO meta auto-generated β†’ Gaussian scheduling applied ``` ### Step 4: Review & Publish ``` Generated Articles β†’ Filter by Campaign β†’ Preview any article β†’ Approve test batch β†’ Click "Publish to Site" β†’ Articles go live ``` --- ## πŸ“Š Combination Math With full data: - 10 Avatars Γ— 10 Niches each = 100 Avatar-Niche combos - 50 Elite Cities - 10 Offer Blocks **Maximum unique articles: 100 Γ— 50 Γ— 10 = 50,000 pages** For a focused campaign: - 2 Avatars Γ— 3 Niches Γ— 10 Cities Γ— 2 Offers = **120 articles** --- ## βœ… Implementation Tasks ### Phase 1: Schema Setup - [ ] Create `avatars` collection - [ ] Create `niches` collection - [ ] Create `wealth_clusters` collection - [ ] Create `elite_cities` collection - [ ] Create `offer_blocks` collection - [ ] Update `content_campaigns` with relations - [ ] Update `generated_articles` with relations ### Phase 2: Data Import - [ ] Import 10 avatars - [ ] Import 100 niches (10 per avatar) - [ ] Import 5 wealth clusters - [ ] Import 50 elite cities - [ ] Import offer blocks ### Phase 3: Factory Engine - [ ] Update token processor - [ ] Build campaign generator - [ ] Add SEO meta templates - [ ] Add schema.org generator ### Phase 4: Testing - [ ] Generate test batch - [ ] Verify token replacement - [ ] Verify SEO meta quality