From 0a7697c2dde2d7d9266a97676d998ae431d64610 Mon Sep 17 00:00:00 2001 From: Oleg Proskurin Date: Mon, 5 Jan 2026 22:59:59 +0700 Subject: [PATCH] doc: update after adding placeholders guide --- ROADMAP.md | 170 ++++----- execution/19-placeholder-seo-sprint.md | 461 +++++-------------------- 2 files changed, 159 insertions(+), 472 deletions(-) diff --git a/ROADMAP.md b/ROADMAP.md index 35cd33d..303ef55 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -15,11 +15,11 @@ ## 🎯 Current Status -**Phase:** Pre-launch / Full Stack Deployed -**Sprint:** Placeholder SEO Sprint ⭐ ACTIVE -**Focus:** Capture 31K+ monthly placeholder image searches -**Next Milestone:** Landing page `/placeholder-images` + Docs section live -**Last Updated:** January 2, 2026 +**Phase:** Pre-launch / Full Stack Deployed +**Sprint:** Placeholder SEO Sprint ⭐ ACTIVE (Track A remaining) +**Focus:** Capture 31K+ monthly placeholder image searches +**Next Task:** Create landing page `/placeholder-images` +**Last Updated:** January 5, 2026 **See:** [19-placeholder-seo-sprint.md](execution/19-placeholder-seo-sprint.md) @@ -43,70 +43,67 @@ - [x] **Master API key generated** - [x] **Caddy reverse proxy configured** for all endpoints - [x] **DNS records added** (api, cdn, storage subdomains) -- [ ] **Full API testing** (generation, upload, CDN URLs) — planned by Dec 27 +- [ ] **Full API testing** (generation, upload, CDN URLs) — planned **See:** [18-production-infrastructure.md](execution/18-production-infrastructure.md) -### DataForSEO Integration (Dec 26, 2025) ⭐ NEW +### DataForSEO Integration (Dec 26, 2025) - [x] **DataForSEO MCP Server connected** to Claude Code - [x] **First keyword research completed** — "placeholder images" cluster - [x] **Research methodology validated** — $0.14 per full research cycle - [x] **Content opportunities identified** — 5 articles with clear targets -**See:** [research/seo-keyword-research-placeholder-images.md](research/seo-keyword-research-placeholder-images.md) - -### Project Knowledge Integration (Dec 29-30, 2025) ⭐ NEW +### Project Knowledge Integration (Dec 29-30, 2025) - [x] **BANATIE-CONTENT-INTEGRATION.md** created in Project Knowledge - - Navigation map for banatie-content repository - - Multi-agent system (9 agents), content pipeline, research structure - - Strategic input channels defined (inbox, Perplexity threads) - [x] **BANATIE-SERVICE-INTEGRATION.md** created in Project Knowledge - - Navigation map for banatie-service technical repository - - Monorepo structure, API docs paths, landing components - - Production URLs, deployment commands, key differentiators -**Purpose:** Enable @men to find authoritative information across repositories during strategy sessions. +--- -### Placeholder Niche Discovery (Jan 2, 2026) ⭐ NEW -- [x] **Deep dive research completed** — 31K+ monthly searches discovered +## ✅ Completed: Placeholder SEO Sprint — Tracks B+C (Jan 2-5, 2026) + +### Research Findings (Jan 2, 2026) +- [x] **Deep dive completed** — 31K+ monthly searches discovered - [x] **Zero-KD keywords identified** — 10+ keywords with KD 0-5 - [x] **Direct user validation found** — r/ClaudeAI quote about MCP for placeholders - [x] **Execution plan created** — 19-placeholder-seo-sprint.md -**See:** [19-placeholder-seo-sprint.md](execution/19-placeholder-seo-sprint.md) +### Track C: Homepage Quick Wins ✅ COMPLETE +- [x] **Keywords in metadata** — added placeholder-related keywords +- [x] **PromptUrlsSection** — updated to mention placeholders first -### Known Issues (Minor) -- [ ] Healthcheck: containers show "unhealthy" (no curl in images) -- [ ] Cache permission: landing warns about `.next/cache` +### Track B: Docs Section ✅ COMPLETE +- [x] **Live URLs docs enhanced** — added placeholder section with examples +- [x] **Guides section created** — `/docs/guides/` +- [x] **Placeholder Images guide** — `/docs/guides/placeholder-images/` + - Templates (general, photorealistic, illustration, etc.) + - Dark mode and color control + - Common use cases (avatars, heroes, products) + - File-based workflow --- -## 🔄 Active Sprint: Placeholder SEO Sprint +## 🔄 Active: Placeholder SEO Sprint — Track A -### Track A: Landing Page `/placeholder-images` (Priority 1) -- [ ] Verify Live URLs support `?width=X&height=Y` parameters -- [ ] Create MVP landing page (text-only, Hero + How It Works + Code + CTA) -- [ ] Deploy and submit to GSC -- [ ] Enhance with visuals and interactive size grid +### Track A: Landing Page `/placeholder-images` ⏳ TODO -**Target:** 14,800+ monthly searches (KD 17-18) +**Goal:** Capture 14,800+ monthly searches for core "placeholder image" keyword -### Track B: Docs Section `/docs/placeholders/` (Priority 2) -- [ ] Create `/docs/placeholders/` overview page -- [ ] Create `/docs/placeholders/dark-mode/` (4,400 vol, KD 2) ← HIGHEST PRIORITY -- [ ] Create `/docs/placeholders/profiles/` (720 vol, KD 0) -- [ ] Create `/docs/placeholders/sizes/` (1,000+ vol combined) +**Target Keywords:** +| Keyword | Volume | KD | +|---------|--------|-----| +| placeholder image | 14,800 | 18 | +| image placeholder | 14,800 | 17 | +| ai placeholder images | — | — | +| placeholder image generator | 480 | 32 | -**Target:** Zero-KD keywords for quick wins +**Page Structure:** +- Hero with instant demo +- How It Works (3 steps) +- Interactive size grid +- Comparison table (vs placehold.co, picsum) +- Production bridge CTA -### Track C: Homepage Quick Wins (Immediate) -- [ ] Add placeholder keywords to homepage metadata -- [ ] Update PromptUrlsSection subtitle to mention placeholders -- [ ] Add internal link to `/placeholder-images` - -### Paused (Resume After Sprint) -- [ ] ICP interview preparation -- [ ] Content marketing articles for dev.to +**File:** `apps/landing/src/app/(landings)/placeholder-images/page.tsx` --- @@ -115,40 +112,25 @@ | URL | Purpose | Status | |-----|---------|--------| | https://banatie.app/ | Landing page | ✅ Live | -| https://api.banatie.app/ | API service | 🔄 Deployed (testing pending) | -| https://cdn.banatie.app/ | Image CDN | 🔄 Deployed (testing pending) | -| https://storage.banatie.app/ | MinIO Console | 🔄 Deployed (testing pending) | +| https://banatie.app/docs/guides/placeholder-images | Placeholder guide | ✅ Live | +| https://api.banatie.app/ | API service | 🔄 Deployed | +| https://cdn.banatie.app/ | Image CDN | 🔄 Deployed | --- -## 📅 Upcoming: Content Marketing Sprint (January 2025) +## 📅 Next Up: Content Marketing Sprint (After Placeholder Landing) -**Duration:** 2 weeks intensive -**Goal:** Establish thought leadership, drive organic traffic +### SEO-Driven Content (from keyword research) -### SEO-Driven Content (from keyword research) ⭐ NEW - -| Priority | Content Type | Target Keyword | Volume | KD | Platform | -|----------|--------------|----------------|--------|-----|----------| -| 🥇 | Landing page | placeholder images | 14,800 | 32 | banatie.app | -| 🥇 | Dev tutorial | placeholder images api | 90 | 12 | dev.to + blog | -| 🥈 | Listicle | placeholder image generator | 480 | 32 | dev.to + blog | -| 🥈 | Tutorial | image placeholder html | 320 | 34 | blog | -| 🥉 | Blog post | random image api | 110 | 17 | blog | - -**See:** [research/seo-keyword-research-placeholder-images.md](research/seo-keyword-research-placeholder-images.md) +| Priority | Content Type | Target Keyword | Volume | KD | +|----------|--------------|----------------|--------|-----| +| 🥇 | Landing page | placeholder images | 14,800 | 18 | +| 🥈 | Dev tutorial | placeholder images api | 90 | 12 | +| 🥈 | Tutorial | image placeholder html | 320 | 34 | ### Additional Planned Content - Personal articles (dev.to, LinkedIn): 2-3 pieces -- Henry persona articles (dev.to, Hashnode): 4-6 pieces -- Nina persona (Instagram, creative): ongoing - -### Platforms -- dev.to -- Hashnode -- daily.dev -- LinkedIn -- Product Hunt (later) +- Henry persona articles: 4-6 pieces --- @@ -178,41 +160,23 @@ --- -### GATE 3: PMF Validation (Target: Q2-Q3 2025) - -**Success criteria:** -- $1-2K MRR achieved -- <5% monthly churn -- Organic word-of-mouth - ---- - ## 📋 Backlog ### Technical - [ ] Docs page with API examples -- [ ] Signup flow automation - [ ] MCP Server implementation - [ ] SDK TypeScript/Python - [ ] CLI tool -- [ ] Image transformations ### Marketing - [ ] Reddit r/cursor launch post -- [ ] Discord Cursor community engagement - [ ] Product Hunt launch - [ ] Case studies -### SEO & Content ⭐ NEW +### SEO & Content - [ ] Research additional keyword clusters -- [ ] Expand content-system to cover website pages - [ ] Competitor keyword gap analysis (fal.ai, runware.ai) -### Infrastructure -- [ ] Healthcheck fix in Dockerfiles -- [ ] Self-hosted Umami migration -- [ ] Email service integration - --- ## 🎯 Success Definitions @@ -220,31 +184,25 @@ ### Current Phase Success - ✅ Full stack deployed and working - ✅ Landing page live with good SEO -- ✅ Keyword research methodology validated ⭐ NEW +- ✅ Keyword research methodology validated +- ✅ Placeholder docs/guide created +- ⏳ Placeholder landing page - ⏳ ICP validated externally - ⏳ First paying customers ### Q1 2025 Success - $500-1K MRR - 10-20 active users -- Clear PMF signals -- Top-10 rankings for target keywords ⭐ NEW - -### Q2 2025 Success -- $2-3K MRR -- Sustainable growth -- Content marketing working +- Top-10 rankings for target keywords --- -**Roadmap Owner:** @men + Oleg -**Last Updated:** January 2, 2026 -**Next Review:** End of Placeholder SEO Sprint (mid-January) -**Version:** 4.3 (Placeholder SEO Sprint added Jan 2, 2026) +**Roadmap Owner:** @men + Oleg +**Last Updated:** January 5, 2026 +**Next Review:** After placeholder landing page deployment +**Version:** 4.4 (Sprint progress updated Jan 5, 2026) **Key Documents:** -- [19-placeholder-seo-sprint.md](execution/19-placeholder-seo-sprint.md) - Current sprint plan ⭐ ACTIVE -- [research/seo-keyword-research-placeholder-images.md](research/seo-keyword-research-placeholder-images.md) - Keyword research -- [18-production-infrastructure.md](execution/18-production-infrastructure.md) - Deployment details -- [13-competitive-analysis.md](strategy/13-competitive-analysis.md) - Competitive landscape -- [14-icp-segmentation-unified.md](strategy/14-icp-segmentation-unified.md) - Unified ICP segments +- [19-placeholder-seo-sprint.md](execution/19-placeholder-seo-sprint.md) — Current sprint ⭐ +- [research/seo-keyword-research-placeholder-images.md](research/seo-keyword-research-placeholder-images.md) — Keyword research +- [18-production-infrastructure.md](execution/18-production-infrastructure.md) — Deployment details diff --git a/execution/19-placeholder-seo-sprint.md b/execution/19-placeholder-seo-sprint.md index 6e12bfd..cb9bef2 100644 --- a/execution/19-placeholder-seo-sprint.md +++ b/execution/19-placeholder-seo-sprint.md @@ -1,21 +1,21 @@ # Placeholder SEO Sprint **Date Created:** January 2, 2026 -**Status:** Active -**Priority:** HIGH — Immediate execution +**Status:** Active — Track A remaining +**Priority:** HIGH **Owner:** Oleg -**Duration:** 2 weeks +**Last Updated:** January 5, 2026 --- -## Context +## Sprint Summary -@spy research uncovered a major SEO opportunity: +@spy research uncovered major SEO opportunity: | Metric | Value | |--------|-------| | Total search volume | 31,000+/month | -| Zero-KD keywords | 10+ keywords, 9K+ searches | +| Zero-KD keywords | 10+ keywords (profile, ios, dark mode) | | AI competitors | **ZERO** | | Direct user validation | r/ClaudeAI quote about MCP for placeholders | @@ -25,418 +25,147 @@ --- -## Two Parallel Tracks +## Research Key Findings -### Track A: Landing Page `/placeholder-images` (Primary) +### Top Keywords by Priority + +| Keyword | Volume | KD | Status | +|---------|--------|-----|--------| +| placeholder image | 14,800 | 18 | → Landing page | +| image placeholder dark | 4,400 | 2 | ✅ Covered in guide | +| app placeholder image | 1,900 | 2 | ✅ Covered in guide | +| profile placeholder image | 720 | 0 | ✅ Covered in guide | +| placeholder image url | 390 | 21 | ✅ Covered in Live URLs docs | + +### Zero-KD Opportunities (all covered in guide) + +- profile placeholder image — 720 vol, KD 0 +- ios placeholder image — 590 vol, KD 0 +- loading image placeholder — 170 vol, KD 0 +- image placeholder dark — 4,400 vol, KD 2 +- app placeholder image — 1,900 vol, KD 2 + +### Direct User Validation + +From r/ClaudeAI: +> "right now my instructions are to just do placeholder image in various sizes... I am wondering if there is an mcp that can create or fetch these images for Claude instead." + +--- + +## Execution Status + +### Track A: Landing Page `/placeholder-images` ⏳ TODO **Goal:** Capture 14,800+ monthly searches for core placeholder keywords **Target Keywords:** +- placeholder image (14,800) +- image placeholder (14,800) +- ai placeholder images +- placeholder image generator +- placeholder image url -| Keyword | Volume | KD | Priority | -|---------|--------|-----|----------| -| placeholder image | 14,800 | 18 | 🥇 | -| image placeholder | 14,800 | 17 | 🥇 | -| image placeholder dark | 4,400 | 2 | 🥇 | -| app placeholder image | 1,900 | 2 | 🥈 | -| placeholder image url | 390 | 21 | 🥈 | - -### Track B: Docs Section `/docs/placeholders/` (Secondary) - -**Goal:** Capture long-tail keywords, support conversion journey - -**Target Keywords:** - -| Keyword | Volume | KD | Priority | -|---------|--------|-----|----------| -| profile placeholder image | 720 | 0 | 🥇 | -| ios placeholder image | 590 | 0 | 🥇 | -| placeholder image css | 720 | 12 | 🥈 | -| placeholder image html | 320 | 26 | 🥈 | - ---- - -## Track A: Landing Page - -### Page Structure - -``` -URL: /placeholder-images -Title: "AI Placeholder Images — Generate Contextual Placeholders Instantly" -H1: "AI Placeholder Images" -``` - -**Sections:** - +**Page Structure:** ``` 1. HERO ├── H1: "AI Placeholder Images" - ├── Subhead: "Generate contextual placeholders instantly. Not random stock photos." - ├── [Interactive demo: prompt input → live result] - └── CTA: "Try It Free" / "Get API Key" + ├── Subhead: "Generate contextual placeholders instantly" + └── CTA: "Try It Free" 2. HOW IT WORKS (3 steps) - ├── Step 1: Describe what you need - ├── Step 2: Get instant URL - └── Step 3: Use in your code -3. LIVE URL DEMO - ├── Code snippet: - ├── Common sizes selector (avatar, thumbnail, hero, og) - └── Copy URL buttons - -4. COMMON SIZES (interactive grid) +3. SIZE GRID (interactive) ├── Avatar (200×200) - ├── Thumbnail (300×200) + ├── Thumbnail (300×200) ├── Card (400×300) - ├── Hero (1200×630) - ├── Product (600×600) - └── [Click to see example + copy URL] + └── Hero (1200×630) -5. USE CASES - ├── Development mockups - ├── Client presentations - ├── Prototyping - └── Design systems +4. COMPARISON TABLE + | placehold.co | Gray boxes | + | picsum.photos | Random stock | + | Banatie | AI-generated, contextual | -6. COMPARISON TABLE - | Service | Type | Result | - |---------|------|--------| - | placehold.co | Gray boxes | Generic | - | picsum.photos | Random stock | Irrelevant | - | Banatie | AI-generated | Contextual | +5. PRODUCTION BRIDGE + └── "Same images work in production" -7. PRODUCTION READY (conversion bridge) - ├── "These aren't just placeholders" - ├── "Same images work in production" - ├── "Or upgrade to full generation" - └── CTA: "Get Started with Full API" - -8. FOOTER CTA - └── Email signup / Get API Key +6. FOOTER CTA ``` -### SEO Requirements - -**Metadata:** -``` -title: "AI Placeholder Images — Generate Contextual Placeholders | Banatie" -description: "Generate AI placeholder images instantly. Not random stock photos — contextual images from your description. Free Live URLs for development." -keywords: [ - "placeholder image", - "image placeholder", - "ai placeholder images", - "placeholder image generator", - "placeholder image url", - "image placeholder dark", - "app placeholder image" -] -``` - -**JSON-LD:** -- WebPage schema -- HowTo schema (3 steps) -- Product schema (for rich snippets) - -**Internal Links:** -- → /docs/live-urls/ -- → /docs/placeholders/ (when created) -- → /docs/generation/ - -### Technical Requirements - -**Before launch, verify Live URLs support:** -- [ ] `?width=X&height=Y` parameters -- [ ] `?aspectRatio=X:Y` (already exists) -- [ ] Dark mode hint in prompt or parameter -- [ ] Common preset sizes - -**If missing:** Priority fix before landing page launch. - -### Deliverable - -**MVP Version (Day 1-2):** -- Text-only, minimal graphics -- Hero + How It Works + Code Example + CTA -- Working interactive demo (if Live URLs ready) - -**Enhanced Version (Day 3-5):** -- Size grid with examples -- Comparison table -- Better visuals +**File to create:** +- `apps/landing/src/app/(landings)/placeholder-images/page.tsx` --- -## Track B: Docs Section +### Track B: Docs Updates ✅ COMPLETE -### Structure +| Task | Status | Location | +|------|--------|----------| +| Live URLs — placeholder section | ✅ Done | `/docs/live-urls/` | +| Guides section created | ✅ Done | `/docs/guides/` | +| Placeholder Images guide | ✅ Done | `/docs/guides/placeholder-images/` | -``` -/docs/placeholders/ ← Main page (overview) -/docs/placeholders/sizes/ ← Size-specific examples -/docs/placeholders/dark-mode/ ← Dark mode placeholders (4,400 vol, KD 2) -/docs/placeholders/profiles/ ← Avatar/profile placeholders (720 vol, KD 0) -``` - -### Page 1: `/docs/placeholders/` (Overview) - -**Target:** "placeholder image api", "ai placeholder generator" - -**Content:** -```markdown -# Placeholder Images - -Generate contextual placeholder images with a single URL. - -## Quick Start -[Live URL example] - -## Why AI Placeholders? -- Relevant to your content (not random) -- Production-ready quality -- Instant via URL - -## Common Use Cases -- Development mockups -- Client demos -- Design prototypes - -## Next Steps -- [Sizes & Dimensions →](/docs/placeholders/sizes/) -- [Dark Mode Placeholders →](/docs/placeholders/dark-mode/) -- [Profile Avatars →](/docs/placeholders/profiles/) -``` - -### Page 2: `/docs/placeholders/dark-mode/` - -**Target:** "image placeholder dark" (4,400 vol, KD 2) ← HIGHEST PRIORITY - -**Content:** -```markdown -# Dark Mode Placeholder Images - -Generate placeholders optimized for dark mode interfaces. - -## How to Request Dark Mode -[URL with dark mode hint] - -## Examples -[Grid of dark mode examples] - -## Tips for Dark UI -- Use darker backgrounds -- Mention "dark theme" in prompt -- Avoid bright colors -``` - -### Page 3: `/docs/placeholders/profiles/` - -**Target:** "profile placeholder image" (720 vol, KD 0) ← ZERO DIFFICULTY - -**Content:** -```markdown -# Profile & Avatar Placeholders - -Generate realistic avatar placeholders for user profiles. - -## Standard Sizes -- 48×48 (small) -- 96×96 (medium) -- 200×200 (large) - -## Examples -[Avatar examples] - -## Diversity -Describe demographics in prompt for variety. -``` - -### Page 4: `/docs/placeholders/sizes/` - -**Target:** "200x200 placeholder image", "placeholder image 600x400" - -**Content:** -```markdown -# Placeholder Image Sizes - -Common sizes and how to request them. - -## Size Reference -| Use Case | Size | URL Parameter | -|----------|------|---------------| -| Avatar | 200×200 | ?width=200&height=200 | -| Thumbnail | 300×200 | ?width=300&height=200 | -| Card | 400×300 | ?aspectRatio=4:3 | -| Hero | 1200×630 | ?aspectRatio=1200:630 | - -## Custom Sizes -[How to specify any size] -``` +**Guide covers:** +- Quick Start with Live URLs +- Templates (general, photorealistic, illustration, etc.) +- Dark mode and color control +- Common use cases (avatars, heroes, products, testimonials) +- File-based workflow (API download) --- -## Track C: Homepage Quick Wins +### Track C: Homepage Quick Wins ✅ COMPLETE -### Current State - -Homepage at banatie.app is indexed. `PromptUrlsSection` already showcases Live URLs — perfect fit for placeholder messaging. - -### Recommended Changes - -**1. Add keywords to metadata:** - -```typescript -keywords: [ - 'API-first image generation', - 'AI image API', - 'image generation for developers', - 'prompt to image API', - 'CDN image delivery', - // ADD THESE: - 'placeholder images', - 'ai placeholder generator', - 'placeholder image api', -], -``` - -**2. Update PromptUrlsSection subtitle:** - -Current: -> "Perfect for static sites, prototypes, and AI coding agents that generate HTML." - -Proposed: -> "Perfect for placeholder images, prototypes, static sites, and AI coding agents." - -**3. Add internal link to placeholder page:** - -In PromptUrlsSection, add link: -> "See more: [AI Placeholder Images →](/placeholder-images)" - -### Implementation - -These are 10-minute changes. Do together with docs deployment. - ---- - -## Timeline - -### Week 1 - -| Day | Track A (Landing) | Track B (Docs) | Track C (Homepage) | -|-----|-------------------|----------------|-------------------| -| 1 | Verify Live URLs params | — | Add keywords + update subtitle | -| 1-2 | Create MVP landing page | — | — | -| 3 | Deploy, submit to GSC | Create /docs/placeholders/ | — | -| 4-5 | Enhance with visuals | Create dark-mode page | — | - -### Week 2 - -| Day | Track A | Track B | -|-----|---------|---------| -| 6-7 | Monitor GSC, iterate copy | Create profiles page | -| 8-10 | A/B test CTAs if traffic | Create sizes page | +| Task | Status | +|------|--------| +| Keywords in metadata | ✅ Added placeholder-related keywords | +| PromptUrlsSection subtitle | ✅ Updated to mention placeholders | --- ## Success Metrics -### Week 1 (Immediate) -- [ ] `/placeholder-images` live and indexed -- [ ] `/docs/placeholders/` section live (at least overview + dark-mode) -- [ ] Homepage keywords updated -- [ ] All pages in GSC +### Completed ✅ +- [x] Placeholder guide live at `/docs/guides/placeholder-images/` +- [x] Live URLs docs enhanced with placeholder examples +- [x] Homepage keywords updated +- [x] All pages in sitemap -### Month 1 +### Week 1 Targets +- [ ] `/placeholder-images` landing live and indexed +- [ ] GSC submission for new pages + +### Month 1 Targets - [ ] GSC shows impressions for placeholder keywords - [ ] First organic clicks from placeholder searches -- [ ] At least one signup attributed to placeholder content -### Month 3 +### Month 3 Targets - [ ] Top 20 for "placeholder image" (14,800 vol) - [ ] Top 10 for "image placeholder dark" (4,400 vol, KD 2) -- [ ] Top 5 for zero-KD keywords --- -## Technical Checklist +## Next Steps -### Before Landing Page Launch +1. **Create landing page** `/placeholder-images` + - Use research findings for structure + - Include interactive size grid + - Show comparison with competitors -- [ ] Live URLs support `?width=X&height=Y` -- [ ] Live URLs support `?aspectRatio=X:Y` (verify) -- [ ] Test dark mode prompts produce dark images -- [ ] CDN caching works for Live URLs -- [ ] No rate limit issues for demo +2. **Submit to GSC** after deployment -### SEO Checklist - -- [ ] Canonical URLs set -- [ ] OG image created or use default -- [ ] JSON-LD schemas added -- [ ] Internal links from homepage -- [ ] Internal links from docs -- [ ] sitemap.xml updated -- [ ] GSC submission - ---- - -## Risk Mitigation - -| Risk | Mitigation | -|------|------------| -| Live URLs not ready | Launch docs first, landing page waits | -| Low conversion to full API | Add clear upgrade path messaging | -| Competitors copy quickly | Speed — be first, build authority | -| Placeholder users expect free | Set expectations early, free tier limits | - ---- - -## Conversion Strategy - -**Key Message Throughout:** - -> "Start with placeholders. Ship with production-ready images." - -**Upgrade Triggers:** -1. Hit free tier limit → upgrade prompt -2. Need consistency across images → show references feature -3. Want higher quality → show production generation -4. Need API integration → show full API docs - -**Placement:** -- End of every placeholder doc page -- Bottom of landing page -- In-app after X free generations - ---- - -## Files to Create - -### Landing -- `apps/landing/src/app/(landings)/placeholder-images/page.tsx` - -### Docs -- `apps/landing/src/app/(apps)/docs/placeholders/page.tsx` -- `apps/landing/src/app/(apps)/docs/placeholders/dark-mode/page.tsx` -- `apps/landing/src/app/(apps)/docs/placeholders/profiles/page.tsx` -- `apps/landing/src/app/(apps)/docs/placeholders/sizes/page.tsx` - -### Config Updates -- `src/config/docs-seo.ts` — add placeholder pages -- `src/config/docs-schema.ts` — add schemas if needed -- `src/app/sitemap.ts` — add new URLs +3. **Monitor rankings** for target keywords --- ## Reference Documents - Research: `/banatie-content/research/keywords/placeholder-niche-deep-dive-2026-01-02.md` -- Content brief: `/banatie-content/0-inbox/placeholder-ai-images.md` -- Docs SEO task: `/banatie-service/docs-seo-task.md` +- Guide revision task: `/banatie-service/inbox/task-placeholder-guide-revision.md` (if created) +- Docs SEO analysis: `/banatie-content/research/keywords/docs-seo-analysis-2026-01-02.md` --- **Document Owner:** @men -**Last Updated:** January 2, 2026 -**Next Review:** End of Week 1 -**Status:** Ready for execution +**Last Updated:** January 5, 2026 +**Next Review:** After landing page deployment +**Status:** Track B+C complete, Track A in progress