Add shared architecture doc: SEO Tool + IntelSight
This commit is contained in:
@@ -0,0 +1,311 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>SEO Tool + IntelSight Architecture</title>
|
||||
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
|
||||
<style>
|
||||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||||
body {
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
background: #020617;
|
||||
min-height: 100vh;
|
||||
padding: 2rem;
|
||||
color: white;
|
||||
}
|
||||
.container { max-width: 1100px; margin: 0 auto; }
|
||||
.header { margin-bottom: 2rem; }
|
||||
.header-row { display: flex; align-items: center; gap: 1rem; margin-bottom: 0.5rem; }
|
||||
.pulse-dot { width: 12px; height: 12px; background: #22d3ee; border-radius: 50%; animation: pulse 2s infinite; }
|
||||
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }
|
||||
h1 { font-size: 1.4rem; font-weight: 700; }
|
||||
.subtitle { color: #94a3b8; font-size: 0.8rem; margin-left: 1.75rem; }
|
||||
.diagram-container {
|
||||
background: rgba(15, 23, 42, 0.5);
|
||||
border-radius: 1rem;
|
||||
border: 1px solid #1e293b;
|
||||
padding: 1.5rem;
|
||||
overflow-x: auto;
|
||||
}
|
||||
svg { width: 100%; min-width: 950px; display: block; }
|
||||
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 2rem; }
|
||||
.card { background: rgba(15, 23, 42, 0.5); border-radius: 0.75rem; border: 1px solid #1e293b; padding: 1.25rem; }
|
||||
.card-header { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem; }
|
||||
.card-dot { width: 8px; height: 8px; border-radius: 50%; }
|
||||
.card-dot.cyan { background: #22d3ee; }
|
||||
.card-dot.emerald { background: #34d399; }
|
||||
.card-dot.violet { background: #a78bfa; }
|
||||
.card-dot.amber { background: #fbbf24; }
|
||||
.card-dot.rose { background: #fb7185; }
|
||||
.card h3 { font-size: 0.8rem; font-weight: 600; }
|
||||
.card ul { list-style: none; color: #94a3b8; font-size: 0.72rem; }
|
||||
.card li { margin-bottom: 0.3rem; }
|
||||
.footer { text-align: center; margin-top: 1.5rem; color: #475569; font-size: 0.72rem; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="header">
|
||||
<div class="header-row">
|
||||
<div class="pulse-dot"></div>
|
||||
<h1>SEO Audit Tool + IntelSight — Shared Architecture</h1>
|
||||
</div>
|
||||
<p class="subtitle">Two products. One infrastructure. Zero product merge.</p>
|
||||
</div>
|
||||
|
||||
<div class="diagram-container">
|
||||
<svg viewBox="0 0 1050 720">
|
||||
<defs>
|
||||
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
||||
<polygon points="0 0, 10 3.5, 0 7" fill="#64748b" />
|
||||
</marker>
|
||||
<marker id="arrow-cyan" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
||||
<polygon points="0 0, 10 3.5, 0 7" fill="#22d3ee" />
|
||||
</marker>
|
||||
<marker id="arrow-emerald" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
||||
<polygon points="0 0, 10 3.5, 0 7" fill="#34d399" />
|
||||
</marker>
|
||||
<marker id="arrow-violet" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
||||
<polygon points="0 0, 10 3.5, 0 7" fill="#a78bfa" />
|
||||
</marker>
|
||||
<pattern id="grid" width="40" height="40" patternUnits="userSpaceOnUse">
|
||||
<path d="M 40 0 L 0 0 0 40" fill="none" stroke="#1e293b" stroke-width="0.5"/>
|
||||
</pattern>
|
||||
</defs>
|
||||
|
||||
<rect width="100%" height="100%" fill="url(#grid)" />
|
||||
|
||||
<!-- ============ USERS (left side) ============ -->
|
||||
<rect x="20" y="120" width="110" height="55" rx="6" fill="rgba(30,41,59,0.5)" stroke="#94a3b8" stroke-width="1.5"/>
|
||||
<text x="75" y="142" fill="white" font-size="10" font-weight="600" text-anchor="middle">ITPP Hosting</text>
|
||||
<text x="75" y="158" fill="#94a3b8" font-size="8" text-anchor="middle">Clients</text>
|
||||
|
||||
<rect x="20" y="220" width="110" height="55" rx="6" fill="rgba(30,41,59,0.5)" stroke="#94a3b8" stroke-width="1.5"/>
|
||||
<text x="75" y="242" fill="white" font-size="10" font-weight="600" text-anchor="middle">CI Buyers</text>
|
||||
<text x="75" y="258" fill="#94a3b8" font-size="8" text-anchor="middle">SMB/Mid-Market</text>
|
||||
|
||||
<!-- ============ PRODUCT LAYER ============ -->
|
||||
|
||||
<!-- SEO Audit Tool box -->
|
||||
<rect x="180" y="80" width="350" height="160" rx="8" fill="rgba(8,51,68,0.25)" stroke="#22d3ee" stroke-width="1.5"/>
|
||||
<text x="192" y="98" fill="#22d3ee" font-size="10" font-weight="600">SEO Audit Tool</text>
|
||||
<text x="192" y="112" fill="#64748b" font-size="8">Free / $49/mo Pro</text>
|
||||
|
||||
<!-- SEO features -->
|
||||
<rect x="195" y="125" width="155" height="48" rx="5" fill="rgba(8,51,68,0.4)" stroke="#22d3ee" stroke-width="1"/>
|
||||
<text x="205" y="142" fill="white" font-size="9" font-weight="600">Launch Audit</text>
|
||||
<text x="205" y="156" fill="#94a3b8" font-size="7">Auto-runs on deploy</text>
|
||||
<text x="205" y="167" fill="#94a3b8" font-size="7">50+ checks, fix-it snippets</text>
|
||||
|
||||
<rect x="360" y="125" width="155" height="48" rx="5" fill="rgba(8,51,68,0.4)" stroke="#22d3ee" stroke-width="1"/>
|
||||
<text x="370" y="142" fill="white" font-size="9" font-weight="600">Monthly Crawl</text>
|
||||
<text x="370" y="156" fill="#94a3b8" font-size="7">Trend tracking 0-100</text>
|
||||
<text x="370" y="167" fill="#94a3b8" font-size="7">Score history per site</text>
|
||||
|
||||
<rect x="195" y="180" width="155" height="48" rx="5" fill="rgba(34,211,238,0.12)" stroke="#22d3ee" stroke-width="1" stroke-dasharray="3,3"/>
|
||||
<text x="205" y="197" fill="#22d3ee" font-size="8" font-weight="600">✦ AI Fix Prompts</text>
|
||||
<text x="205" y="211" fill="#94a3b8" font-size="7">Ready-made Claude/Cursor prompts</text>
|
||||
<text x="205" y="222" fill="#94a3b8" font-size="7">per finding — copy, paste, done</text>
|
||||
|
||||
<rect x="360" y="180" width="155" height="48" rx="5" fill="rgba(34,211,238,0.12)" stroke="#22d3ee" stroke-width="1" stroke-dasharray="3,3"/>
|
||||
<text x="370" y="197" fill="#22d3ee" font-size="8" font-weight="600">✦ GEO Visibility</text>
|
||||
<text x="370" y="211" fill="#94a3b8" font-size="7">How visible in ChatGPT/</text>
|
||||
<text x="370" y="222" fill="#94a3b8" font-size="7">Gemini/Claude/Perplexity?</text>
|
||||
|
||||
<!-- IntelSight box -->
|
||||
<rect x="580" y="80" width="420" height="160" rx="8" fill="rgba(6,78,59,0.15)" stroke="#34d399" stroke-width="1.5"/>
|
||||
<text x="592" y="98" fill="#34d399" font-size="10" font-weight="600">IntelSight</text>
|
||||
<text x="592" y="112" fill="#64748b" font-size="8">$199 / $499 / $1,499/mo</text>
|
||||
|
||||
<rect x="595" y="125" width="190" height="48" rx="5" fill="rgba(6,78,59,0.4)" stroke="#34d399" stroke-width="1"/>
|
||||
<text x="605" y="142" fill="white" font-size="9" font-weight="600">Competitor Intelligence</text>
|
||||
<text x="605" y="156" fill="#94a3b8" font-size="7">Crunchbase + Hunter.io + OSINT</text>
|
||||
<text x="605" y="167" fill="#94a3b8" font-size="7">Funding, team, product alerts</text>
|
||||
|
||||
<rect x="795" y="125" width="190" height="48" rx="5" fill="rgba(6,78,59,0.4)" stroke="#34d399" stroke-width="1"/>
|
||||
<text x="805" y="142" fill="white" font-size="9" font-weight="600">Market Analysis</text>
|
||||
<text x="805" y="156" fill="#94a3b8" font-size="7">Multi-provider search</text>
|
||||
<text x="805" y="167" fill="#94a3b8" font-size="7">LLM synthesis & reports</text>
|
||||
|
||||
<rect x="595" y="180" width="190" height="48" rx="5" fill="rgba(52,211,153,0.12)" stroke="#34d399" stroke-width="1" stroke-dasharray="3,3"/>
|
||||
<text x="605" y="197" fill="#34d399" font-size="8" font-weight="600">✦ Competitive SEO Scan</text>
|
||||
<text x="605" y="211" fill="#94a3b8" font-size="7">Top 5 competitors SEO health</text>
|
||||
<text x="605" y="222" fill="#94a3b8" font-size="7">side-by-side with yours</text>
|
||||
|
||||
<rect x="795" y="180" width="190" height="48" rx="5" fill="rgba(52,211,153,0.12)" stroke="#34d399" stroke-width="1" stroke-dasharray="3,3"/>
|
||||
<text x="805" y="197" fill="#34d399" font-size="8" font-weight="600">✦ AI Visibility Matrix</text>
|
||||
<text x="805" y="211" fill="#94a3b8" font-size="7">Which competitors get cited</text>
|
||||
<text x="805" y="222" fill="#94a3b8" font-size="7">in ChatGPT/Gemini/Claude?</text>
|
||||
|
||||
<!-- Arrows: users → products -->
|
||||
<line x1="130" y1="147" x2="178" y2="147" stroke="#22d3ee" stroke-width="1.2" marker-end="url(#arrow-cyan)"/>
|
||||
<text x="154" y="141" fill="#64748b" font-size="7" text-anchor="middle">deploy</text>
|
||||
<line x1="130" y1="247" x2="578" y2="195" stroke="#34d399" stroke-width="1.2" marker-end="url(#arrow-emerald)"/>
|
||||
<text x="350" y="226" fill="#64748b" font-size="7">subscribe</text>
|
||||
|
||||
<!-- ============ DATA FLOW BOUNDARY ============ -->
|
||||
<rect x="160" y="280" width="860" height="70" rx="8" fill="transparent" stroke="#fbbf24" stroke-width="1" stroke-dasharray="8,4"/>
|
||||
<text x="172" y="298" fill="#fbbf24" font-size="9" font-weight="600">Cross-Product Data Flow (aggregated, anonymous only)</text>
|
||||
|
||||
<text x="350" y="320" fill="#94a3b8" font-size="8">Client site crawl → Competitive SEO baseline</text>
|
||||
<text x="350" y="335" fill="#94a3b8" font-size="8">Client SEO scores → Industry benchmarks · IntelSight alerts → Audit comparisons</text>
|
||||
|
||||
<!-- Arrows in data flow boundary -->
|
||||
<line x1="355" y1="145" x2="355" y2="290" stroke="#22d3ee" stroke-width="1" stroke-dasharray="3,3"/>
|
||||
<line x1="690" y1="145" x2="690" y2="290" stroke="#34d399" stroke-width="1" stroke-dasharray="3,3"/>
|
||||
|
||||
<!-- ============ SHARED INFRASTRUCTURE ============ -->
|
||||
<rect x="160" y="385" width="860" height="130" rx="8" fill="rgba(251,191,36,0.04)" stroke="#fbbf24" stroke-width="1.5"/>
|
||||
<text x="172" y="403" fill="#fbbf24" font-size="10" font-weight="600">Shared Infrastructure Layer</text>
|
||||
|
||||
<!-- Crawler Engine -->
|
||||
<rect x="180" y="418" width="185" height="55" rx="6" fill="rgba(120,53,15,0.2)" stroke="#fbbf24" stroke-width="1.5"/>
|
||||
<text x="272" y="440" fill="white" font-size="10" font-weight="600" text-anchor="middle">Crawler Engine</text>
|
||||
<text x="272" y="456" fill="#94a3b8" font-size="8" text-anchor="middle">Python/requests · HTTP fetch</text>
|
||||
<text x="272" y="468" fill="#94a3b8" font-size="7" text-anchor="middle">Config depth · Rate limit · Polite</text>
|
||||
|
||||
<!-- Audit Checkers -->
|
||||
<rect x="385" y="418" width="185" height="55" rx="6" fill="rgba(120,53,15,0.2)" stroke="#fbbf24" stroke-width="1.5"/>
|
||||
<text x="477" y="440" fill="white" font-size="10" font-weight="600" text-anchor="middle">Audit Checker Library</text>
|
||||
<text x="477" y="456" fill="#94a3b8" font-size="8" text-anchor="middle">50+ rules · pass/fail/warn</text>
|
||||
<text x="477" y="468" fill="#94a3b8" font-size="7" text-anchor="middle">Impact×Effort · Fix snippets</text>
|
||||
|
||||
<!-- Report Renderer -->
|
||||
<rect x="590" y="418" width="185" height="55" rx="6" fill="rgba(120,53,15,0.2)" stroke="#fbbf24" stroke-width="1.5"/>
|
||||
<text x="682" y="440" fill="white" font-size="10" font-weight="600" text-anchor="middle">Report Renderer</text>
|
||||
<text x="682" y="456" fill="#94a3b8" font-size="8" text-anchor="middle">PDF · HTML · Email</text>
|
||||
<text x="682" y="468" fill="#94a3b8" font-size="7" text-anchor="middle">Branded per product</text>
|
||||
|
||||
<!-- Super Search -->
|
||||
<rect x="795" y="418" width="210" height="55" rx="6" fill="rgba(120,53,15,0.2)" stroke="#fbbf24" stroke-width="1.5"/>
|
||||
<text x="900" y="440" fill="white" font-size="10" font-weight="600" text-anchor="middle">Super Search v2</text>
|
||||
<text x="900" y="456" fill="#94a3b8" font-size="8" text-anchor="middle">7 providers · Cache · Circuit break</text>
|
||||
<text x="900" y="468" fill="#94a3b8" font-size="7" text-anchor="middle">Port :8899 · Production-hardened</text>
|
||||
|
||||
<!-- API Gateway -->
|
||||
<rect x="350" y="488" width="480" height="20" rx="4" fill="rgba(6,78,59,0.3)" stroke="#34d399" stroke-width="1"/>
|
||||
<text x="590" y="502" fill="#34d399" font-size="8" font-weight="600" text-anchor="middle">API Gateway (FastAPI) — single entry point for both products</text>
|
||||
|
||||
<!-- Arrows: infra components → API Gateway -->
|
||||
<line x1="272" y1="473" x2="470" y2="486" stroke="#fbbf24" stroke-width="1"/>
|
||||
<line x1="477" y1="473" x2="530" y2="486" stroke="#fbbf24" stroke-width="1"/>
|
||||
<line x1="682" y1="473" x2="590" y2="486" stroke="#fbbf24" stroke-width="1"/>
|
||||
<line x1="900" y1="473" x2="710" y2="486" stroke="#fbbf24" stroke-width="1"/>
|
||||
|
||||
<!-- ============ DATABASES ============ -->
|
||||
<rect x="250" y="555" width="240" height="55" rx="6" fill="rgba(76,29,149,0.25)" stroke="#a78bfa" stroke-width="1.5"/>
|
||||
<text x="370" y="577" fill="white" font-size="10" font-weight="600" text-anchor="middle">SEO Audit DB</text>
|
||||
<text x="370" y="593" fill="#94a3b8" font-size="8" text-anchor="middle">Site audits · Scores · Trends · Client sites</text>
|
||||
<text x="370" y="605" fill="#a78bfa" font-size="7" text-anchor="middle">ITPP hosting tenant scope</text>
|
||||
|
||||
<rect x="560" y="555" width="240" height="55" rx="6" fill="rgba(76,29,149,0.25)" stroke="#a78bfa" stroke-width="1.5"/>
|
||||
<text x="680" y="577" fill="white" font-size="10" font-weight="600" text-anchor="middle">IntelSight DB</text>
|
||||
<text x="680" y="593" fill="#94a3b8" font-size="8" text-anchor="middle">Competitor profiles · CI data · Alerts</text>
|
||||
<text x="680" y="605" fill="#a78bfa" font-size="7" text-anchor="middle">Multi-tenant SaaS scope</text>
|
||||
|
||||
<!-- Arrows: API Gateway → Databases -->
|
||||
<line x1="410" y1="508" x2="370" y2="553" stroke="#a78bfa" stroke-width="1.2" marker-end="url(#arrow-violet)"/>
|
||||
<line x1="680" y1="508" x2="680" y2="553" stroke="#a78bfa" stroke-width="1.2" marker-end="url(#arrow-violet)"/>
|
||||
|
||||
<!-- ============ EXTERNAL APIs (right side) ============ -->
|
||||
<rect x="920" y="120" width="110" height="40" rx="5" fill="rgba(30,41,59,0.5)" stroke="#94a3b8" stroke-width="1"/>
|
||||
<text x="975" y="138" fill="white" font-size="9" font-weight="600" text-anchor="middle">Crunchbase</text>
|
||||
<text x="975" y="151" fill="#94a3b8" font-size="7" text-anchor="middle">API · $49/mo</text>
|
||||
|
||||
<rect x="920" y="175" width="110" height="40" rx="5" fill="rgba(30,41,59,0.5)" stroke="#94a3b8" stroke-width="1"/>
|
||||
<text x="975" y="193" fill="white" font-size="9" font-weight="600" text-anchor="middle">Hunter.io</text>
|
||||
<text x="975" y="206" fill="#94a3b8" font-size="7" text-anchor="middle">Email intel · $34/mo</text>
|
||||
|
||||
<rect x="920" y="230" width="110" height="40" rx="5" fill="rgba(30,41,59,0.5)" stroke="#94a3b8" stroke-width="1"/>
|
||||
<text x="975" y="248" fill="white" font-size="9" font-weight="600" text-anchor="middle">GSC / GA</text>
|
||||
<text x="975" y="261" fill="#94a3b8" font-size="7" text-anchor="middle">SEO data</text>
|
||||
|
||||
<rect x="920" y="285" width="110" height="40" rx="5" fill="rgba(30,41,59,0.5)" stroke="#94a3b8" stroke-width="1"/>
|
||||
<text x="975" y="303" fill="white" font-size="9" font-weight="600" text-anchor="middle">AI Engines</text>
|
||||
<text x="975" y="316" fill="#94a3b8" font-size="7" text-anchor="middle">ChatGPT · Gemini</text>
|
||||
|
||||
<!-- Arrows: external APIs → products -->
|
||||
<line x1="918" y1="140" x2="1002" y2="140" stroke="#94a3b8" stroke-width="1" stroke-dasharray="3,3"/>
|
||||
<line x1="918" y1="195" x2="1002" y2="195" stroke="#94a3b8" stroke-width="1" stroke-dasharray="3,3"/>
|
||||
<line x1="918" y1="250" x2="530" y2="175" stroke="#94a3b8" stroke-width="1" stroke-dasharray="3,3"/>
|
||||
<line x1="918" y1="305" x2="900" y2="440" stroke="#94a3b8" stroke-width="1" stroke-dasharray="3,3"/>
|
||||
|
||||
<!-- ============ LEGEND ============ -->
|
||||
<text x="30" y="660" fill="white" font-size="9" font-weight="600">Legend</text>
|
||||
|
||||
<rect x="30" y="672" width="14" height="9" rx="2" fill="rgba(8,51,68,0.4)" stroke="#22d3ee" stroke-width="1"/>
|
||||
<text x="50" y="680" fill="#94a3b8" font-size="7">SEO Audit Tool</text>
|
||||
|
||||
<rect x="170" y="672" width="14" height="9" rx="2" fill="rgba(6,78,59,0.4)" stroke="#34d399" stroke-width="1"/>
|
||||
<text x="190" y="680" fill="#94a3b8" font-size="7">IntelSight</text>
|
||||
|
||||
<rect x="290" y="672" width="14" height="9" rx="2" fill="rgba(120,53,15,0.2)" stroke="#fbbf24" stroke-width="1"/>
|
||||
<text x="310" y="680" fill="#94a3b8" font-size="7">Shared Infra</text>
|
||||
|
||||
<rect x="410" y="672" width="14" height="9" rx="2" fill="rgba(76,29,149,0.3)" stroke="#a78bfa" stroke-width="1"/>
|
||||
<text x="430" y="680" fill="#94a3b8" font-size="7">Database</text>
|
||||
|
||||
<rect x="530" y="672" width="14" height="9" rx="2" fill="rgba(30,41,59,0.5)" stroke="#94a3b8" stroke-width="1"/>
|
||||
<text x="550" y="680" fill="#94a3b8" font-size="7">External API</text>
|
||||
|
||||
<line x1="640" y1="677" x2="658" y2="677" stroke="#22d3ee" stroke-width="1" stroke-dasharray="3,3"/>
|
||||
<text x="664" y="680" fill="#94a3b8" font-size="7">New Feature (✦)</text>
|
||||
|
||||
<line x1="790" y1="677" x2="808" y2="677" stroke="#fbbf24" stroke-width="1" stroke-dasharray="8,4"/>
|
||||
<text x="814" y="680" fill="#94a3b8" font-size="7">Data Boundary</text>
|
||||
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
<!-- Info Cards -->
|
||||
<div class="cards">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<div class="card-dot cyan"></div>
|
||||
<h3>SEO Tool — New Features</h3>
|
||||
</div>
|
||||
<ul>
|
||||
<li>• AI Fix Prompt Generation — Claude/Cursor ready-made prompts per finding</li>
|
||||
<li>• llms.txt Checking — detect missing or malformed AI crawler instructions</li>
|
||||
<li>• GEO/AEO Visibility Scan — how visible is your site in AI search engines?</li>
|
||||
<li>• Impact × Effort Matrix — ranked fixes, not just severity lists</li>
|
||||
<li>• <10s Scan Speed — dopamine hit = conversion</li>
|
||||
<li>• MCP Server (Pro tier) — AI agents can trigger scans directly</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<div class="card-dot emerald"></div>
|
||||
<h3>IntelSight — New Features</h3>
|
||||
</div>
|
||||
<ul>
|
||||
<li>• Competitive SEO Health Scan — top 5 competitors vs your site</li>
|
||||
<li>• Competitor AI Visibility Matrix — who gets cited in AI engines?</li>
|
||||
<li>• Combined CI + SEO Report — funding + team + SEO in one view</li>
|
||||
<li>• llms.txt Competitive Analysis — who's preparing for AI crawlers?</li>
|
||||
<li>• Cross-product benchmarks — industry SEO averages from ITPP data</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<div class="card-dot amber"></div>
|
||||
<h3>Implementation Sequence</h3>
|
||||
</div>
|
||||
<ul>
|
||||
<li>• Phase 1 (Wk 1-2): Crawler Engine + Checker Library + API Gateway</li>
|
||||
<li>• Phase 2 (Wk 3-4): SEO Tool launch — audit, snippets, AI prompts</li>
|
||||
<li>• Phase 3 (Wk 5-8): IntelSight SEO features — competitive scan, AI matrix</li>
|
||||
<li>• Phase 4 (Wk 9-12): Cross-product benchmarks, white-label, MCP server</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="footer">
|
||||
IT Pro Partner — Product Division · git.itpropartner.com/ippadmin/seo-tool · intelsight.io
|
||||
</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,250 @@
|
||||
# SEO Tool + IntelSight — Shared Architecture
|
||||
|
||||
**Status:** OPEN
|
||||
**Date:** 2026-08-10
|
||||
**Products:** SEO Audit Tool (`git.itpropartner.com/ippadmin/seo-tool`), IntelSight (`intelsight.io`)
|
||||
|
||||
---
|
||||
|
||||
## 1. Core Principle
|
||||
|
||||
Two products. One infrastructure layer. Zero product merge.
|
||||
|
||||
| | SEO Audit Tool | IntelSight |
|
||||
|---|---|---|
|
||||
| **Buyer** | ITPP hosting client (small business owner) | Marketing VP, Founder, Strategy lead |
|
||||
| **Question** | "Why isn't my site getting traffic?" | "What are my competitors doing?" |
|
||||
| **Pricing** | Free / $49/mo Pro | $199–$1,499/mo |
|
||||
| **Current state** | Proposal (repo created Aug 10) | Proposal (July 25, 2026) |
|
||||
|
||||
They share the crawl engine, the audit checker library, the report renderer, and the Super Search backend. They sell to different people, at different price points, through different channels.
|
||||
|
||||
---
|
||||
|
||||
## 2. Shared Infrastructure Layer
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────┐
|
||||
│ SHARED INFRASTRUCTURE │
|
||||
│ │
|
||||
│ ┌──────────┐ ┌───────────┐ ┌──────────┐ ┌────────┐ │
|
||||
│ │ Crawler │ │ Audit │ │ Report │ │ Super │ │
|
||||
│ │ Engine │ │ Checkers │ │ Renderer │ │ Search │ │
|
||||
│ │ (Python/ │ │ (50+ rules│ │ (PDF/HTML│ │ (7 │ │
|
||||
│ │ requests)│ │ library) │ │ /email) │ │providers│ │
|
||||
│ └────┬─────┘ └─────┬─────┘ └────┬─────┘ └───┬────┘ │
|
||||
│ │ │ │ │ │
|
||||
│ ┌────┴──────────────┴─────────────┴────────────┴───┐ │
|
||||
│ │ API Gateway (FastAPI) │ │
|
||||
│ └──────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌──────────────────┐ ┌──────────────────┐ │
|
||||
│ │ IntelSight DB │ │ SEO Audit DB │ │
|
||||
│ │ (competitor │ │ (site audits, │ │
|
||||
│ │ profiles, │ │ scores, trends,│ │
|
||||
│ │ alerts, CI) │ │ client sites) │ │
|
||||
│ └──────────────────┘ └──────────────────┘ │
|
||||
└─────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### Crawler Engine
|
||||
|
||||
- HTTP crawler that fetches and parses any URL
|
||||
- Extracts: HTML structure, meta tags, headings, links, images, structured data, performance metrics
|
||||
- Used by both products — SEO tool crawls the client's own site; IntelSight crawls competitor sites
|
||||
- Configurable depth, rate limiting, politeness
|
||||
|
||||
### Audit Checker Library
|
||||
|
||||
- 50+ reusable check functions: `check_meta_description()`, `check_og_tags()`, `check_canonical()`, `check_structured_data()`, `check_heading_hierarchy()`, `check_image_alts()`, `check_internal_links()`, `check_llms_txt()`
|
||||
- Each check returns: `{ status: pass|fail|warn, score: 0-100, fix: "<html snippet>", impact: high|medium|low, effort: low|medium|high }`
|
||||
- Used by both products — SEO tool runs all checks on the client's site; IntelSight runs summary checks on competitor sites
|
||||
|
||||
### Report Renderer
|
||||
|
||||
- Takes audit results and produces: HTML dashboard, PDF report, email summary
|
||||
- SEO tool renders: per-page issues, fix-it snippets, trend charts
|
||||
- IntelSight renders: competitive SEO comparison, AI visibility matrix, CI + SEO combined report
|
||||
|
||||
### Super Search Backend
|
||||
|
||||
- Already production-hardened: 7 providers, circuit breakers, caching, port 8899
|
||||
- Powers IntelSight's competitive intelligence queries
|
||||
- Powers SEO tool's AI engine visibility checks (GEO/AEO)
|
||||
|
||||
---
|
||||
|
||||
## 3. Product-Specific Architecture
|
||||
|
||||
### SEO Audit Tool
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────┐
|
||||
│ SEO AUDIT TOOL │
|
||||
│ │
|
||||
│ Launch Audit Monthly Crawl │
|
||||
│ (on deploy) (cron, 30 days) │
|
||||
│ │ │ │
|
||||
│ └──────┬───────┘ │
|
||||
│ │ │
|
||||
│ ┌────────┴────────┐ │
|
||||
│ │ Per-Site Audit │ │
|
||||
│ │ Dashboard │ │
|
||||
│ │ seo.itpropartner│ │
|
||||
│ │ .com/{site} │ │
|
||||
│ └────────┬────────┘ │
|
||||
│ │ │
|
||||
│ ┌───────────┴───────────┐ │
|
||||
│ │ Fix-It Snippets │ │
|
||||
│ │ (copy-paste HTML │ │
|
||||
│ │ per issue, per page)│ │
|
||||
│ └───────────────────────┘ │
|
||||
│ │
|
||||
│ AI Fix Prompts AI Visibility │
|
||||
│ (Claude/Cursor/ (GEO/AEO check │
|
||||
│ Codex ready-made via Super Search)│
|
||||
│ fix instructions) │
|
||||
└─────────────────────────────────────┘
|
||||
```
|
||||
|
||||
**Feature Enhancements (from SeoLoupe analysis):**
|
||||
|
||||
| Enhancement | Effort | Value | Description |
|
||||
|---|---|---|---|
|
||||
| **AI Fix Prompt Generation** | Low | High | Each finding generates a ready-made prompt for Claude/Cursor/Codex — "Fix the meta description on /pricing. Current: '...' Suggested: '...'" |
|
||||
| **llms.txt Checking** | Low | Medium | Check if llms.txt exists and is well-formed. Flag missing or malformed. Zero-cost add to crawl phase |
|
||||
| **GEO/AEO Visibility Scan** | Medium | High | Query Super Search providers: "Is {domain} cited in AI search results?" Surface how the site appears in ChatGPT, Gemini, Claude, Perplexity |
|
||||
| **Impact x Effort Matrix** | Low | Medium | Formalize priority ranking as a 2x2 matrix (not just P0/P1/P2 list). Makes reports more actionable |
|
||||
| **<10s Scan Speed Target** | Medium | High | Automate end-to-end pipeline for instant feedback. Dopamine hit = conversion |
|
||||
| **MCP Server (Pro tier)** | Medium | High | Expose audit as MCP tools so external AI agents can trigger scans. First-mover in the agent ecosystem |
|
||||
|
||||
### IntelSight
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────┐
|
||||
│ INTELSIGHT │
|
||||
│ │
|
||||
│ Competitor Market Analysis │
|
||||
│ Profiles (funding, moves, │
|
||||
│ (Crunchbase, team changes, │
|
||||
│ Hunter.io, product launches) │
|
||||
│ OSINT) │
|
||||
│ │ │ │
|
||||
│ └──────┬───────┘ │
|
||||
│ │ │
|
||||
│ ┌────────┴────────┐ │
|
||||
│ │ CI Dashboard │ │
|
||||
│ │ intelsight.io │ │
|
||||
│ │ /dashboard │ │
|
||||
│ └────────┬────────┘ │
|
||||
│ │ │
|
||||
│ ┌───────────┴───────────┐ │
|
||||
│ │ Competitive SEO Scan │ ← NEW │
|
||||
│ │ (competitor site │ │
|
||||
│ │ health vs yours) │ │
|
||||
│ └───────────────────────┘ │
|
||||
│ │
|
||||
│ Competitor AI Alert Engine │
|
||||
│ Visibility (funding, team, │
|
||||
│ (GEO matrix) product changes) │
|
||||
└─────────────────────────────────────┘
|
||||
```
|
||||
|
||||
**Feature Enhancements:**
|
||||
|
||||
| Enhancement | Effort | Value | Description |
|
||||
|---|---|---|---|
|
||||
| **Competitive SEO Health Scan** | Medium | High | Crawl top 5 competitors and surface their SEO health side-by-side with yours. "Their meta tags are complete. Yours are missing on 12 pages." Uses the shared audit checker library |
|
||||
| **Competitor AI Visibility Matrix** | Medium | High | How visible are your competitors in ChatGPT, Gemini, Claude, Perplexity, Grok? Which competitors get cited? What queries? The GEO/AEO scan but applied to competitors |
|
||||
| **Combined CI + SEO Report** | Medium | Very High | One report per competitor: funding moves, team changes, product launches, AND their SEO health. "They raised $5M, hired a CMO, and their SEO score dropped 15 points — they're distracted, your window is now" |
|
||||
| **llms.txt Competitive Analysis** | Low | Low | Flag competitors who have/don't have llms.txt. Trend indicator — who's thinking about AI crawlers? |
|
||||
|
||||
---
|
||||
|
||||
## 4. Cross-Product Data Flow
|
||||
|
||||
```
|
||||
SEO Audit Tool IntelSight
|
||||
────────────── ──────────
|
||||
Client site crawl ──────────────→ Competitive SEO baseline
|
||||
(anonymous, aggregated)
|
||||
|
||||
Shared Crawler
|
||||
←────────────── Competitor site crawl
|
||||
|
||||
Client SEO scores ──────────────→ Industry benchmarks
|
||||
(aggregated, anon) "Average SMB scores 62/100.
|
||||
Your clients average 78/100."
|
||||
|
||||
←─────────────── IntelSight alerts
|
||||
"Competitor X launched new site.
|
||||
Run audit comparison?"
|
||||
```
|
||||
|
||||
Key rule: **client data stays in the SEO tool. Competitor data stays in IntelSight.** The shared layer only moves aggregated, anonymous benchmarks between them. No client PII crosses the boundary.
|
||||
|
||||
---
|
||||
|
||||
## 5. Implementation Sequence
|
||||
|
||||
### Phase 1: Foundation (Weeks 1-2)
|
||||
- Build the shared Crawler Engine (Python/requests, configurable depth, politeness)
|
||||
- Build the Audit Checker Library (50+ check functions)
|
||||
- Stand up shared API Gateway (FastAPI)
|
||||
- Separate databases per product
|
||||
|
||||
### Phase 2: SEO Tool Launch (Weeks 3-4)
|
||||
- Launch Audit: auto-runs on CloudPanel deploy webhook
|
||||
- Fix-It Snippets: HTML output per finding
|
||||
- Monthly crawl cron
|
||||
- AI Fix Prompt Generation (low effort, high impact)
|
||||
- llms.txt checking
|
||||
- Impact x Effort matrix in reports
|
||||
- Dashboard at `seo.itpropartner.com`
|
||||
|
||||
### Phase 3: IntelSight Enhancements (Weeks 5-8)
|
||||
- Competitive SEO Health Scan (uses shared audit checker)
|
||||
- Competitor AI Visibility Matrix (uses Super Search GEO queries)
|
||||
- Combined CI + SEO report template
|
||||
- MCP Server for external AI agent access
|
||||
|
||||
### Phase 4: Cross-Product (Weeks 9-12)
|
||||
- Anonymous industry benchmarks from SEO tool data
|
||||
- IntelSight alerts triggering SEO comparisons
|
||||
- White-label dashboard for agency clients
|
||||
- <10s scan speed optimization
|
||||
|
||||
---
|
||||
|
||||
## 6. What Stays Separate
|
||||
|
||||
| Layer | Separate? | Why |
|
||||
|---|---|---|
|
||||
| **Databases** | Separate | Client site data vs competitor intelligence — different access patterns, retention policies, privacy considerations |
|
||||
| **Auth / Tenants** | Separate | SEO tool: ITPP hosting auth (Stack Auth, existing). IntelSight: standalone SaaS auth with Stripe billing |
|
||||
| **Pricing / Billing** | Separate | SEO: bundled with hosting or $49/mo add-on. IntelSight: $199-1,499/mo standalone |
|
||||
| **Branding** | Separate | SEO: ITPP-branded, "your hosting includes this." IntelSight: standalone brand, intelsight.io |
|
||||
| **Go-to-Market** | Separate | SEO: hosting upsell, retention play. IntelSight: SaaS marketing, Product Hunt, direct sales |
|
||||
|
||||
---
|
||||
|
||||
## 7. Key Decisions
|
||||
|
||||
| Decision | Status | Notes |
|
||||
|---|---|---|
|
||||
| Merge products into one platform? | **SETTLED: No** | Different buyers, different pricing, different GTM |
|
||||
| Share crawl engine? | **SETTLED: Yes** | Same underlying tech, no reason to build twice |
|
||||
| Share audit checker library? | **SETTLED: Yes** | Check functions are pure logic — zero product coupling |
|
||||
| Cross-product data sharing? | **OPEN** | Aggregated/anonymous only. Privacy boundary TBD |
|
||||
| SEO Tool MCP Server? | **OPEN** | Pro tier feature. Proximity to agent ecosystem is a differentiator |
|
||||
| IntelSight SEO report depth? | **OPEN** | Full audit (like SEO tool) or summary (top 20 checks)? Depends on crawl politeness and competitor detection risk |
|
||||
|
||||
---
|
||||
|
||||
## 8. Next Actions
|
||||
|
||||
- [ ] Build shared Crawler Engine (`seo-crawler` package)
|
||||
- [ ] Define Audit Checker Library spec (50+ checks, output format)
|
||||
- [ ] Add AI Fix Prompt Generation to seo-audit skill (immediate low-effort win)
|
||||
- [ ] Add llms.txt check to seo-audit skill crawl phase
|
||||
- [ ] Prototype GEO/AEO visibility query via Super Search
|
||||
Reference in New Issue
Block a user