5.3 KiB
5.3 KiB
Content Generation System - Complete Setup Guide
🎯 System Overview
The Content Generation Engine is now fully implemented with:
- Spintax Resolution: Handles
{A|B|C}syntax - Variable Expansion: Cartesian products of
{{VARIABLES}} - Uniqueness Tracking: Prevents duplicate variations
- Usage Stats: Tracks block/variation usage
- Full Article Generation: 2000-word articles from templates
📦 Components Built
1. Database Schema (migrations/02_content_generation.sql)
variation_registry- Track unique combinationsblock_usage_stats- Block usage countsspintax_variation_stats- Spintax choice tracking- Enhanced
avatars,campaign_masters,content_fragments
2. Spintax Engine (src/lib/spintax/resolver.ts)
SpintaxResolver- Resolves{A|B|C}deterministicallyexpandVariables()- Replaces{{CITY}}etcgenerateCartesianProduct()- All variable combinations
3. API Endpoints
POST /api/god/campaigns/create- Submit blueprintsPOST /api/god/campaigns/launch/:id- Queue generationGET /api/god/campaigns/status/:id- Check progress
4. BullMQ Worker (src/workers/contentGenerator.ts)
- Fetches campaign blueprints
- Generates Cartesian combinations
- Resolves spintax for each
- Creates posts in DB
- Records all usage stats
5. Admin UI (/admin/content-generator)
- Submit JSON blueprints
- View active campaigns
- Monitor generation stats
🚀 Quick Start
Step 1: Apply Database Schema
# On your server (where DATABASE_URL is set)
psql $DATABASE_URL -f migrations/02_content_generation.sql
Step 2: Start the Worker
# In a separate terminal/process
npm run worker
Step 3: Submit a Campaign
Via UI:
- Go to
https://spark.jumpstartscaling.com/admin/content-generator - Click "Load Example"
- Click "Create Campaign"
- Launch from campaigns list
Via API:
curl -X POST https://spark.jumpstartscaling.com/api/god/campaigns/create \
-H "X-God-Token: YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Solar Test",
"blueprint": {
"asset_name": "{{CITY}} Solar",
"variables": {
"CITY": "Miami|Tampa",
"STATE": "Florida"
},
"content": {
"url_path": "{{CITY}}.solar.com",
"meta_description": "{Stop|Eliminate} waste in {{CITY}}",
"body": [
{
"block_type": "Hero",
"content": "<h1>{Title A|Title B} for {{CITY}}</h1>"
}
]
}
}
}'
# Launch it
curl -X POST https://spark.jumpstartscaling.com/api/god/campaigns/launch/CAMPAIGN_ID \
-H "X-God-Token: YOUR_TOKEN"
📊 How It Works
1. Blueprint Submission
User submits JSON with:
- Variables:
"CITY": "A|B|C"creates 3 options - Spintax:
{option1|option2}in content - Blocks: Array of content sections
2. Cartesian Expansion
CITY: "Miami|Tampa" (2 options)
STATE: "FL|CA" (2 options)
= 4 total combinations
3. Spintax Resolution
For each combination:
- Replace
{{CITY}}→ "Miami" - Resolve
{Stop|Eliminate}→ "Stop" (deterministic) - Generate hash of choices for uniqueness
4. Post Creation
- Check if variation hash exists
- If unique: Create post in DB
- Record variation + update stats
- Continue to next combination
📈 Usage Tracking
All usage is tracked automatically:
Blocks:
SELECT block_type, total_uses
FROM block_usage_stats
ORDER BY total_uses DESC;
Vari ations:
SELECT variation_path, variation_text, use_count
FROM spintax_variation_stats
ORDER BY use_count DESC;
Created Posts:
SELECT COUNT(*) FROM variation_registry WHERE campaign_id = 'YOUR_ID';
🔧 Testing
Test the full system:
npm run test:campaign
This will:
- Create a test campaign
- Queue 2 jobs (San Diego, Irvine)
- Worker processes them
- Check
poststable for results
⚙️ Configuration
Required environment variables:
DATABASE_URL=postgresql://...
REDIS_URL=redis://...
GOD_TOKEN=your_secret_token
🎨 Blueprint Examples
See CONTENT_GENERATION_API.md for full examples and all the JSON blueprints you provided (Solar, Roofing, HVAC, MedSpa, etc.)
✅ Phase 6: Quality Checklist
- Schema created with usage tracking
- Spintax resolver handles nested syntax
- Variables expand correctly
- Cartesian products generate all combinations
- Uniqueness prevents duplicates
- Worker processes jobs asynchronously
- API endpoints secured with GOD_TOKEN
- UI allows blueprint submission
- Usage stats track everything
- Documentation complete
- Build succeeds
- Code pushed to Git
🚢 Deployment
Your code is already pushed to main. To deploy:
-
Apply schema:
ssh your-server cd /path/to/spark psql $DATABASE_URL -f god-mode/migrations/02_content_generation.sql -
Start worker: Add to your process manager (PM2, systemd, etc):
cd god-mode && npm run worker -
Test:
npm run test:campaign
📞 Ready to Use
Your API is ready! Test it:
curl https://spark.jumpstartscaling.com/admin/content-generator
All the JSON blueprints you provided are ready to be submitted and will generate thousands of unique articles with full spintax resolution and usage tracking!