313 lines
13 KiB
Markdown
313 lines
13 KiB
Markdown
# 🏭 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
|