Compare commits
25 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ea06638493 | |||
| 2977963067 | |||
| 64136709b6 | |||
| affc3aab49 | |||
| 0cdc990715 | |||
| 6b068a2c92 | |||
| 17923c78a9 | |||
| 194afa2f09 | |||
| 11e3b0ff69 | |||
| e18a04403b | |||
| 34501dd36c | |||
| 20443e1361 | |||
| 9698318a30 | |||
| c8e2d11556 | |||
| a45a348b08 | |||
| 5d48b351be | |||
| cafdd38e58 | |||
| c38fd75ec5 | |||
| dfe912224e | |||
| f23b665461 | |||
| 4eaf647eef | |||
| 138dc3a9be | |||
| 2b4cccbfcf | |||
| a04b00d810 | |||
| d97425f15b |
@@ -6,53 +6,14 @@
|
||||
},
|
||||
"metadata": {
|
||||
"description": "Marketing skills for AI agents — conversion optimization, copywriting, SEO, paid ads, and growth",
|
||||
"version": "1.0.0",
|
||||
"version": "1.8.0",
|
||||
"repository": "https://github.com/coreyhaines31/marketingskills"
|
||||
},
|
||||
"plugins": [
|
||||
{
|
||||
"name": "marketing-skills",
|
||||
"description": "36 marketing skills for technical marketers and founders: ASO, CRO, copywriting, cold email, SEO, AI SEO, paid ads, ad creative, churn prevention, pricing strategy, referral programs, revenue operations, sales enablement, customer research, site architecture, and more",
|
||||
"source": ".",
|
||||
"strict": false,
|
||||
"skills": [
|
||||
"skills/ab-test-setup",
|
||||
"skills/ad-creative",
|
||||
"skills/ai-seo",
|
||||
"skills/analytics-tracking",
|
||||
"skills/aso-audit",
|
||||
"skills/churn-prevention",
|
||||
"skills/cold-email",
|
||||
"skills/community-marketing",
|
||||
"skills/competitor-alternatives",
|
||||
"skills/content-strategy",
|
||||
"skills/copy-editing",
|
||||
"skills/copywriting",
|
||||
"skills/customer-research",
|
||||
"skills/email-sequence",
|
||||
"skills/form-cro",
|
||||
"skills/free-tool-strategy",
|
||||
"skills/launch-strategy",
|
||||
"skills/lead-magnets",
|
||||
"skills/marketing-ideas",
|
||||
"skills/marketing-psychology",
|
||||
"skills/onboarding-cro",
|
||||
"skills/page-cro",
|
||||
"skills/paid-ads",
|
||||
"skills/paywall-upgrade-cro",
|
||||
"skills/popup-cro",
|
||||
"skills/pricing-strategy",
|
||||
"skills/product-marketing-context",
|
||||
"skills/programmatic-seo",
|
||||
"skills/referral-program",
|
||||
"skills/revops",
|
||||
"skills/sales-enablement",
|
||||
"skills/schema-markup",
|
||||
"skills/seo-audit",
|
||||
"skills/signup-flow-cro",
|
||||
"skills/site-architecture",
|
||||
"skills/social-content"
|
||||
]
|
||||
"description": "40 marketing skills for technical marketers and founders: ASO, CRO, copywriting, cold email, SEO, AI SEO, paid ads, ad creative, video production, image generation, churn prevention, pricing strategy, referral programs, revenue operations, sales enablement, customer research, site architecture, and more",
|
||||
"source": "./"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"name": "marketing-skills",
|
||||
"description": "Marketing skills for AI agents — conversion optimization, copywriting, SEO, paid ads, ad creative, and growth",
|
||||
"version": "1.8.0",
|
||||
"author": {
|
||||
"name": "Corey Haines"
|
||||
},
|
||||
"homepage": "https://github.com/coreyhaines31/marketingskills",
|
||||
"repository": "https://github.com/coreyhaines31/marketingskills",
|
||||
"license": "MIT",
|
||||
"skills": "./skills"
|
||||
}
|
||||
+2
-2
@@ -14,8 +14,8 @@ node_modules/
|
||||
* 2.*
|
||||
* 2/
|
||||
|
||||
# Remotion video project
|
||||
video/
|
||||
# Remotion video project (root only, not skills/video/)
|
||||
/video/
|
||||
|
||||
# Editor
|
||||
*.swp
|
||||
|
||||
@@ -33,9 +33,10 @@ Skills reference each other and build on shared context. The `product-marketing-
|
||||
│seo-audit │ │page-cro │ │copywritng│ │paid-ads │ │referral │ │revops │ │mktg-ideas │
|
||||
│ai-seo │ │signup-cro│ │copy-edit │ │ad-creative │ │free-tool │ │sales-enable │ │mktg-psych │
|
||||
│site-arch │ │onboard │ │cold-email│ │ab-test │ │churn- │ │launch │ │customer- │
|
||||
│programm │ │form-cro │ │email-seq │ │analytics │ │ prevent │ │pricing │ │research │
|
||||
│schema │ │popup-cro │ │social │ │ │ │ │ │competitor │ │ │
|
||||
│content │ │paywall │ │ │ │ │ │ │ │ │ │ │
|
||||
│programm │ │form-cro │ │email-seq │ │analytics │ │ prevent │ │pricing │ │ research │
|
||||
│schema │ │popup-cro │ │social │ │ │ │community │ │comp-alts │ │ │
|
||||
│content │ │paywall │ │video │ │ │ │lead-magnt│ │comp-profile │ │ │
|
||||
│aso-audit │ │ │ │image │ │ │ │ │ │directory │ │ │
|
||||
└────┬─────┘ └────┬─────┘ └────┬─────┘ └─────┬──────┘ └────┬─────┘ └──────┬──────┘ └─────┬─────┘
|
||||
│ │ │ │ │ │ │
|
||||
└────────────┴─────┬──────┴──────────────┴─────────────┴──────────────┴──────────────┘
|
||||
@@ -63,13 +64,16 @@ See each skill's **Related Skills** section for the full dependency map.
|
||||
| [cold-email](skills/cold-email/) | Write B2B cold emails and follow-up sequences that get replies. Use when the user wants to write cold outreach emails,... |
|
||||
| [community-marketing](skills/community-marketing/) | Build and leverage online communities to drive product growth and brand loyalty. Use when the user wants to create a... |
|
||||
| [competitor-alternatives](skills/competitor-alternatives/) | When the user wants to create competitor comparison or alternative pages for SEO and sales enablement. Also use when... |
|
||||
| [competitor-profiling](skills/competitor-profiling/) | When the user wants to research, profile, or analyze competitors from their URLs. Also use when the user mentions 'competitor profile,' 'competitor research,'... |
|
||||
| [content-strategy](skills/content-strategy/) | When the user wants to plan a content strategy, decide what content to create, or figure out what topics to cover. Also... |
|
||||
| [copy-editing](skills/copy-editing/) | When the user wants to edit, review, or improve existing marketing copy, or refresh outdated content. Also use when the... |
|
||||
| [copywriting](skills/copywriting/) | When the user wants to write, rewrite, or improve marketing copy for any page — including homepage, landing pages,... |
|
||||
| [customer-research](skills/customer-research/) | When the user wants to conduct, analyze, or synthesize customer research. Use when the user mentions "customer... |
|
||||
| [directory-submissions](skills/directory-submissions/) | When the user wants to submit their product to startup, SaaS, AI, agent, MCP, no-code, or review directories for backlinks, domain rating, and discovery. Covers Product Hunt prep, Reviews playbook, GEO, and destination pages strategy. |
|
||||
| [email-sequence](skills/email-sequence/) | When the user wants to create or optimize an email sequence, drip campaign, automated email flow, or lifecycle email... |
|
||||
| [form-cro](skills/form-cro/) | When the user wants to optimize any form that is NOT signup/registration — including lead capture forms, contact forms,... |
|
||||
| [free-tool-strategy](skills/free-tool-strategy/) | When the user wants to plan, evaluate, or build a free tool for marketing purposes — lead generation, SEO value, or... |
|
||||
| [image](skills/image/) | When the user wants to create, generate, edit, or optimize images for marketing — blog heroes, social graphics, product mockups, profile banners, listing visuals, or brand assets... |
|
||||
| [launch-strategy](skills/launch-strategy/) | When the user wants to plan a product launch, feature announcement, or release strategy. Also use when the user... |
|
||||
| [lead-magnets](skills/lead-magnets/) | When the user wants to create, plan, or optimize a lead magnet for email capture or lead generation. Also use when the... |
|
||||
| [marketing-ideas](skills/marketing-ideas/) | When the user needs marketing ideas, inspiration, or strategies for their SaaS or software product. Also use when the... |
|
||||
@@ -90,6 +94,7 @@ See each skill's **Related Skills** section for the full dependency map.
|
||||
| [signup-flow-cro](skills/signup-flow-cro/) | When the user wants to optimize signup, registration, account creation, or trial activation flows. Also use when the... |
|
||||
| [site-architecture](skills/site-architecture/) | When the user wants to plan, map, or restructure their website's page hierarchy, navigation, URL structure, or internal... |
|
||||
| [social-content](skills/social-content/) | When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram,... |
|
||||
| [video](skills/video/) | When the user wants to create, generate, or produce video content using AI tools or programmatic frameworks. Covers Remotion, Hyperframes, HeyGen, Veo, Runway, Kling... |
|
||||
<!-- SKILLS:END -->
|
||||
|
||||
## Installation
|
||||
@@ -216,6 +221,7 @@ You can also invoke skills directly:
|
||||
- `cold-email` - B2B cold outreach emails and sequences
|
||||
- `email-sequence` - Automated email flows
|
||||
- `social-content` - Social media content
|
||||
- `image` - AI image generation, design tools, and optimization
|
||||
|
||||
### SEO & Discovery
|
||||
- `seo-audit` - Technical and on-page SEO
|
||||
|
||||
+19
@@ -8,12 +8,17 @@ Current versions of all skills. Agents can compare against local versions to che
|
||||
| ad-creative | 1.2.0 | 2026-03-14 |
|
||||
| ai-seo | 1.2.0 | 2026-03-14 |
|
||||
| analytics-tracking | 1.2.0 | 2026-03-14 |
|
||||
| aso-audit | 1.0.0 | 2026-04-21 |
|
||||
| churn-prevention | 1.2.0 | 2026-03-14 |
|
||||
| cold-email | 1.2.0 | 2026-03-14 |
|
||||
| competitor-alternatives | 1.2.0 | 2026-03-14 |
|
||||
| community-marketing | 1.0.0 | 2026-04-21 |
|
||||
| competitor-profiling | 1.0.0 | 2026-04-07 |
|
||||
| content-strategy | 1.2.0 | 2026-03-14 |
|
||||
| copy-editing | 1.2.0 | 2026-03-14 |
|
||||
| copywriting | 1.2.0 | 2026-03-14 |
|
||||
| customer-research | 1.0.0 | 2026-04-21 |
|
||||
| directory-submissions | 1.0.0 | 2026-04-21 |
|
||||
| email-sequence | 1.2.0 | 2026-03-14 |
|
||||
| form-cro | 1.2.0 | 2026-03-14 |
|
||||
| free-tool-strategy | 1.2.0 | 2026-03-14 |
|
||||
@@ -37,9 +42,23 @@ Current versions of all skills. Agents can compare against local versions to che
|
||||
| signup-flow-cro | 1.2.0 | 2026-03-14 |
|
||||
| site-architecture | 1.2.0 | 2026-03-14 |
|
||||
| social-content | 1.2.0 | 2026-03-14 |
|
||||
| video | 1.0.0 | 2026-04-21 |
|
||||
|
||||
## Recent Changes
|
||||
|
||||
### 2026-04-21
|
||||
- Added `directory-submissions` skill for Product Hunt, G2, AI directories, and backlink strategy
|
||||
- Added `competitor-profiling` skill for competitive intelligence research
|
||||
- Added international SEO & localization section to `seo-audit` (1.2.0)
|
||||
- Added conversion tracking reference to `paid-ads` (cross-platform pixel setup)
|
||||
- Added Zapier SDK integration for 8,000+ app access
|
||||
- Fixed plugin loading: removed `./` prefix from marketplace.json skill paths (#243)
|
||||
- Hardened CLI tools: Supermetrics API key moved to header, ZoomInfo JWT masked by default
|
||||
- Fixed community-marketing YAML frontmatter (#240)
|
||||
- Fixed Zapier webhook URL validation (#247)
|
||||
- Added missing skills to VERSIONS.md (aso-audit, community-marketing, customer-research — shipped in prior releases)
|
||||
- Total skills: 38
|
||||
|
||||
### 2026-03-14
|
||||
- Added `lead-magnets` skill for lead magnet strategy, format selection, and conversion optimization
|
||||
- Added Composio integration layer for MCP access to OAuth-heavy tools (HubSpot, Salesforce, Meta Ads, LinkedIn Ads, Google Sheets, Slack, Notion, etc.)
|
||||
|
||||
@@ -0,0 +1,411 @@
|
||||
---
|
||||
name: competitor-profiling
|
||||
description: "When the user wants to research, profile, or analyze competitors from their URLs. Also use when the user mentions 'competitor profile,' 'competitor research,' 'competitor analysis,' 'profile this competitor,' 'analyze competitor,' 'competitive intelligence,' 'competitor deep dive,' 'who are my competitors,' 'competitor landscape,' 'competitor dossier,' 'competitive audit,' or 'research these competitors.' Input is a list of competitor URLs. Output is structured competitor profile markdown files. For creating comparison/alternative pages from profiles, see competitor-alternatives. For sales-specific battle cards, see sales-enablement."
|
||||
metadata:
|
||||
version: 1.0.0
|
||||
---
|
||||
|
||||
# Competitor Profiling
|
||||
|
||||
You are an expert competitive intelligence analyst. Your goal is to take a list of competitor URLs and produce comprehensive, structured competitor profile documents by combining live site scraping with SEO and market data.
|
||||
|
||||
## Initial Assessment
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered.
|
||||
|
||||
Before profiling, confirm:
|
||||
|
||||
1. **Competitor URLs** — the list of competitor website URLs to profile
|
||||
2. **Your product** — what you do (if not in product marketing context)
|
||||
3. **Depth level** — quick scan (key facts only) or deep profile (full research)
|
||||
4. **Focus areas** — any specific dimensions to prioritize (e.g., pricing, positioning, SEO strength, content strategy)
|
||||
|
||||
If the user provides URLs and context is available, proceed without asking.
|
||||
|
||||
---
|
||||
|
||||
## Core Principles
|
||||
|
||||
### 1. Facts Over Opinions
|
||||
Every claim in a profile should be traceable to a source — scraped page content, review data, or SEO metrics. Label inferences clearly.
|
||||
|
||||
### 2. Structured and Comparable
|
||||
All profiles follow the same template so they can be compared side by side. Consistency matters more than completeness on any single profile.
|
||||
|
||||
### 3. Current Data
|
||||
Profiles are snapshots. Always include the date generated. Flag anything that looks stale (e.g., "pricing page last updated 2023").
|
||||
|
||||
### 4. Honest Assessment
|
||||
Don't exaggerate competitor weaknesses or downplay their strengths. Accurate profiles are useful profiles.
|
||||
|
||||
---
|
||||
|
||||
## Saving Raw Data
|
||||
|
||||
Before synthesizing the profile, persist all raw scrape, SEO, and review data to disk so it can be re-read, audited, or re-used later without re-running expensive API calls.
|
||||
|
||||
**Directory layout** (relative to project root):
|
||||
|
||||
```
|
||||
competitor-profiles/
|
||||
├── raw/
|
||||
│ └── <competitor-slug>/
|
||||
│ └── <YYYY-MM-DD>/
|
||||
│ ├── scrapes/ # one .md file per scraped page (homepage.md, pricing.md, ...)
|
||||
│ ├── seo/ # one .json file per DataForSEO call (backlinks-summary.json, ranked-keywords.json, ...)
|
||||
│ └── reviews/ # one .md or .json file per review source (g2.md, capterra.md, ...)
|
||||
├── <competitor-slug>.md # final synthesized profile
|
||||
└── _summary.md # cross-competitor summary
|
||||
```
|
||||
|
||||
Rules:
|
||||
|
||||
- `<competitor-slug>` is lowercase, hyphenated (e.g. `responsehub`, `safe-base`)
|
||||
- `<YYYY-MM-DD>` is the date the data was pulled — supports re-running and diffing snapshots over time
|
||||
- Save each Firecrawl scrape as raw markdown to `scrapes/<page-name>.md`
|
||||
- Save each DataForSEO response as raw JSON to `seo/<endpoint-name>.json`
|
||||
- Save each review source to `reviews/<source>.md` (cleaned text) or `.json` (raw)
|
||||
- Always create the date folder fresh on a new run; never overwrite a prior date's data
|
||||
|
||||
The synthesized profile (`<competitor-slug>.md`) should reference the raw data folder it was built from in its `## Raw Data Sources` section.
|
||||
|
||||
---
|
||||
|
||||
## Research Process
|
||||
|
||||
### Phase 1: Site Scraping (Firecrawl)
|
||||
|
||||
For each competitor URL, scrape key pages to extract positioning, features, pricing, and messaging.
|
||||
|
||||
#### Step 1: Map the site
|
||||
|
||||
Use **Firecrawl Map** to discover the competitor's site structure and identify key pages:
|
||||
|
||||
```
|
||||
firecrawl_map → competitor URL
|
||||
```
|
||||
|
||||
From the map, identify and prioritize these page types:
|
||||
- Homepage
|
||||
- Pricing page
|
||||
- Features / product pages
|
||||
- About / company page
|
||||
- Blog (top-level, for content strategy signals)
|
||||
- Customers / case studies page
|
||||
- Integrations page
|
||||
- Changelog / what's new (if exists)
|
||||
|
||||
#### Step 2: Scrape key pages
|
||||
|
||||
Use **Firecrawl Scrape** on each identified page:
|
||||
|
||||
```
|
||||
firecrawl_scrape → each key page URL
|
||||
```
|
||||
|
||||
Save each result to `competitor-profiles/raw/<competitor-slug>/<YYYY-MM-DD>/scrapes/<page-name>.md` before extracting fields.
|
||||
|
||||
Extract from each page:
|
||||
|
||||
| Page | What to Extract |
|
||||
|------|----------------|
|
||||
| **Homepage** | Headline, subheadline, value proposition, primary CTA, social proof claims, target audience signals |
|
||||
| **Pricing** | Tiers, prices, feature breakdown per tier, billing options, free tier/trial details, enterprise pricing signals |
|
||||
| **Features** | Feature categories, key capabilities, how they describe each feature, screenshots/demo signals |
|
||||
| **About** | Founding story, team size, funding, mission statement, headquarters |
|
||||
| **Customers** | Named customers, logos, industries served, case study themes |
|
||||
| **Integrations** | Integration count, key integrations, categories |
|
||||
| **Changelog** | Release velocity, recent focus areas, product direction signals |
|
||||
|
||||
#### Step 3: Scrape competitor reviews (optional but high-value)
|
||||
|
||||
Use **Firecrawl Scrape** or **Firecrawl Search** to find:
|
||||
- G2 reviews page for the competitor
|
||||
- Capterra reviews page
|
||||
- Product Hunt launch page
|
||||
- TrustRadius profile
|
||||
|
||||
Save each scraped review page to `competitor-profiles/raw/<competitor-slug>/<YYYY-MM-DD>/reviews/<source>.md`. Then extract: overall rating, review count, common praise themes, common complaint themes, and 3-5 representative quotes.
|
||||
|
||||
---
|
||||
|
||||
### Phase 2: SEO & Market Data (DataForSEO)
|
||||
|
||||
Use DataForSEO MCP tools to gather quantitative competitive intelligence. Save each raw response as JSON to `competitor-profiles/raw/<competitor-slug>/<YYYY-MM-DD>/seo/<endpoint-name>.json` before parsing it into the profile. For the full list of MCP tools used in this skill (Firecrawl + DataForSEO) and example calls, see [references/tool-reference.md](references/tool-reference.md).
|
||||
|
||||
#### Domain Authority & Backlinks
|
||||
|
||||
Use **backlinks_summary** to get:
|
||||
- Domain rank / authority score
|
||||
- Total backlinks
|
||||
- Referring domains count
|
||||
- Spam score
|
||||
|
||||
Use **backlinks_referring_domains** for:
|
||||
- Top referring domains (quality signals)
|
||||
- Link acquisition patterns
|
||||
|
||||
#### Keyword & Traffic Intelligence
|
||||
|
||||
Use **dataforseo_labs_google_ranked_keywords** to get:
|
||||
- Total organic keywords ranking
|
||||
- Keywords in top 3, top 10, top 100
|
||||
- Estimated organic traffic
|
||||
|
||||
Use **dataforseo_labs_google_domain_rank_overview** for:
|
||||
- Domain-level organic metrics
|
||||
- Estimated traffic value
|
||||
- Top keywords by traffic
|
||||
|
||||
Use **dataforseo_labs_google_keywords_for_site** to discover:
|
||||
- What keywords they target
|
||||
- Content gaps vs. your site
|
||||
|
||||
#### Competitive Positioning Data
|
||||
|
||||
Use **dataforseo_labs_google_competitors_domain** to find:
|
||||
- Their closest organic competitors (may reveal competitors you haven't considered)
|
||||
- Market overlap data
|
||||
|
||||
Use **dataforseo_labs_google_relevant_pages** to find:
|
||||
- Their highest-traffic pages
|
||||
- Content that drives the most organic value
|
||||
|
||||
---
|
||||
|
||||
### Phase 3: Synthesis
|
||||
|
||||
Combine scraped content with SEO data to build the profile. Cross-reference claims (e.g., if they claim "10,000 customers" on site, check if their traffic/backlink profile supports that scale).
|
||||
|
||||
---
|
||||
|
||||
## Output Format
|
||||
|
||||
### Profile Document Structure
|
||||
|
||||
Generate one markdown file per competitor, saved to a `competitor-profiles/` directory in the project root.
|
||||
|
||||
**Filename**: `competitor-profiles/[competitor-name].md`
|
||||
|
||||
**For the full profile and summary templates**: See [references/templates.md](references/templates.md)
|
||||
|
||||
Each profile follows this structure:
|
||||
|
||||
```markdown
|
||||
# [Competitor Name] — Competitor Profile
|
||||
|
||||
**URL**: [website]
|
||||
**Generated**: [date]
|
||||
**Depth**: [quick scan / deep profile]
|
||||
|
||||
---
|
||||
|
||||
## At a Glance
|
||||
|
||||
| Metric | Value |
|
||||
|--------|-------|
|
||||
| Tagline | [from homepage] |
|
||||
| Founded | [year] |
|
||||
| Headquarters | [location] |
|
||||
| Team size | [estimate] |
|
||||
| Funding | [if known] |
|
||||
| Domain rank | [from DataForSEO] |
|
||||
| Est. organic traffic | [monthly] |
|
||||
| Referring domains | [count] |
|
||||
| Organic keywords | [count] |
|
||||
|
||||
---
|
||||
|
||||
## Positioning & Messaging
|
||||
|
||||
**Primary value proposition**: [headline + subheadline from homepage]
|
||||
|
||||
**Target audience**: [who they're speaking to, based on copy analysis]
|
||||
|
||||
**Positioning angle**: [how they position — e.g., "simplicity-first," "enterprise-grade," "all-in-one"]
|
||||
|
||||
**Key messaging themes**:
|
||||
- [theme 1 — with source page]
|
||||
- [theme 2]
|
||||
- [theme 3]
|
||||
|
||||
---
|
||||
|
||||
## Product & Features
|
||||
|
||||
### Core capabilities
|
||||
- [capability 1] — [brief description from their site]
|
||||
- [capability 2]
|
||||
- ...
|
||||
|
||||
### Notable differentiators
|
||||
- [what they emphasize as unique]
|
||||
|
||||
### Integrations
|
||||
- [count] integrations
|
||||
- Key: [list top 5-10]
|
||||
|
||||
### Product direction signals
|
||||
- [based on changelog / recent feature releases]
|
||||
|
||||
---
|
||||
|
||||
## Pricing
|
||||
|
||||
| Tier | Price | Key Inclusions |
|
||||
|------|-------|---------------|
|
||||
| [Free/Starter] | [price] | [what's included] |
|
||||
| [Pro/Growth] | [price] | [what's included] |
|
||||
| [Enterprise] | [price] | [what's included] |
|
||||
|
||||
**Billing**: [monthly/annual, discount for annual]
|
||||
**Free trial**: [yes/no, duration]
|
||||
**Notable**: [any pricing quirks — per-seat, usage-based, hidden costs]
|
||||
|
||||
---
|
||||
|
||||
## Customers & Social Proof
|
||||
|
||||
**Named customers**: [list notable logos]
|
||||
**Industries**: [primary industries served]
|
||||
**Case study themes**: [what outcomes they highlight]
|
||||
**Review ratings**:
|
||||
- G2: [rating] ([count] reviews)
|
||||
- Capterra: [rating] ([count] reviews)
|
||||
|
||||
---
|
||||
|
||||
## SEO & Content Strategy
|
||||
|
||||
**Organic strength**:
|
||||
- Estimated monthly organic traffic: [number]
|
||||
- Organic keywords (top 10): [count]
|
||||
- Organic traffic value: $[estimated]
|
||||
|
||||
**Top organic pages** (by estimated traffic):
|
||||
1. [page URL] — [keyword] — [est. traffic]
|
||||
2. [page URL] — [keyword] — [est. traffic]
|
||||
3. [page URL] — [keyword] — [est. traffic]
|
||||
|
||||
**Content strategy signals**:
|
||||
- Blog post frequency: [estimate]
|
||||
- Primary content types: [guides, comparisons, templates, etc.]
|
||||
- Content focus areas: [topics they invest in]
|
||||
|
||||
**Backlink profile**:
|
||||
- Referring domains: [count]
|
||||
- Top referring sites: [list 5]
|
||||
- Link acquisition pattern: [growing/stable/declining]
|
||||
|
||||
---
|
||||
|
||||
## Strengths & Weaknesses
|
||||
|
||||
### Strengths
|
||||
- [strength 1 — with evidence source]
|
||||
- [strength 2]
|
||||
- [strength 3]
|
||||
|
||||
### Weaknesses
|
||||
- [weakness 1 — with evidence source]
|
||||
- [weakness 2]
|
||||
- [weakness 3]
|
||||
|
||||
---
|
||||
|
||||
## Competitive Implications for [Your Product]
|
||||
|
||||
**Where they're strong vs. us**: [areas where this competitor has an advantage]
|
||||
|
||||
**Where we're strong vs. them**: [areas where you have an advantage]
|
||||
|
||||
**Opportunities**: [gaps in their offering or positioning we can exploit]
|
||||
|
||||
**Threats**: [areas where they're improving or gaining ground]
|
||||
|
||||
---
|
||||
|
||||
## Raw Data Sources
|
||||
|
||||
- Homepage scraped: [date]
|
||||
- Pricing page scraped: [date]
|
||||
- SEO data pulled: [date]
|
||||
- Review data pulled: [date, sources]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Summary Document
|
||||
|
||||
After profiling all competitors, generate a `competitor-profiles/_summary.md` that includes:
|
||||
|
||||
1. **Competitor landscape overview** — one paragraph summarizing the competitive field
|
||||
2. **Comparison table** — key metrics side by side for all profiled competitors
|
||||
3. **Positioning map** — where each competitor sits (e.g., simple↔complex, cheap↔premium)
|
||||
4. **Key takeaways** — 3-5 strategic observations from the research
|
||||
5. **Gaps and opportunities** — where the market is underserved
|
||||
|
||||
---
|
||||
|
||||
## Quick Scan vs. Deep Profile
|
||||
|
||||
### Quick Scan (faster, lower cost)
|
||||
- Scrape: homepage + pricing page only
|
||||
- SEO: domain rank overview + ranked keywords summary
|
||||
- Skip: reviews, technology stack, backlink details
|
||||
- Output: abbreviated profile (At a Glance + Positioning + Pricing + SEO summary)
|
||||
|
||||
### Deep Profile (comprehensive)
|
||||
- Scrape: all key pages + review sites
|
||||
- SEO: full backlink analysis + keyword intelligence + competitor discovery
|
||||
- Include: technology stack, content strategy analysis, review mining
|
||||
- Output: full profile template
|
||||
|
||||
Default to **quick scan** unless the user requests deep profiling or specifies a small number of competitors (3 or fewer).
|
||||
|
||||
---
|
||||
|
||||
## Handling Multiple Competitors
|
||||
|
||||
When profiling more than one competitor:
|
||||
|
||||
1. **Parallelize scraping** — scrape all competitors' homepages simultaneously, then pricing pages, etc.
|
||||
2. **Use consistent metrics** — pull the same DataForSEO metrics for every competitor so profiles are comparable
|
||||
3. **Build the summary last** — after all individual profiles are complete
|
||||
4. **Prioritize by relevance** — if the user has 10+ competitors, suggest profiling the top 5 first based on domain overlap or market similarity
|
||||
|
||||
---
|
||||
|
||||
## Updating Profiles
|
||||
|
||||
Profiles are snapshots. When updating:
|
||||
|
||||
- Check pricing pages first (most volatile)
|
||||
- Re-pull SEO metrics (traffic and rankings shift monthly)
|
||||
- Scan changelog for product changes
|
||||
- Update the "Generated" date
|
||||
- Note what changed since last profile in a `## Change Log` section at the bottom
|
||||
|
||||
---
|
||||
|
||||
## Task-Specific Questions
|
||||
|
||||
Only ask if not answered by context or input:
|
||||
|
||||
1. What competitor URLs should I profile?
|
||||
2. Quick scan or deep profile?
|
||||
3. Any specific dimensions to focus on (pricing, SEO, positioning)?
|
||||
4. Should I compare findings against your product?
|
||||
|
||||
---
|
||||
|
||||
## Related Skills
|
||||
|
||||
- **competitor-alternatives**: For creating comparison/alternative pages from these profiles
|
||||
- **customer-research**: For mining reviews and community sentiment in depth
|
||||
- **content-strategy**: For using competitor content gaps to plan your own content
|
||||
- **seo-audit**: For auditing your own site relative to competitors
|
||||
- **sales-enablement**: For turning profiles into battle cards and sales collateral
|
||||
- **paid-ads**: For analyzing competitor ad strategies
|
||||
- **pricing-strategy**: For deeper pricing analysis informed by competitor profiles
|
||||
@@ -0,0 +1,167 @@
|
||||
# Profile Templates
|
||||
|
||||
Ready-to-use templates for competitor profile sections and the summary document.
|
||||
|
||||
## Contents
|
||||
- Quick Scan Template
|
||||
- Summary Comparison Table
|
||||
- Positioning Map
|
||||
- Competitive SWOT
|
||||
- Profile Update Changelog
|
||||
|
||||
---
|
||||
|
||||
## Quick Scan Template
|
||||
|
||||
Abbreviated profile for when speed matters more than depth.
|
||||
|
||||
```markdown
|
||||
# [Competitor Name] — Quick Profile
|
||||
|
||||
**URL**: [website]
|
||||
**Generated**: [date]
|
||||
|
||||
## At a Glance
|
||||
|
||||
| Metric | Value |
|
||||
|--------|-------|
|
||||
| Tagline | [from homepage] |
|
||||
| Target audience | [inferred from copy] |
|
||||
| Pricing starts at | [lowest paid tier] |
|
||||
| Free tier/trial | [yes/no + details] |
|
||||
| Domain rank | [from DataForSEO] |
|
||||
| Est. organic traffic | [monthly] |
|
||||
| Organic keywords (top 10) | [count] |
|
||||
| Referring domains | [count] |
|
||||
|
||||
## Positioning
|
||||
|
||||
**Headline**: "[exact homepage headline]"
|
||||
**Subheadline**: "[exact subheadline]"
|
||||
**Positioning angle**: [1-2 sentence summary of how they position]
|
||||
|
||||
## Pricing Summary
|
||||
|
||||
| Tier | Price | Notable Inclusions |
|
||||
|------|-------|-------------------|
|
||||
| [tier] | [price] | [key items] |
|
||||
| [tier] | [price] | [key items] |
|
||||
|
||||
## Key Takeaway
|
||||
|
||||
[2-3 sentences: what makes this competitor notable, where they're strong, where they're weak]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Summary Comparison Table
|
||||
|
||||
Use after profiling all competitors to create a side-by-side view.
|
||||
|
||||
```markdown
|
||||
# Competitive Landscape Summary
|
||||
|
||||
**Generated**: [date]
|
||||
**Your product**: [name]
|
||||
**Competitors profiled**: [count]
|
||||
|
||||
## Side-by-Side Comparison
|
||||
|
||||
| Dimension | [Your Product] | [Competitor 1] | [Competitor 2] | [Competitor 3] |
|
||||
|-----------|---------------|----------------|----------------|----------------|
|
||||
| **Tagline** | [yours] | [theirs] | [theirs] | [theirs] |
|
||||
| **Target audience** | [yours] | [theirs] | [theirs] | [theirs] |
|
||||
| **Positioning** | [angle] | [angle] | [angle] | [angle] |
|
||||
| **Starting price** | $[X]/mo | $[X]/mo | $[X]/mo | $[X]/mo |
|
||||
| **Free tier** | [yes/no] | [yes/no] | [yes/no] | [yes/no] |
|
||||
| **Domain rank** | [score] | [score] | [score] | [score] |
|
||||
| **Est. organic traffic** | [number] | [number] | [number] | [number] |
|
||||
| **Referring domains** | [count] | [count] | [count] | [count] |
|
||||
| **G2 rating** | [score] | [score] | [score] | [score] |
|
||||
| **Key strength** | [one-liner] | [one-liner] | [one-liner] | [one-liner] |
|
||||
| **Key weakness** | [one-liner] | [one-liner] | [one-liner] | [one-liner] |
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Positioning Map
|
||||
|
||||
Visual representation of where competitors sit along two key dimensions. Choose the two axes most relevant to your market.
|
||||
|
||||
### Common Axis Pairs
|
||||
|
||||
| Market Type | X-Axis | Y-Axis |
|
||||
|-------------|--------|--------|
|
||||
| SaaS tools | Simple → Complex | Cheap → Expensive |
|
||||
| Developer tools | Low-code → Code-first | Individual → Team |
|
||||
| B2B platforms | SMB-focused → Enterprise-focused | Point solution → Platform |
|
||||
| Content tools | Template-driven → Custom | Self-serve → Managed |
|
||||
|
||||
### Format
|
||||
|
||||
```markdown
|
||||
## Positioning Map
|
||||
|
||||
**Axes**: [X-axis label] vs. [Y-axis label]
|
||||
|
||||
[Y-axis high label]
|
||||
│
|
||||
│
|
||||
[Competitor A] │ [Competitor B]
|
||||
│
|
||||
───────────────────────┼───────────────────────
|
||||
[X-axis low] │ [X-axis high]
|
||||
│
|
||||
[Your Product] │ [Competitor C]
|
||||
│
|
||||
[Y-axis low label]
|
||||
|
||||
### Interpretation
|
||||
- [1-2 sentences about what the map reveals]
|
||||
- [where the whitespace / opportunity is]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Competitive SWOT
|
||||
|
||||
Per-competitor SWOT relative to your product.
|
||||
|
||||
```markdown
|
||||
## SWOT: [Competitor] vs. [Your Product]
|
||||
|
||||
### Strengths (theirs vs. ours)
|
||||
- [Where they genuinely outperform us — be honest]
|
||||
|
||||
### Weaknesses (theirs vs. ours)
|
||||
- [Where they fall short compared to us — with evidence]
|
||||
|
||||
### Opportunities (for us)
|
||||
- [Gaps in their offering we can exploit]
|
||||
- [Segments they're ignoring]
|
||||
- [Messaging angles they're missing]
|
||||
|
||||
### Threats (from them)
|
||||
- [Areas where they're improving fast]
|
||||
- [Features they're building that overlap with us]
|
||||
- [Market moves that could shift perception]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Profile Update Changelog
|
||||
|
||||
Append to the bottom of any profile when updating it.
|
||||
|
||||
```markdown
|
||||
---
|
||||
|
||||
## Change Log
|
||||
|
||||
| Date | What Changed | Source |
|
||||
|------|-------------|--------|
|
||||
| [date] | Pricing increased from $X to $Y | Pricing page re-scrape |
|
||||
| [date] | Launched [feature] | Changelog scrape |
|
||||
| [date] | Domain rank changed from X to Y | DataForSEO re-pull |
|
||||
| [date] | Added [integration] | Integrations page re-scrape |
|
||||
```
|
||||
@@ -0,0 +1,179 @@
|
||||
# MCP Tool Reference for Competitor Profiling
|
||||
|
||||
Quick reference for the Firecrawl and DataForSEO MCP tools used in competitor profiling.
|
||||
|
||||
## Contents
|
||||
- Firecrawl Tools (site scraping)
|
||||
- DataForSEO Tools (SEO & market data)
|
||||
- Recommended Execution Order
|
||||
- Error Handling
|
||||
|
||||
---
|
||||
|
||||
## Firecrawl Tools
|
||||
|
||||
### firecrawl_map
|
||||
**Purpose**: Discover all URLs on a competitor's site to identify key pages.
|
||||
**When to use**: First step for every competitor — before scraping individual pages.
|
||||
**Key output**: List of URLs with their page types/paths.
|
||||
**Tip**: Look for paths containing `/pricing`, `/features`, `/about`, `/customers`, `/integrations`, `/blog`, `/changelog`.
|
||||
|
||||
### firecrawl_scrape
|
||||
**Purpose**: Extract content from a single page as clean markdown.
|
||||
**When to use**: After mapping, scrape each key page individually.
|
||||
**Key output**: Page content in markdown format — headlines, body text, structured data.
|
||||
**Tip**: Scrape homepage first — it reveals positioning, audience, and social proof in one shot.
|
||||
|
||||
### firecrawl_search
|
||||
**Purpose**: Search the web for specific content about a competitor.
|
||||
**When to use**: Finding review pages, press coverage, or competitor mentions not on their own site.
|
||||
**Example queries**:
|
||||
- `"[Competitor Name]" site:g2.com`
|
||||
- `"[Competitor Name]" review`
|
||||
- `"[Competitor Name]" funding OR raised`
|
||||
|
||||
### firecrawl_crawl
|
||||
**Purpose**: Crawl multiple pages from a site in one operation.
|
||||
**When to use**: Deep profiles where you want to analyze many pages (e.g., all feature pages, all blog posts). More expensive — use selectively.
|
||||
**Tip**: Set page limits to avoid crawling entire sites. Target specific URL patterns.
|
||||
|
||||
### firecrawl_extract
|
||||
**Purpose**: Extract structured data from a page using a schema.
|
||||
**When to use**: When you need specific data points in a consistent format (e.g., pricing tier details, feature lists).
|
||||
**Tip**: Define a clear schema for what you want extracted — more reliable than parsing raw markdown.
|
||||
|
||||
---
|
||||
|
||||
## DataForSEO MCP Tools
|
||||
|
||||
### Domain-Level Intelligence
|
||||
|
||||
#### backlinks_summary
|
||||
**Purpose**: Get domain authority, total backlinks, referring domains, spam score.
|
||||
**Input**: Target domain (e.g., `competitor.com`)
|
||||
**Key metrics**: `domain_rank`, `total_backlinks`, `referring_domains`, `backlinks_spam_score`
|
||||
|
||||
#### backlinks_referring_domains
|
||||
**Purpose**: List top referring domains — shows where their link equity comes from.
|
||||
**Input**: Target domain + limit
|
||||
**Key metrics**: Per-domain: `rank`, `backlinks`, `domain` name
|
||||
|
||||
#### dataforseo_labs_google_domain_rank_overview
|
||||
**Purpose**: Organic search overview — traffic, keywords, traffic value.
|
||||
**Input**: Target domain
|
||||
**Key metrics**: `organic_count` (keywords), `organic_traffic` (estimated monthly), `organic_cost` (traffic value in $)
|
||||
|
||||
#### dataforseo_labs_google_ranked_keywords
|
||||
**Purpose**: What keywords a domain ranks for, with positions.
|
||||
**Input**: Target domain
|
||||
**Key metrics**: Per-keyword: `keyword`, `position`, `search_volume`, `url` (ranking page)
|
||||
**Tip**: Sort by traffic to find their highest-value keywords.
|
||||
|
||||
#### dataforseo_labs_google_keywords_for_site
|
||||
**Purpose**: Keywords relevant to a domain — broader than ranked keywords, includes opportunities.
|
||||
**Input**: Target domain
|
||||
**Key metrics**: `keyword`, `search_volume`, `competition`, `cpc`
|
||||
|
||||
### Competitive Analysis
|
||||
|
||||
#### dataforseo_labs_google_competitors_domain
|
||||
**Purpose**: Find a domain's closest organic competitors by keyword overlap.
|
||||
**Input**: Target domain
|
||||
**Key metrics**: `domain`, `avg_position`, `intersections` (shared keywords), `full_domain_rank`
|
||||
**Tip**: May reveal competitors the user hasn't considered.
|
||||
|
||||
#### dataforseo_labs_google_domain_intersection
|
||||
**Purpose**: Find keywords where two domains both rank — shows direct competition.
|
||||
**Input**: Two target domains
|
||||
**Key metrics**: `keyword`, position for each domain, `search_volume`
|
||||
**Tip**: Use this to compare the user's domain vs. each competitor.
|
||||
|
||||
#### dataforseo_labs_google_relevant_pages
|
||||
**Purpose**: Find a domain's most important pages by organic traffic.
|
||||
**Input**: Target domain
|
||||
**Key metrics**: `page`, `metrics` (traffic, keywords per page)
|
||||
**Tip**: Reveals their content strategy — which pages drive the most value.
|
||||
|
||||
### Technology Detection
|
||||
|
||||
#### domain_analytics_technologies_domain_technologies
|
||||
**Purpose**: Detect the technology stack a domain uses.
|
||||
**Input**: Target domain
|
||||
**Key metrics**: Technologies grouped by category (CMS, analytics, marketing, payments, etc.)
|
||||
|
||||
### Backlink Deep Dive
|
||||
|
||||
#### backlinks_backlinks
|
||||
**Purpose**: List individual backlinks to a domain.
|
||||
**Input**: Target domain + limit
|
||||
**Key metrics**: `url_from`, `url_to`, `anchor`, `domain_from_rank`, `is_new`
|
||||
|
||||
#### backlinks_bulk_ranks
|
||||
**Purpose**: Compare domain ranks across multiple domains at once.
|
||||
**Input**: Array of target domains
|
||||
**Key metrics**: `domain_rank` per domain
|
||||
**Tip**: Use this for the summary comparison table.
|
||||
|
||||
---
|
||||
|
||||
## Recommended Execution Order
|
||||
|
||||
### Quick Scan (per competitor)
|
||||
|
||||
```
|
||||
1. firecrawl_map → get site URLs
|
||||
2. In parallel:
|
||||
a. firecrawl_scrape → homepage
|
||||
b. firecrawl_scrape → pricing page
|
||||
c. dataforseo_labs_google_domain_rank_overview → organic metrics
|
||||
d. backlinks_summary → domain authority
|
||||
3. Synthesize into abbreviated profile
|
||||
```
|
||||
|
||||
### Deep Profile (per competitor)
|
||||
|
||||
```
|
||||
1. firecrawl_map → get site URLs
|
||||
2. In parallel (batch 1 — scraping):
|
||||
a. firecrawl_scrape → homepage
|
||||
b. firecrawl_scrape → pricing page
|
||||
c. firecrawl_scrape → features page(s)
|
||||
d. firecrawl_scrape → about page
|
||||
e. firecrawl_scrape → customers/case studies page
|
||||
f. firecrawl_scrape → integrations page
|
||||
3. In parallel (batch 2 — SEO data):
|
||||
a. dataforseo_labs_google_domain_rank_overview
|
||||
b. dataforseo_labs_google_ranked_keywords
|
||||
c. backlinks_summary
|
||||
d. backlinks_referring_domains
|
||||
e. dataforseo_labs_google_relevant_pages
|
||||
f. dataforseo_labs_google_competitors_domain
|
||||
4. In parallel (batch 3 — optional extras):
|
||||
a. domain_analytics_technologies_domain_technologies
|
||||
b. firecrawl_search → G2/Capterra reviews
|
||||
c. dataforseo_labs_google_domain_intersection (vs. user's domain)
|
||||
5. Synthesize into full profile
|
||||
```
|
||||
|
||||
### Multi-Competitor (3+ competitors)
|
||||
|
||||
```
|
||||
1. Map all competitor sites in parallel
|
||||
2. Scrape all homepages in parallel, then pricing pages in parallel
|
||||
3. Pull domain_rank_overview for all in parallel
|
||||
4. Pull backlinks_bulk_ranks for all at once
|
||||
5. Build profiles in sequence (synthesis requires focus)
|
||||
6. Build summary comparison last
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Error Handling
|
||||
|
||||
| Issue | Action |
|
||||
|-------|--------|
|
||||
| Firecrawl scrape returns empty/blocked | Try with `firecrawl_browser_create` for JS-heavy sites |
|
||||
| Pricing page not found in map | Search for `/pricing`, `/plans`, `/packages` — some sites use different paths |
|
||||
| DataForSEO returns no data for domain | Domain may be too new or too small — note "insufficient data" in profile |
|
||||
| Rate limits hit | Space out requests; prioritize highest-value data first |
|
||||
| Review page scraping blocked | Use `firecrawl_search` to find cached or alternative review sources |
|
||||
@@ -0,0 +1,375 @@
|
||||
---
|
||||
name: directory-submissions
|
||||
description: When the user wants to submit their product to startup, SaaS, AI, agent, MCP, no-code, or review directories for backlinks, domain rating, and discovery. Also use when the user mentions "directory submissions," "submit to directories," "backlinks from directories," "list my product," "submit to Product Hunt," "BetaList," "TAAFT," "Futurepedia," "G2 listing," "Capterra listing," "AlternativeTo," "SaaSHub," "AI directories," "MCP registry," "agent directory," "dofollow backlinks," "launch directories," or "directory tracker." Use this whenever someone is planning the directory layer of a product launch or an ongoing backlink campaign. For the broader launch moment, see launch-strategy. For programmatic SEO pages that should live behind these backlinks, see programmatic-seo. For AI citation optimization, see ai-seo.
|
||||
metadata:
|
||||
version: 1.0.0
|
||||
---
|
||||
|
||||
# Directory Submissions
|
||||
|
||||
You are an expert in directory-driven distribution for software products. Your goal is to help the user build a compounding backlink + discovery foundation by submitting to the right directories, in the right order, with the right positioning — and to make sure that foundation actually produces leads instead of vanity backlinks.
|
||||
|
||||
## Before Starting
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
|
||||
|
||||
---
|
||||
|
||||
## Core Philosophy
|
||||
|
||||
Directory submissions are the **foundation layer** of distribution — never the whole strategy. They do three things well:
|
||||
|
||||
1. **Pass dofollow backlinks** from high domain-rating sites into your marketing pages. This raises your DR, which makes your entire site easier to rank for competitive keywords.
|
||||
2. **Create discovery surface area** — people browsing AI/SaaS directories are in-market buyers, not random traffic.
|
||||
3. **Get cited by AI engines** — ChatGPT, Claude, Perplexity, and Google AI Overviews all pull heavily from high-DR directories when answering "what's the best [category]?" queries. AI-referred traffic converts **6–27× higher** than traditional search traffic.
|
||||
|
||||
But directories alone will not generate meaningful leads. They exist to pass link equity into the pages that DO generate leads — template galleries, comparison pages, alternative pages, blog posts. **Build the destination pages first, then submit to directories so the link equity has somewhere useful to land.**
|
||||
|
||||
The full directory catalog lives in `references/directory-list.md`. The positioning variant library lives in `references/positioning-variations.md`. The submission tracker template lives in `references/submission-tracker-template.csv`.
|
||||
|
||||
---
|
||||
|
||||
## The Three Hard Rules
|
||||
|
||||
### Rule 1: Foundation before submission
|
||||
Never submit to a directory until the landing page it will link to is live, indexed, and has:
|
||||
- A single `<h1>` and sequential heading hierarchy — pages with clean hierarchy have **2.8× higher AI citation rates**, and 87% of ChatGPT-cited pages use a single H1.
|
||||
- A real pricing page (even "free while in beta" counts — most Tier 1 directories require one).
|
||||
- Privacy policy + terms.
|
||||
- Logo assets in PNG + SVG + square 1024×1024 + favicon.
|
||||
- 5–8 real product screenshots at 1920×1080 (not marketing mockups).
|
||||
- A 60–90 second demo video — products with video on Product Hunt get **2.7× more upvotes**.
|
||||
- FAQ schema markup (AI engines heavily weight `FAQPage` JSON-LD for answer extraction).
|
||||
- Structured data: `Organization`, `Product`, `SoftwareApplication`.
|
||||
|
||||
### Rule 2: Destination pages before directories
|
||||
Directories are the *source* of link equity. You need *destinations* that can convert the resulting traffic. Minimum destinations before submitting to anything:
|
||||
- 3–5 competitor alternative pages (`/alternatives/[competitor]`) targeting "[competitor] alternative" keywords. Comparison/alternative pages convert at **5–15%** vs 0.5–2% for generic content.
|
||||
- 3–5 use-case pages (`/for/[audience]` or `/use-cases/[use-case]`).
|
||||
- Template gallery with 20+ entries (if applicable — this was Typeform's largest SEO growth driver, generating 30K non-branded signups and $3M/year LTV).
|
||||
- 1 "best of" blog post you wrote yourself about your own category, including honest coverage of competitors.
|
||||
|
||||
### Rule 3: Positioning varies by directory type
|
||||
Never copy-paste the same description everywhere. AI engines penalize duplicate content, and each directory audience responds to different framing. See `references/positioning-variations.md` for the full variant library. Short version:
|
||||
|
||||
| Surface | Lead with | Why |
|
||||
|---|---|---|
|
||||
| Startup directories | **Outcome** | Audience is other founders. They care what it does. |
|
||||
| SaaS directories | **Alternative framing** | People search "[competitor] alternative" — meet them there. |
|
||||
| AI directories | **AI-first architecture** | TAAFT/Futurepedia audiences explicitly want AI tools. |
|
||||
| Agent/MCP directories | **Agent/MCP angle** | Niche but high-intent. A real moat. |
|
||||
| No-code directories | **Ease + power** | Audience values speed-to-build over depth. |
|
||||
| Dev directories | **Technical depth** | Dev audiences reward technical substance. |
|
||||
| B2B review sites | **ROI + use case** | Buyers want outcomes and case studies. |
|
||||
|
||||
---
|
||||
|
||||
## Workflow
|
||||
|
||||
### Step 1: Readiness assessment (Phase 0)
|
||||
|
||||
Ask the user these 9 questions. If any are "no", they're not ready — help them build the missing piece first.
|
||||
|
||||
1. Is the product publicly accessible (no password wall)?
|
||||
2. Is there a pricing page (even "free while in beta")?
|
||||
3. Are privacy policy + terms live?
|
||||
4. Logo assets in PNG + SVG + square + favicon?
|
||||
5. 5–8 real screenshots + 60–90s demo video?
|
||||
6. Landing pages GEO-ready (single H1, sequential hierarchy, FAQ schema, structured data)?
|
||||
7. At least 3 alternative pages and 3 use-case pages live and indexed?
|
||||
8. Template gallery or lead magnet asset (if applicable to category)?
|
||||
9. At least 20 beta/early users who could leave a review on G2?
|
||||
|
||||
A "no" on any of 1–7 is a hard block. A "no" on 8–9 is a soft block: you can launch but will lose Tier 2 review value and Typeform-style compounding.
|
||||
|
||||
### Step 2: Choose the tiers
|
||||
|
||||
Full catalog in `references/directory-list.md`. Summary:
|
||||
|
||||
| Tier | When | Examples | Typical count |
|
||||
|---|---|---|---|
|
||||
| **Tier 1 — Flagship launch** | Launch week only | Product Hunt (anchor), BetaList, HN Show HN, Fazier, DevHunt | ~15 |
|
||||
| **Tier 2 — Startup/SaaS** | Week 1 + rolling | AlternativeTo, SaaSHub, G2, Capterra, F6S, SourceForge, Slashdot | ~15 |
|
||||
| **Tier 3 — AI directories** | Week 1–3 | TAAFT, Futurepedia, Toolify, Future Tools, aitools.inc, AIStage | ~25 |
|
||||
| **Tier 4 — Agent/MCP registries** | Week 1–3 (if MCP) | Glama, APITracker, LF MCP Registry, AI Agents List | ~10 |
|
||||
| **Tier 5 — No-code directories** | Week 1–3 (if no-code) | NoCodeFinder, No Code MBA, We Are No Code | ~6 |
|
||||
| **Tier 6 — "Best of" listicles** | Rolling outreach | Cold outreach to DR 40+ blog posts | ~10 inclusions |
|
||||
| **Tier 7 — Integration marketplaces** | When integrations ship | Zapier, HubSpot, Slack, Airtable, Notion | ~5 |
|
||||
|
||||
**Triage rule:** Only submit where the product is a genuine fit. Forcing a listing into the wrong category burns the first-submission advantage and gets rejected by moderators.
|
||||
|
||||
### Step 3: Prepare asset variations
|
||||
|
||||
For each tier, prep a distinct description variant (pulled from `references/positioning-variations.md`):
|
||||
- **Tagline** under 10 words
|
||||
- **Short description** at 60 chars
|
||||
- **Long description** at 150 words
|
||||
- **5–8 category tags**
|
||||
- **Logo** assets
|
||||
- **Screenshots** + demo video URL
|
||||
- **Founder story** (2–3 sentences)
|
||||
|
||||
**Critical:** Don't copy-paste the same long description into every directory. Vary the opening sentence, the feature emphasis, and the audience framing per tier. AI engines cross-reference and down-weight duplicate content.
|
||||
|
||||
### Step 4: Batch submit
|
||||
|
||||
Set up the tracker spreadsheet (`references/submission-tracker-template.csv`). Work left-to-right through it. 2–3 hours per batch is realistic.
|
||||
|
||||
Per submission:
|
||||
1. Copy the tier-appropriate positioning variant.
|
||||
2. Fill in the form.
|
||||
3. Upload assets.
|
||||
4. Submit.
|
||||
5. Log: date, URL, status, moderator notes.
|
||||
6. Once live, verify the backlink exists and is dofollow: `curl -sIL https://directory.com/your-listing | grep -i rel=`. If absent, the link is dofollow.
|
||||
|
||||
---
|
||||
|
||||
## Product Hunt Deep Dive (The Anchor Event)
|
||||
|
||||
Product Hunt is the single highest-leverage submission but also the most easily wasted. The 2026 PH algorithm weights **comment quality** more than upvote count — a post with 50 upvotes + 30 genuine comments ranks above one with 200 upvotes + 5 comments. **80% of failed launches** fail because they launched without a warm audience OR asked for upvotes instead of feedback.
|
||||
|
||||
### 3-week prep timeline
|
||||
|
||||
- **Day -21 to -14:** Warm up hunter account. Upvote + thoughtfully comment on 3 launches/day. Follow 100+ active makers. Build history so your account looks real to the algorithm.
|
||||
- **Day -14:** Create "Upcoming" page on PH. Drive traffic to it to collect "notify on launch" subscribers.
|
||||
- **Day -10:** (Optional) book a hunter. Don't pay cash — trade a feature, shoutout, or intro. A known hunter adds ~15% to day-one momentum but isn't required.
|
||||
- **Day -7:** Draft launch-day assets: gallery images (1270×760), tagline, 260-char description, first comment from you, first comment from a customer.
|
||||
- **Day -3:** Email list warm-up. "We're launching Tuesday. Here's what to expect. Reply if you want a heads up."
|
||||
- **Day -1:** Final check — product works in incognito, video autoplays, CTA goes to signup, PH listing preview looks right.
|
||||
|
||||
### Launch day execution
|
||||
|
||||
- **Launch at 12:01 AM Pacific Time.** Tuesday, Wednesday, or Thursday only — weekend launches get 60–70% less traffic. The 12:01 AM PT start maximizes your 24-hour window.
|
||||
- **First 2 hours are everything.** Need 50+ supporters in the first 2 hours to trigger algorithmic distribution.
|
||||
- **Post the first comment yourself** with the story: why you built it, what's different, what to try first.
|
||||
- **Reply to every comment** in under 30 minutes. PH measures maker responsiveness.
|
||||
- **Share the link to:** Twitter/X thread, LinkedIn long-form post, personal Slack/Discord communities, your email list, Indie Hackers, every power user via DM.
|
||||
- **Never ask for upvotes.** Ask for **feedback**. "Would love your honest take on the positioning" converts 3× better than "support us!" and doesn't trigger the algorithm's anti-manipulation filters.
|
||||
- **Don't message strangers.** The community flags this and moderators will hide your post.
|
||||
|
||||
### Post-launch
|
||||
|
||||
- Write a launch recap blog post with numbers + lessons. Honest, not bragging. Publish on day 2.
|
||||
- Cross-post the recap to Indie Hackers and r/SaaS (where promotion is allowed).
|
||||
- Only submit to Show HN if you have a *technical* angle to share (architecture, DSL, novel approach). A generic "we launched a SaaS" post will get flagged to death.
|
||||
|
||||
---
|
||||
|
||||
## Reviews Playbook (G2 / Capterra / TrustRadius)
|
||||
|
||||
G2 and Capterra (now owned by G2 as of Feb 2026) listings are **worthless without reviews**. 10 reviews is the magic threshold for Grid appearance. Run the 10-in-30 protocol during launch month.
|
||||
|
||||
### The 10-in-30 protocol
|
||||
|
||||
1. **Day 1 post-launch:** Identify 20 users who have completed a meaningful action with the product.
|
||||
2. **Send each a personal email** with a direct review URL (reduces friction by ~70%). No forms, no landing pages — direct link.
|
||||
3. **Offer a modest thank-you.** G2 and TrustRadius explicitly allow small incentives like a $25 Amazon gift card.
|
||||
4. **Follow up once** after 5 days. Don't follow up twice — it becomes annoying and damages the relationship.
|
||||
5. **Target:** 50% conversion → 10 reviews from 20 asks.
|
||||
|
||||
### Critical deadlines
|
||||
|
||||
- **G2 Summer reports:** cut off ~April 28. Plan review drives to land before this.
|
||||
- **G2 Fall reports:** cut off ~July 28.
|
||||
- Missing a cutoff means waiting 3 months for the next grid update.
|
||||
|
||||
### Badges and paid plans
|
||||
|
||||
- **"Users Love Us" badge** is still free: requires 20 reviews at 4.0+ average.
|
||||
- **Grid, Momentum, Index, and Award badges** require a paid G2 plan ($2,999+/year starting Summer 2025).
|
||||
- **Do not spend on paid G2 in year one.** The free listing + Users Love Us badge is sufficient.
|
||||
|
||||
### Cross-platform
|
||||
|
||||
- TrustRadius follows similar mechanics but smaller volume.
|
||||
- Capterra auto-syncs from Gartner Digital Markets in some categories — may populate without direct action.
|
||||
|
||||
---
|
||||
|
||||
## Destination Pages Strategy (What the Backlinks Point At)
|
||||
|
||||
Directories are useless if the backlinks land on a generic homepage. Build these destination pages *before* submitting:
|
||||
|
||||
### 1. Alternative pages (highest ROI)
|
||||
|
||||
Competitor alternative pages convert at **5–15%**, often hitting 15–30% for bottom-of-funnel queries. One page per top competitor:
|
||||
|
||||
- `/alternatives/[competitor-1]`
|
||||
- `/alternatives/[competitor-2]`
|
||||
- `/alternatives/[competitor-3]`
|
||||
- `/alternatives/[competitor-4]`
|
||||
|
||||
Each page needs: honest feature comparison table, "when to choose X over us," "when to choose us over X," pricing comparison, 3–5 use-case examples, strong FAQ with schema.
|
||||
|
||||
**Critical:** Be honest. AI engines cross-reference competitor feature claims and de-rank pages that lie.
|
||||
|
||||
### 2. Use-case / ICP pages
|
||||
|
||||
Every ICP gets a dedicated landing page:
|
||||
- `/for/[audience]` — coaches, agencies, ecommerce, SaaS, consultants, etc.
|
||||
- `/use-cases/[use-case]` — lead qualification, onboarding, product recommendations, etc.
|
||||
|
||||
### 3. Template / asset gallery (if applicable)
|
||||
|
||||
Typeform's template library generated **30,000 non-branded organic signups and $3M/year LTV**. The pattern:
|
||||
- One indexable page per template at `/templates/[slug]`.
|
||||
- H1 with the keyword, 150+ word description, screenshot, "when to use this," "use this template" CTA.
|
||||
- Related templates at the bottom of each page (internal linking = SEO compounding).
|
||||
- 100 templates by day 30, 300 by day 90 is the realistic target.
|
||||
|
||||
### 4. "Best of" listicles you wrote yourself
|
||||
|
||||
Write honest roundups of your own category: `/blog/best-[category]-tools-2026`. Include yourself + 10 competitors with real reviews. These rank for category queries AND serve as canonical references AI engines cite.
|
||||
|
||||
### 5. Integration pages (when integrations ship)
|
||||
|
||||
Every integration = one landing page at `/integrations/[partner]`. Follows the Zapier playbook: Zapier gets **~2.6M monthly organic visits** from programmatic integration pages (~15% of their total organic traffic).
|
||||
|
||||
---
|
||||
|
||||
## GEO (Generative Engine Optimization)
|
||||
|
||||
In 2026, 30–50% of "research a tool" queries happen inside ChatGPT, Claude, Perplexity, or Google AI Overviews without ever touching a traditional search page. Directories matter here too — AI engines pull heavily from high-DR directories when generating answers. But the *destination pages* also need to be GEO-optimized.
|
||||
|
||||
### Tactics that get pages cited
|
||||
|
||||
1. **One H1 per page, sequential heading hierarchy.** 2.8× higher citation rate. 87% of cited pages use a single H1.
|
||||
2. **Dense, factual content with citable stats.** AI engines prefer specific numbers ("3× faster than X") over vague claims.
|
||||
3. **FAQ schema on every landing page.** AI engines heavily weight `FAQPage` JSON-LD for answer extraction.
|
||||
4. **Comparison tables.** Extractable, structured — exactly what an AI answer needs.
|
||||
5. **Explicit "what it is" paragraph in the first 100 words.**
|
||||
6. **Get cited on Reddit and Hacker News.** Claude and Perplexity index these heavily. Genuine mentions on r/SaaS and HN count as training fuel.
|
||||
7. **Publish original research.** "We analyzed 10,000 [things] and found X" becomes the primary citation for anyone writing about that topic.
|
||||
8. **Claim Crunchbase, LinkedIn company page, and Wikidata entries.** All three feed AI training corpora.
|
||||
9. **If applicable, list on MCP registries with A/B grades** (Glama in particular). LLMs pull from these when answering MCP questions.
|
||||
|
||||
### Measurement
|
||||
|
||||
Manually check monthly: ask ChatGPT, Claude, and Perplexity "what are the best [category] tools?" and log where the product appears. Free GEO tracking tools (GeoTracker, llmrefs) automate this.
|
||||
|
||||
---
|
||||
|
||||
## Community & Ongoing Distribution
|
||||
|
||||
Directories are one-shot. Community is ongoing. Both feed the same funnel.
|
||||
|
||||
### Reddit (90/10 rule)
|
||||
|
||||
90% of activity must be genuinely helpful; only 10% promotional. Violating this gets shadowbanned.
|
||||
|
||||
**High-value subs (ranked):**
|
||||
- **r/SideProject** (200K+) — friendly to promo, launch announcements welcome.
|
||||
- **r/SaaS** (300K+) — "Share Your SaaS" threads are explicit promo windows.
|
||||
- **r/startups** (1.7M) — Feedback Friday thread.
|
||||
- **r/Entrepreneur** (3.5M) — weekly promo thread.
|
||||
- **r/nocode**, **r/IndieHackers**, **r/alphaandbetausers** — friendly.
|
||||
- **r/webdev**, **r/artificial**, **r/LocalLLaMA** — strict, technical only.
|
||||
|
||||
**What wins:** real numbers (MRR, signups, churn), screenshots, "what I tried / what happened / what I'd do differently" structure, mini case studies with a clear lesson. **What fails:** hype, vague claims, "check out my new tool" posts, asking for upvotes.
|
||||
|
||||
### LinkedIn (B2B primary channel)
|
||||
|
||||
80% of B2B social leads come from LinkedIn. Cadence: **3–5 posts/week** — fewer loses momentum, more causes fatigue.
|
||||
|
||||
Content types ranked by 2026 engagement:
|
||||
1. Personal stories with business lessons (1.5–2× avg engagement)
|
||||
2. Original data / research (1.3–1.5×)
|
||||
3. Contrarian industry takes (1.2–1.5×)
|
||||
4. Document carousels with 8–12 slides (1.3–1.8×)
|
||||
|
||||
### Twitter/X (indie hacker + dev channel)
|
||||
|
||||
Build-in-public threads on architecture, revenue, decisions. Technical deep-dives get indexed by Google + Claude + Perplexity → indirect GEO.
|
||||
|
||||
### Indie Hackers
|
||||
|
||||
- Launch a build-in-public thread on PH launch day.
|
||||
- Post weekly updates: revenue, ships, lessons. Zero-revenue posts work if the lesson is honest.
|
||||
- Comment 10× more than you post to build karma before your own links.
|
||||
|
||||
### Dev.to + Hashnode
|
||||
|
||||
Every substantial technical post = dofollow backlink + dev audience reach. Cross-post with canonical URL back to main blog.
|
||||
|
||||
---
|
||||
|
||||
## KPIs & Tracking
|
||||
|
||||
Track weekly. If a number isn't moving, investigate — don't just submit more directories.
|
||||
|
||||
| Metric | Day 0 | Day 30 target | Day 90 target |
|
||||
|---|---|---|---|
|
||||
| Domain Rating (DR) | 0 | 20 | 30+ |
|
||||
| Referring domains | 0 | 30 | 80+ |
|
||||
| Indexed pages | — | 50 | 200+ |
|
||||
| Organic clicks/day | 0 | 30 | 200+ |
|
||||
| Directory listings live | 0 | 50 | 70+ |
|
||||
| G2 reviews | 0 | 10 | 25 |
|
||||
| Capterra reviews | 0 | 5 | 15 |
|
||||
| AI citations (manual check) | 0 | 3 | 15+ |
|
||||
| Signups from directory referrals | 0 | 50 | 300 |
|
||||
| Signups from alt/use-case pages | 0 | 20 | 300 |
|
||||
|
||||
---
|
||||
|
||||
## What NOT to Do
|
||||
|
||||
1. **Don't pay for directory submission services** ($60–$200 packages). The whole point is these are free. It's an afternoon of copy-paste.
|
||||
2. **Don't submit to spam directories** (DR under 10, no traffic, no editorial quality). They dilute your backlink profile and Google's spam detection can penalize you.
|
||||
3. **Don't submit with the wrong positioning.** Re-read the positioning table per tier. Generic descriptions waste the listing.
|
||||
4. **Don't treat directories as your entire GTM.** They're the foundation. Content + community + reviews are what actually convert.
|
||||
5. **Don't skip reviews on G2/Capterra.** Zero-review listings are dead. Run the 10-in-30 protocol or don't submit.
|
||||
6. **Don't ask for upvotes on Product Hunt.** The 2026 algorithm penalizes it. Ask for **feedback**.
|
||||
7. **Don't amend old directory listings every week.** Submit once, check quarterly.
|
||||
8. **Don't submit before the destination page exists.** Link equity needs a destination.
|
||||
9. **Don't duplicate descriptions across directories.** AI engines penalize duplicate content.
|
||||
10. **Don't lie on comparison pages.** AI engines cross-reference and de-rank lies.
|
||||
11. **Don't over-index on launch-day spike.** The flywheel is templates + alternatives + reviews + ongoing content — not one day of PH.
|
||||
12. **Don't forget Crunchbase, LinkedIn company page, and Wikidata.** These feed AI training corpora and matter for GEO.
|
||||
|
||||
---
|
||||
|
||||
## Task-Specific Questions
|
||||
|
||||
1. **What are you launching?** (Category changes tier mix — AI vs traditional SaaS vs no-code vs dev tool.)
|
||||
2. **When is launch day?** (Phase 0 assets need 7 days of prep.)
|
||||
3. **Do you have destination pages built?** (Alternatives, use cases, templates — if not, build first.)
|
||||
4. **Product Hunt hunter lined up?** (Optional but adds ~15% day-one lift. 3-week warm-up required regardless.)
|
||||
5. **How many beta users can you ask for reviews?** (Need 20 to hit 10.)
|
||||
6. **Do you have an MCP or agent angle?** (If yes, Tier 4 registries are a real moat.)
|
||||
7. **Existing integrations?** (If yes, Tier 7 marketplaces are the highest-DR backlinks available.)
|
||||
8. **Email list size?** (Needed for PH launch day warm traffic — 100+ is the minimum.)
|
||||
9. **Current DR and referring domain count?** (Baseline for measuring the compounding effect.)
|
||||
|
||||
---
|
||||
|
||||
## Output Format
|
||||
|
||||
When the user asks for a directory plan, return:
|
||||
|
||||
1. **Readiness assessment** — which Phase 0 items are missing, which block submission
|
||||
2. **Tier selection** — which tiers apply, which to skip, why
|
||||
3. **Submission order** — week 1 / week 2 / week 3 batches
|
||||
4. **Destination page list** — what to build first if missing
|
||||
5. **Positioning variants** — the actual copy per tier (from `references/positioning-variations.md`)
|
||||
6. **PH 3-week prep timeline** — mapped to calendar dates if launch day known
|
||||
7. **Reviews 10-in-30 plan** — who to ask, when, how
|
||||
8. **Weekly targets** — directories submitted, reviews, DR movement
|
||||
9. **Tracker** — link to or include the CSV from `references/submission-tracker-template.csv`
|
||||
|
||||
Keep the plan actionable. Every item should be something the user can do today.
|
||||
|
||||
---
|
||||
|
||||
## Related Skills
|
||||
|
||||
- **launch-strategy** — broader launch moment, ORB framework, five-phase approach
|
||||
- **programmatic-seo** — destination pages (alternatives, integrations, templates) that backlinks should flow into
|
||||
- **competitor-alternatives** — `/alternatives/[tool]` page pattern
|
||||
- **ai-seo** — GEO optimization for AI citation
|
||||
- **content-strategy** — editorial content that attracts "best of" listicle inclusions
|
||||
- **free-tool-strategy** — lead magnets for destination pages
|
||||
- **community-marketing** — Reddit, Indie Hackers, Slack community mechanics
|
||||
- **schema-markup** — FAQ + Product + Organization JSON-LD for GEO
|
||||
@@ -0,0 +1,181 @@
|
||||
# Directory List — Full Reference
|
||||
|
||||
Canonical list of directories organized by tier. DR values are approximate and drift over time — verify via Ahrefs or Moz before building a plan around them.
|
||||
|
||||
**Column legend:**
|
||||
- **DR** — Domain Rating (Ahrefs). Higher = more link equity passed.
|
||||
- **Dofollow** — Whether the backlink passes SEO value. Nofollow listings still matter for referral traffic and brand signals.
|
||||
- **Cost** — Free unless noted.
|
||||
|
||||
---
|
||||
|
||||
## Tier 1 — Flagship Launch Platforms
|
||||
|
||||
Submit only during launch week. These are time-sensitive with limited re-submission windows.
|
||||
|
||||
| Directory | DR | Dofollow | Cost | Notes |
|
||||
|---|---|---|---|---|
|
||||
| **Product Hunt** | 91 | Yes | Free | The anchor event. Requires 3-week warm-up. 2026 algorithm weights comment quality over upvotes. Launch Tue/Wed/Thu at 12:01 AM PT. |
|
||||
| **Hacker News (Show HN)** | 91 | Nofollow | Free | Only if you have a genuine technical angle. Post title format: "Show HN: [Product] — [hook]". Moderator death penalty for hype. |
|
||||
| **BetaList** | 64 | Yes | Free (paid expedite ~$99) | Best for pre-launch waitlist building. Submission → 2–4 week queue unless expedited. |
|
||||
| **Launching Next** | ~30 | Yes | Free | Editorial curation — needs a compelling story. |
|
||||
| **Fazier** | ~30 | Yes | Free | Daily ranking with much lower competition than PH. Achievable #1. |
|
||||
| **Uneed** | ~40 | Yes | Free | Curated, smaller audience, quality backlink. |
|
||||
| **Microlaunch** | ~30 | Yes | Free | Month-long visibility vs one-day spike. |
|
||||
| **OpenHunts** | ~25 | Yes | Free | Indie-maker friendly, reports 14%+ conversion rates. |
|
||||
| **DevHunt** | ~35 | Yes | Free | Dev-focused. Best fit for developer tools and technical products. |
|
||||
| **PeerPush** | ~25 | Yes | Free | Similar to Fazier. Low competition. |
|
||||
| **LaunchVault** | ~20 | Yes | Free | Anti-VC positioning. Good for bootstrapped narrative. |
|
||||
| **What Launched Today** | ~20 | Yes | Free | Guaranteed visibility on launch day regardless of votes. |
|
||||
| **Firsto** | ~25 | Yes | Free tier | Sustained discovery, not one-day spike. |
|
||||
| **GetByte** | ~20 | Yes | Free | Lightweight listing + promotional support. |
|
||||
| **Best of Web** | ~30 | Yes | Free | Easy fast submission, free dofollow. |
|
||||
| **Tiny Launch** | ~20 | Yes | Free | Lightweight, fast approval. |
|
||||
| **PitchWall** | ~25 | Yes | Free | Indie-hacker friendly. |
|
||||
|
||||
---
|
||||
|
||||
## Tier 2 — Startup / SaaS / Software Directories
|
||||
|
||||
Submit during launch week and continue rolling submissions thereafter.
|
||||
|
||||
| Directory | DR | Dofollow | Cost | Notes |
|
||||
|---|---|---|---|---|
|
||||
| **AlternativeTo** | 79 | Nofollow | Free | Massive SEO value despite nofollow. Submit as alternative to your top 4 competitors. |
|
||||
| **SaaSHub** | 77 | Yes | Free | Ranks well for "[tool] alternatives" queries. High intent. |
|
||||
| **G2** | 92 | Yes | Free listing | 10 reviews required for Grid appearance. Paid badges start at $2,999/yr. |
|
||||
| **Capterra** | 93 | Yes | Free listing | Owned by G2 (acquired Feb 2026). Reviews drive everything. |
|
||||
| **GetApp** | 78 | Yes | Free | Auto-syncs from Capterra in some cases. Owned by G2. |
|
||||
| **SourceForge** | 92 | Yes | Free | Legacy but still high DR. Trivial to list. |
|
||||
| **Slashdot** | ~88 | Yes | Free | Legacy but high DR. Company profile submission. |
|
||||
| **Startup Stash** | ~50 | Yes | Free | Curated, organized by startup need. |
|
||||
| **SideProjectors** | ~35 | Yes | Free | Discovery + marketplace. Community-driven. |
|
||||
| **F6S** | 65 | Yes | Free | Startup platform used by accelerators. |
|
||||
| **Stackshare** | ~60 | Yes | Free | Dev-centric. Show your tech stack. |
|
||||
| **Resource.fyi** | ~40 | Yes | Free | Curated for designers/devs/marketers. |
|
||||
| **Shipybara** | ~30 | Yes | Free | Shows which companies use your tool. |
|
||||
| **TrustRadius** | 72 | Yes | Free | Smaller but respected B2B review platform. |
|
||||
| **Crozdesk** | ~55 | Yes | Free | Feeds into Gartner ecosystem. |
|
||||
|
||||
---
|
||||
|
||||
## Tier 3 — AI Tool Directories
|
||||
|
||||
Relevant only for AI-native products. Submit during weeks 1–3.
|
||||
|
||||
### Tier 3A — Flagship AI directories
|
||||
|
||||
| Directory | DR | Monthly Traffic | Notes |
|
||||
|---|---|---|---|
|
||||
| **There's An AI For That (TAAFT)** | 76 | 2M+ | Largest AI directory. Task-based search. Worth the effort to list well. |
|
||||
| **Futurepedia** | 70 | 1M+ | 5,000+ tools, 54 categories. Matt Wolfe YouTube (2M+ subs) drives traffic. |
|
||||
| **Toolify.ai** | 71 | 500K+ | 26K+ tools, 450+ categories. Tracks traffic trends. |
|
||||
| **Future Tools (futuretools.io)** | 69 | 400K+ | Curated by Matt Wolfe. Smaller but influential. |
|
||||
| **AI Tools Neilpatel** | 91 | n/a | Highest DR free AI directory. |
|
||||
| **Good AI Tools** | 66 | n/a | Curated, quality over quantity. |
|
||||
| **NewTools.site** | 51 | n/a | Dofollow backlink for every approved submission. |
|
||||
|
||||
### Tier 3B — Mid-tier AI directories
|
||||
|
||||
| Directory | Est. DR | Notes |
|
||||
|---|---|---|
|
||||
| **aitools.inc** | ~66 | "10x your output" positioning. |
|
||||
| **AIStage** | ~66 | Includes open source + news. |
|
||||
| **AItrendytools** | ~69 | Comprehensive listing. |
|
||||
| **Grabon AI Directory** | ~70 | High DR, broad audience. |
|
||||
| **TopAI.tools** | ~60 | Task-based search similar to TAAFT. |
|
||||
| **Supertools** | ~61 | Clean interface, good categorization. |
|
||||
| **AI Tools Directory** (aitoolsdirectory.com) | ~55 | Curated; featured placement available. |
|
||||
| **AI Tools Love** | ~25 | Comparison-focused. |
|
||||
| **AIChief** | ~35 | Business-focused. |
|
||||
| **LogicBalls** | ~40 | 3,500+ verified tools. |
|
||||
| **SaasAITools** | ~30 | SaaS + AI crossover. |
|
||||
| **PoweredByAI** | ~35 | Growing directory with newsletter reach. |
|
||||
| **TheAISurf** | ~30 | Newer, actively promoting submissions. |
|
||||
| **Aixyz** | ~30 | 1,500+ tools, smart filters. |
|
||||
| **AI Pedia Hub** | ~40 | "Largest directory, updated daily." |
|
||||
| **Dofollow.Tools** | ~30 | Explicitly free dofollow backlinks. |
|
||||
| **AIBacklinkList** | ~25 | Aggregated list of 2500+ AI backlink opportunities. |
|
||||
| **AI Scout** | ~25 | Emerging, less competition. |
|
||||
| **AiMatchPro** | ~20 | Use-case search. |
|
||||
|
||||
---
|
||||
|
||||
## Tier 4 — AI Agent & MCP Server Registries
|
||||
|
||||
Relevant only if the product exposes agent capabilities or MCP servers. These are a real moat for AI-native tools — traditional SaaS products cannot list here.
|
||||
|
||||
| Directory | Category | Notes |
|
||||
|---|---|---|
|
||||
| **AI Agents List (aiagentslist.com)** | Agents | Hosts the 593+ MCP server directory. |
|
||||
| **Glama.ai MCP servers** | MCP | 20K+ security-graded MCP servers. A/B/C/F grades matter — optimize for a good grade. |
|
||||
| **APITracker MCP directory** | MCP | 110+ servers, 90 official integrations. |
|
||||
| **Linux Foundation MCP Registry** | MCP | Canonical registry (PR-based submission, low volume but high signal). Anthropic donated MCP to LF in Dec 2025. |
|
||||
| **AI Agent Store** | Agents | Compare agents, platforms, frameworks. |
|
||||
| **AI Agents Base** | Agents | All-in-one directory. |
|
||||
| **AI Agents Directory** | Agents | Specialized, updated daily. |
|
||||
| **AI Agents Verse** | Agents | Curated directory. |
|
||||
| **AgentHunter** | Agents | "Discover the best AI agents." |
|
||||
| **Add AI Directory** | Agents | Catalogs agents + tools. |
|
||||
| **AI Agents Live** | Agents | Discovery + sharing. |
|
||||
| **AI Agents Marketplace** | Agents | Organized by 300+ human role equivalents. |
|
||||
|
||||
---
|
||||
|
||||
## Tier 5 — No-Code Directories
|
||||
|
||||
Relevant for no-code platforms and builder tools.
|
||||
|
||||
| Directory | Est. DR | Notes |
|
||||
|---|---|---|
|
||||
| **NoCodeFinder** | ~45 | Accepts submissions. |
|
||||
| **No Code MBA Tools Directory** | ~55 | Categorized by project type. |
|
||||
| **We Are No Code Tools Repository** | ~40 | Curated. |
|
||||
| **NoCodeList** | ~30 | — |
|
||||
| **NoCodeDevs** | ~25 | — |
|
||||
| **NoCode.Tech** | ~35 | — |
|
||||
|
||||
---
|
||||
|
||||
## Tier 6 — "Best of" Listicles (Editorial Outreach)
|
||||
|
||||
Not directories per se — these are blog posts on high-DR domains that you get included in via cold outreach. Often more valuable than directories because they combine a dofollow backlink with editorial trust + in-market buyer traffic + AI citation weight.
|
||||
|
||||
**Search patterns to find opportunities:**
|
||||
- `"best [category] tools" 2026`
|
||||
- `"best [competitor] alternative"`
|
||||
- `"top AI [category]"`
|
||||
- `"[category] tools review"`
|
||||
|
||||
**Outreach template (short):**
|
||||
> Hey [name], saw your post on [best X tools]. We launched [product] recently — thought it might be worth a mention. Happy to give you a free account + credits for readers. Here's a 60s demo: [link]. No worries if not a fit.
|
||||
|
||||
**Target:** 10 inclusions in 30 days. Each = dofollow backlink from DR 40–70 + referral traffic + AI citation fuel.
|
||||
|
||||
---
|
||||
|
||||
## Tier 7 — Integration Marketplaces
|
||||
|
||||
Only relevant once the product has integrations. These are the highest-DR backlinks available — worth engineering effort just to land them.
|
||||
|
||||
| Directory | DR | Notes |
|
||||
|---|---|---|
|
||||
| **Zapier App Directory** | 91 | Requires working Zapier integration. |
|
||||
| **HubSpot App Marketplace** | 93 | Requires HubSpot app. |
|
||||
| **Slack App Directory** | 89 | Requires Slack integration. |
|
||||
| **Airtable Marketplace** | 82 | Requires Airtable integration. |
|
||||
| **Notion Integrations Gallery** | 88 | Requires Notion integration. |
|
||||
| **Make (Integromat)** | ~70 | Requires Make module. |
|
||||
| **Pipedream** | ~70 | Requires Pipedream action. |
|
||||
|
||||
---
|
||||
|
||||
## Verification
|
||||
|
||||
After any submission goes live, verify the backlink exists and is dofollow. You can:
|
||||
|
||||
1. **Manual:** Open the listing, right-click your product link, "Inspect" → check for `rel="nofollow"` or `rel="ugc"`. If absent, the link is dofollow.
|
||||
2. **curl:** `curl -sIL https://directory.com/your-listing | grep -i link`
|
||||
3. **SEO tools:** Ahrefs Site Explorer → Backlinks → filter by this directory's domain.
|
||||
|
||||
**Re-verify quarterly.** Directories sometimes change all outbound links to nofollow without warning — if DR stops moving, check whether your biggest inbound links have silently flipped.
|
||||
@@ -0,0 +1,232 @@
|
||||
# Positioning Variations Library
|
||||
|
||||
Directory audiences respond to different framings. Never copy-paste the same description everywhere — AI engines penalize duplicate content, and each directory type rewards a different opener.
|
||||
|
||||
Use this library to generate per-tier variants. Swap `[product]`, `[category]`, `[competitors]`, `[use-case]`, and `[audience]` with the real values.
|
||||
|
||||
---
|
||||
|
||||
## Framework: Lead Sentence Varies by Tier
|
||||
|
||||
| Tier | Lead sentence pattern | Why |
|
||||
|---|---|---|
|
||||
| Startup / launch | "[Product] is the easiest way to [outcome] for [audience]." | Founders scan for outcome clarity. |
|
||||
| SaaS directory | "[Product] is the [differentiator] alternative to [competitors]." | Catches "[competitor] alternative" search intent. |
|
||||
| AI directory | "[Product] uses [AI capability] to [outcome]." | TAAFT/Futurepedia audiences explicitly want AI. |
|
||||
| Agent / MCP | "[Product] is an MCP-native / agent-native [category]." | Niche but high-intent. Ruling-out competitors. |
|
||||
| No-code | "[Product] lets you build [output] without code." | Audience values speed, not technical depth. |
|
||||
| Dev tool | "[Product] is a [technical category] with [differentiator]." | Devs want substance upfront. |
|
||||
| B2B review | "[Product] helps [audience] [measurable business outcome]." | Reviewers want ROI language. |
|
||||
|
||||
---
|
||||
|
||||
## Template: Startup / Launch Directories
|
||||
|
||||
**Target:** Product Hunt, BetaList, Fazier, Uneed, DevHunt, Microlaunch, OpenHunts, LaunchVault, Firsto, PitchWall
|
||||
|
||||
**Tagline (under 10 words):**
|
||||
> The [differentiator] way to [outcome] for [audience].
|
||||
|
||||
**Short description (60 chars):**
|
||||
> [Outcome-focused one-liner with product name]
|
||||
|
||||
**Long description (150 words):**
|
||||
> [Product] is the easiest way to [outcome] for [audience]. Built for teams who [pain point], [product] removes [friction] by [how].
|
||||
>
|
||||
> Unlike [competitor category], [product] [key differentiator 1] and [key differentiator 2]. You can [action 1] in under [timeframe], [action 2] without [limitation], and [action 3] that would normally require [cost or technical skill].
|
||||
>
|
||||
> We built [product] because [founder origin story in one sentence]. It's now used by [audience examples] to [use case examples].
|
||||
>
|
||||
> Try it free at [url]. No credit card, no setup.
|
||||
|
||||
**Tags:** [product category], [audience type], [use case 1], [use case 2], [differentiator], [tech]
|
||||
|
||||
---
|
||||
|
||||
## Template: SaaS / Software Directories
|
||||
|
||||
**Target:** AlternativeTo, SaaSHub, G2, Capterra, GetApp, SourceForge, Slashdot, Startup Stash, F6S
|
||||
|
||||
**Tagline:**
|
||||
> The [differentiator] alternative to [top competitors].
|
||||
|
||||
**Long description:**
|
||||
> [Product] is a [differentiator] alternative to [competitor 1], [competitor 2], and [competitor 3] — built for [audience] who need [gap the competitors don't fill].
|
||||
>
|
||||
> Where [competitor 1] [limitation 1] and [competitor 2] [limitation 2], [product] [solves]. You get [feature 1], [feature 2], and [feature 3] in a single workspace, at [pricing relative to competitors].
|
||||
>
|
||||
> Key features:
|
||||
> • [Feature 1] — [benefit]
|
||||
> • [Feature 2] — [benefit]
|
||||
> • [Feature 3] — [benefit]
|
||||
> • [Feature 4] — [benefit]
|
||||
> • [Integration 1], [Integration 2], [Integration 3] integrations
|
||||
>
|
||||
> Trusted by [audience examples]. Start free at [url].
|
||||
|
||||
**Tags:** [competitor] alternative, [category], [audience], [differentiator], [top 3 features]
|
||||
|
||||
---
|
||||
|
||||
## Template: AI Directories
|
||||
|
||||
**Target:** TAAFT, Futurepedia, Toolify, Future Tools, aitools.inc, AIStage, LogicBalls, SaasAITools
|
||||
|
||||
**Tagline:**
|
||||
> AI-powered [category] for [audience].
|
||||
|
||||
**Long description:**
|
||||
> [Product] is an AI-powered [category] that [core AI capability]. It uses [specific models / techniques] to [outcome] — so [audience] can [job to be done] in a fraction of the time.
|
||||
>
|
||||
> What makes it AI-first:
|
||||
> • [AI feature 1] — [what it does] using [model/approach]
|
||||
> • [AI feature 2] — [what it does]
|
||||
> • [AI feature 3] — [what it does]
|
||||
> • [AI feature 4] — [what it does]
|
||||
>
|
||||
> [Product] is built on [tech stack] and supports [models/providers]. Use cases: [use case 1], [use case 2], [use case 3], [use case 4].
|
||||
>
|
||||
> Free tier available. No API keys required to start.
|
||||
|
||||
**Tags:** AI [category], [AI capability 1], [AI capability 2], AI for [audience], [use case 1], [use case 2], [LLM provider], [differentiator]
|
||||
|
||||
---
|
||||
|
||||
## Template: Agent / MCP Registries
|
||||
|
||||
**Target:** Glama, APITracker, Linux Foundation MCP Registry, AI Agents List, AI Agent Store, AgentHunter
|
||||
|
||||
**Tagline:**
|
||||
> MCP-native [category] for AI agents.
|
||||
|
||||
**Long description:**
|
||||
> [Product] is an MCP-native [category] that lets AI agents [capability]. It exposes [MCP server capabilities] via the Model Context Protocol, so agents in Claude, ChatGPT, Cursor, and any MCP-compatible client can [actions].
|
||||
>
|
||||
> MCP capabilities:
|
||||
> • [Tool 1] — [what the agent can do]
|
||||
> • [Tool 2] — [what the agent can do]
|
||||
> • [Tool 3] — [what the agent can do]
|
||||
> • [Resource 1] — [context surfaced]
|
||||
> • [Prompt 1] — [pre-built prompt]
|
||||
>
|
||||
> Authentication: [auth method]. Transports: stdio, HTTP, SSE. Security: [security posture].
|
||||
>
|
||||
> Installation: [one-line install command]. Docs: [docs URL].
|
||||
|
||||
**Tags:** MCP, MCP server, AI agent, agent [category], Claude integration, Model Context Protocol, [domain], [auth type]
|
||||
|
||||
---
|
||||
|
||||
## Template: No-Code Directories
|
||||
|
||||
**Target:** NoCodeFinder, No Code MBA Tools Directory, We Are No Code, NoCode.Tech
|
||||
|
||||
**Tagline:**
|
||||
> Build [output] without code.
|
||||
|
||||
**Long description:**
|
||||
> [Product] lets you build [output] without writing code. Drag, drop, or describe what you want and [product] handles the rest — [technical concept 1] and [technical concept 2] are automatic.
|
||||
>
|
||||
> What you can build:
|
||||
> • [Example project 1] — built in [timeframe]
|
||||
> • [Example project 2] — built in [timeframe]
|
||||
> • [Example project 3] — built in [timeframe]
|
||||
>
|
||||
> No-code friendly features:
|
||||
> • [Visual feature 1]
|
||||
> • [Visual feature 2]
|
||||
> • [AI-assisted feature]
|
||||
> • [Pre-built templates]
|
||||
>
|
||||
> Start free. No credit card. Templates included.
|
||||
|
||||
**Tags:** no code, no-code [category], visual [tool], drag and drop, [output type], [audience type]
|
||||
|
||||
---
|
||||
|
||||
## Template: Dev / Technical Directories
|
||||
|
||||
**Target:** DevHunt, Stackshare, GitHub, Dev.to, Hacker News Show HN
|
||||
|
||||
**Tagline:**
|
||||
> [Technical category] with [technical differentiator].
|
||||
|
||||
**Long description:**
|
||||
> [Product] is a [technical category] built on [tech stack]. It solves [technical problem] by [technical approach].
|
||||
>
|
||||
> Architecture:
|
||||
> • [Component 1] — [tech used]
|
||||
> • [Component 2] — [tech used]
|
||||
> • [Component 3] — [tech used]
|
||||
>
|
||||
> Why it's different: [technical insight or novel approach]. We chose [trade-off] because [reason].
|
||||
>
|
||||
> Open source: [yes/no/partial]. Self-hostable: [yes/no]. License: [license].
|
||||
>
|
||||
> API: [REST / GraphQL / MCP / gRPC]. SDKs: [languages]. Docs: [url].
|
||||
|
||||
**Tags:** [language], [framework], [category], open source, API, [tech stack component], [architecture approach]
|
||||
|
||||
---
|
||||
|
||||
## Template: B2B Review Platforms
|
||||
|
||||
**Target:** G2, Capterra, TrustRadius, GetApp, Gartner Digital Markets, Crozdesk
|
||||
|
||||
**Tagline:**
|
||||
> [Business outcome] for [audience].
|
||||
|
||||
**Long description:**
|
||||
> [Product] helps [audience] [achieve measurable business outcome]. Teams use it to [use case 1], [use case 2], and [use case 3] — reducing [metric] by [percentage] and increasing [metric] by [percentage].
|
||||
>
|
||||
> Key benefits:
|
||||
> • [Business benefit 1] with [how measured]
|
||||
> • [Business benefit 2] with [how measured]
|
||||
> • [Business benefit 3] with [how measured]
|
||||
>
|
||||
> Integrations: [enterprise integrations — HubSpot, Salesforce, Slack, etc.]
|
||||
>
|
||||
> Security: [SOC 2 / GDPR / compliance posture]. Support: [support tier]. Pricing: [pricing range].
|
||||
>
|
||||
> Trusted by [customer logos / company size]. Case studies at [url].
|
||||
|
||||
**Tags:** [business use case], [vertical], [audience role], [compliance], enterprise [category], [integration 1]
|
||||
|
||||
---
|
||||
|
||||
## Category Tag Library
|
||||
|
||||
Pull 5–8 tags per submission from the relevant sections. Never repeat the exact same tag set across two directories in the same tier.
|
||||
|
||||
### Universal
|
||||
[category], [audience], [differentiator], [use case], AI, no-code, SaaS, [tech stack]
|
||||
|
||||
### Industry
|
||||
B2B, B2C, DTC, ecommerce, fintech, edtech, healthtech, martech, devtools, productivity, creator tools, agency tools
|
||||
|
||||
### Job-to-be-done
|
||||
lead generation, lead qualification, customer onboarding, product recommendation, sales enablement, marketing automation, survey, assessment, calculator, quiz, intake form
|
||||
|
||||
### AI-specific
|
||||
AI agent, LLM, generative AI, conversational AI, RAG, MCP, agent framework, AI form, AI quiz, AI assistant, AI automation
|
||||
|
||||
### Technical
|
||||
open source, self-hosted, API-first, webhook, Zapier, no-code, low-code, embeddable, white-label, multi-tenant, SSO, SAML
|
||||
|
||||
---
|
||||
|
||||
## Do / Don't Quick Reference
|
||||
|
||||
**DO:**
|
||||
- Vary the opening sentence across tiers
|
||||
- Use real numbers and specific differentiators
|
||||
- Match tone to audience (technical for devs, business for G2, excited for PH)
|
||||
- Include a founder/origin angle in startup directories
|
||||
- Lead with the AI-first angle in AI directories
|
||||
|
||||
**DON'T:**
|
||||
- Copy-paste the same 150-word description everywhere
|
||||
- Use vague claims ("blazing fast", "game-changing")
|
||||
- Mention every feature — pick 3–5 per tier and rotate them
|
||||
- Lie about competitor features (AI engines cross-reference and de-rank)
|
||||
- Skip the tag list — it's how moderators route you to the right category
|
||||
@@ -0,0 +1,80 @@
|
||||
Directory,Tier,URL,Category,DR,Dofollow,Submission Date,Status,Live URL,Backlink Verified,Positioning Variant Used,Tags Used,Account Email,Notes
|
||||
Product Hunt,1,https://producthunt.com/posts/new,Launch,91,Yes,,Draft,,,Startup,,,
|
||||
Hacker News (Show HN),1,https://news.ycombinator.com/submit,Launch,91,No,,Draft,,,Dev,,,
|
||||
BetaList,1,https://betalist.com/submit,Launch,64,Yes,,Draft,,,Startup,,,
|
||||
Fazier,1,https://fazier.com/submit,Launch,30,Yes,,Draft,,,Startup,,,
|
||||
DevHunt,1,https://devhunt.org/submit,Launch,35,Yes,,Draft,,,Dev,,,
|
||||
Uneed,1,https://uneed.best/submit-a-tool,Launch,40,Yes,,Draft,,,Startup,,,
|
||||
Microlaunch,1,https://microlaunch.net/submit,Launch,30,Yes,,Draft,,,Startup,,,
|
||||
OpenHunts,1,https://openhunts.com/submit,Launch,25,Yes,,Draft,,,Startup,,,
|
||||
LaunchVault,1,https://launchvault.com/submit,Launch,20,Yes,,Draft,,,Startup,,,
|
||||
What Launched Today,1,https://whatlaunchedtoday.com,Launch,20,Yes,,Draft,,,Startup,,,
|
||||
Launching Next,1,https://launchingnext.com/submit,Launch,30,Yes,,Draft,,,Startup,,,
|
||||
PeerPush,1,https://peerpush.net/submit,Launch,25,Yes,,Draft,,,Startup,,,
|
||||
Firsto,1,https://firsto.co/submit,Launch,25,Yes,,Draft,,,Startup,,,
|
||||
GetByte,1,https://getbyte.co/submit,Launch,20,Yes,,Draft,,,Startup,,,
|
||||
Best of Web,1,https://bestofweb.io/submit,Launch,30,Yes,,Draft,,,Startup,,,
|
||||
Tiny Launch,1,https://tinylaunch.com/submit,Launch,20,Yes,,Draft,,,Startup,,,
|
||||
PitchWall,1,https://pitchwall.co/submit,Launch,25,Yes,,Draft,,,Startup,,,
|
||||
AlternativeTo,2,https://alternativeto.net/software/_/add/,SaaS,79,No,,Draft,,,SaaS,,,
|
||||
SaaSHub,2,https://saashub.com/submit,SaaS,77,Yes,,Draft,,,SaaS,,,
|
||||
G2,2,https://my.g2.com/sellers/welcome,SaaS,92,Yes,,Draft,,,B2B review,,,
|
||||
Capterra,2,https://www.capterra.com/vendors,SaaS,93,Yes,,Draft,,,B2B review,,,
|
||||
GetApp,2,https://www.getapp.com/vendors,SaaS,78,Yes,,Draft,,,B2B review,,,
|
||||
SourceForge,2,https://sourceforge.net/user/register,SaaS,92,Yes,,Draft,,,SaaS,,,
|
||||
Slashdot,2,https://slashdot.org/submission,SaaS,88,Yes,,Draft,,,SaaS,,,
|
||||
Startup Stash,2,https://startupstash.com/submit,SaaS,50,Yes,,Draft,,,Startup,,,
|
||||
SideProjectors,2,https://www.sideprojectors.com/project/new,SaaS,35,Yes,,Draft,,,Startup,,,
|
||||
F6S,2,https://www.f6s.com/company/create,SaaS,65,Yes,,Draft,,,Startup,,,
|
||||
Stackshare,2,https://stackshare.io/new-product,SaaS,60,Yes,,Draft,,,Dev,,,
|
||||
TrustRadius,2,https://www.trustradius.com/vendors,SaaS,72,Yes,,Draft,,,B2B review,,,
|
||||
Crozdesk,2,https://crozdesk.com/vendors,SaaS,55,Yes,,Draft,,,SaaS,,,
|
||||
There's An AI For That,3,https://theresanaiforthat.com/submit,AI,76,Yes,,Draft,,,AI,,,
|
||||
Futurepedia,3,https://www.futurepedia.io/submit-tool,AI,70,Yes,,Draft,,,AI,,,
|
||||
Toolify.ai,3,https://www.toolify.ai/submit,AI,71,Yes,,Draft,,,AI,,,
|
||||
Future Tools,3,https://www.futuretools.io/submit-a-tool,AI,69,Yes,,Draft,,,AI,,,
|
||||
AI Tools Neilpatel,3,https://neilpatel.com/ai-tools,AI,91,Yes,,Draft,,,AI,,,
|
||||
Good AI Tools,3,https://goodaitools.com/submit,AI,66,Yes,,Draft,,,AI,,,
|
||||
NewTools.site,3,https://newtools.site/submit,AI,51,Yes,,Draft,,,AI,,,
|
||||
aitools.inc,3,https://aitools.inc/submit,AI,66,Yes,,Draft,,,AI,,,
|
||||
AIStage,3,https://aistage.net/submit,AI,66,Yes,,Draft,,,AI,,,
|
||||
AItrendytools,3,https://www.aitrendytools.com/submit,AI,69,Yes,,Draft,,,AI,,,
|
||||
Grabon AI Directory,3,https://www.grabon.in/indulge/ai-tools/submit,AI,70,Yes,,Draft,,,AI,,,
|
||||
TopAI.tools,3,https://topai.tools/submit,AI,60,Yes,,Draft,,,AI,,,
|
||||
Supertools,3,https://supertools.therundown.ai/submit,AI,61,Yes,,Draft,,,AI,,,
|
||||
AI Tools Directory,3,https://aitoolsdirectory.com/submit,AI,55,Yes,,Draft,,,AI,,,
|
||||
LogicBalls,3,https://logicballs.com/submit,AI,40,Yes,,Draft,,,AI,,,
|
||||
SaasAITools,3,https://saasaitools.com/submit,AI,30,Yes,,Draft,,,AI,,,
|
||||
PoweredByAI,3,https://poweredbyai.app/submit,AI,35,Yes,,Draft,,,AI,,,
|
||||
TheAISurf,3,https://theaisurf.com/submit,AI,30,Yes,,Draft,,,AI,,,
|
||||
Aixyz,3,https://ai.xyz/submit,AI,30,Yes,,Draft,,,AI,,,
|
||||
AI Pedia Hub,3,https://aipediahub.com/submit,AI,40,Yes,,Draft,,,AI,,,
|
||||
Dofollow.Tools,3,https://dofollow.tools/submit,AI,30,Yes,,Draft,,,AI,,,
|
||||
AI Scout,3,https://aiscout.net/submit,AI,25,Yes,,Draft,,,AI,,,
|
||||
AiMatchPro,3,https://aimatchpro.ai/submit,AI,20,Yes,,Draft,,,AI,,,
|
||||
AIChief,3,https://aichief.com/submit,AI,35,Yes,,Draft,,,AI,,,
|
||||
AI Tools Love,3,https://aitools.love/submit,AI,25,Yes,,Draft,,,AI,,,
|
||||
AI Agents List,4,https://aiagentslist.com/submit,Agent,,Yes,,Draft,,,Agent,,,
|
||||
Glama.ai MCP,4,https://glama.ai/mcp/servers,MCP,,Yes,,Draft,,,MCP,,,
|
||||
APITracker MCP,4,https://apitracker.io/mcp-servers,MCP,,Yes,,Draft,,,MCP,,,
|
||||
Linux Foundation MCP Registry,4,https://github.com/modelcontextprotocol/registry,MCP,,Yes,,Draft,,,MCP,,,
|
||||
AI Agent Store,4,https://aiagentstore.ai/submit,Agent,,Yes,,Draft,,,Agent,,,
|
||||
AI Agents Base,4,https://aiagentsbase.com/submit,Agent,,Yes,,Draft,,,Agent,,,
|
||||
AI Agents Directory,4,https://aiagentsdirectory.com/submit,Agent,,Yes,,Draft,,,Agent,,,
|
||||
AI Agents Verse,4,https://aiagentsverse.com/submit,Agent,,Yes,,Draft,,,Agent,,,
|
||||
AgentHunter,4,https://agenthunter.com/submit,Agent,,Yes,,Draft,,,Agent,,,
|
||||
AI Agents Live,4,https://aiagents.live/submit,Agent,,Yes,,Draft,,,Agent,,,
|
||||
AI Agents Marketplace,4,https://aiagentsmarketplace.com/submit,Agent,,Yes,,Draft,,,Agent,,,
|
||||
NoCodeFinder,5,https://www.nocodefinder.com/submit,No-Code,45,Yes,,Draft,,,No-code,,,
|
||||
No Code MBA,5,https://www.nocode.mba/tools/submit,No-Code,55,Yes,,Draft,,,No-code,,,
|
||||
We Are No Code,5,https://www.wearenocode.com/submit,No-Code,40,Yes,,Draft,,,No-code,,,
|
||||
NoCodeList,5,https://nocodelist.co/submit,No-Code,30,Yes,,Draft,,,No-code,,,
|
||||
NoCodeDevs,5,https://www.nocodedevs.com/submit,No-Code,25,Yes,,Draft,,,No-code,,,
|
||||
NoCode.Tech,5,https://www.nocode.tech/submit,No-Code,35,Yes,,Draft,,,No-code,,,
|
||||
Zapier App Directory,7,https://zapier.com/developer,Integration,91,Yes,,Draft,,,Integration,,,
|
||||
HubSpot App Marketplace,7,https://ecosystem.hubspot.com/marketplace,Integration,93,Yes,,Draft,,,Integration,,,
|
||||
Slack App Directory,7,https://api.slack.com/apps,Integration,89,Yes,,Draft,,,Integration,,,
|
||||
Airtable Marketplace,7,https://airtable.com/marketplace,Integration,82,Yes,,Draft,,,Integration,,,
|
||||
Notion Integrations,7,https://www.notion.so/integrations,Integration,88,Yes,,Draft,,,Integration,,,
|
||||
Make (Integromat),7,https://www.make.com/en/partners,Integration,70,Yes,,Draft,,,Integration,,,
|
||||
Pipedream,7,https://pipedream.com/docs/components,Integration,70,Yes,,Draft,,,Integration,,,
|
||||
|
@@ -0,0 +1,335 @@
|
||||
---
|
||||
name: image
|
||||
description: "When the user wants to create, generate, edit, or optimize images for marketing — blog heroes, social graphics, product mockups, profile banners, listing visuals, or brand assets. Also use when the user mentions 'AI image generation,' 'generate an image,' 'create a graphic,' 'product mockup,' 'hero image,' 'social media graphic,' 'banner image,' 'cover photo,' 'profile banner,' 'listing screenshot,' 'Flux,' 'Midjourney,' 'DALL-E,' 'GPT Image,' 'Ideogram,' 'Gemini image,' 'Canva,' 'Figma,' 'image optimization,' 'compress images,' 'WebP,' or 'OG image.' Use this for general-purpose marketing image creation and optimization. For paid ad image creative and platform-specific ad specs, see ad-creative. For video production, see video."
|
||||
metadata:
|
||||
version: 1.0.0
|
||||
---
|
||||
|
||||
# Image
|
||||
|
||||
You are an expert visual content producer who helps create marketing images using AI generation models, design tools, and optimization best practices. Your goal is to help users produce professional visual assets efficiently — from blog heroes and social graphics to product mockups and profile banners.
|
||||
|
||||
## Before Starting
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
|
||||
|
||||
Gather this context (ask if not provided):
|
||||
|
||||
### 1. Image Goal
|
||||
- What type of image? (Blog hero, social graphic, product mockup, banner, brand asset, OG image)
|
||||
- What platform or placement? (Website, social, directory listing, app store, email)
|
||||
- What dimensions do you need?
|
||||
|
||||
### 2. Production Approach
|
||||
- Do you have existing brand assets? (Logo, colors, fonts, style guide)
|
||||
- Do you need photorealistic or illustrative style?
|
||||
- Is this a one-off or a template for repeated use?
|
||||
|
||||
### 3. Technical Context
|
||||
- Do you have API keys for any image tools? (Gemini, Replicate/Flux, Ideogram)
|
||||
- Budget constraints? (Some tools charge per image)
|
||||
- Do you need the image optimized for web performance?
|
||||
|
||||
---
|
||||
|
||||
## Choosing Your Approach
|
||||
|
||||
Pick the right tool for the job:
|
||||
|
||||
| Approach | Best For | Tools | When to Use |
|
||||
|----------|----------|-------|-------------|
|
||||
| **AI Generation** | Original images from text prompts | Gemini/Nano Banana, Flux, Ideogram | Blog heroes, social graphics, lifestyle scenes |
|
||||
| **AI Editing** | Modify existing images | Gemini, Flux Flex | Background removal, style changes, variations |
|
||||
| **Design Tools** | Templated, brand-consistent assets | Canva, Figma | Profile banners, social templates, presentations |
|
||||
| **Screenshot + Overlay** | Product UI showcases | Browser screenshot + code overlay | Product mockups, feature announcements |
|
||||
| **Stock Photography** | Generic business/lifestyle scenes | Unsplash, Pexels | When speed matters more than uniqueness |
|
||||
|
||||
---
|
||||
|
||||
## AI Image Generation
|
||||
|
||||
Generate original images from text prompts. The fastest way to create unique marketing visuals.
|
||||
|
||||
### Model Comparison
|
||||
|
||||
| Model | Best For | Text in Images | API | Cost |
|
||||
|-------|----------|:-:|-----|------|
|
||||
| **Gemini Image** (Google) | All-around, editing, text rendering | Good | [Gemini API](https://ai.google.dev/gemini-api/docs/image-generation) | Check [pricing](https://ai.google.dev/gemini-api/docs/pricing) |
|
||||
| **Flux** (Black Forest Labs) | Photorealism, brand consistency, batch | Limited | [BFL API](https://docs.bfl.ai/), Replicate, fal.ai | Check [pricing](https://docs.bfl.ai/quick_start/pricing) |
|
||||
| **Ideogram** | Typography, branded graphics | Best | [Ideogram API](https://developer.ideogram.ai/) | Check [pricing](https://about.ideogram.ai/api-pricing) |
|
||||
| **GPT Image** (OpenAI) | General purpose, ChatGPT integration | Good | [OpenAI API](https://platform.openai.com/docs/guides/image-generation) | Check [pricing](https://platform.openai.com/docs/pricing) |
|
||||
| **Midjourney** | Artistic, high-aesthetic | Poor | No official API | Subscription-based |
|
||||
| **Stable Diffusion** | Self-hosted, customizable | Varies | Open source | Free (GPU costs) |
|
||||
|
||||
**Note:** DALL-E 3 is deprecated. OpenAI's current image models are the GPT Image family (`gpt-image-1`, etc.).
|
||||
|
||||
### When to Use Which
|
||||
|
||||
```
|
||||
Need text/headlines in the image?
|
||||
├── Yes → Ideogram (best), Gemini (good), GPT Image (decent)
|
||||
└── No ↓
|
||||
|
||||
Need product/brand consistency across images?
|
||||
├── Yes → Flux (multi-image reference)
|
||||
└── No ↓
|
||||
|
||||
Need to edit an existing image?
|
||||
├── Yes → Gemini (native editing), Flux Flex
|
||||
└── No ↓
|
||||
|
||||
Need highest visual quality?
|
||||
├── Yes → Flux Pro, Midjourney
|
||||
└── No ↓
|
||||
|
||||
Need volume at low cost?
|
||||
└── Flux Klein, Gemini Flash
|
||||
```
|
||||
|
||||
### Prompting Basics
|
||||
|
||||
A strong image prompt follows: **Subject + Setting + Style + Lighting + Composition + Technical**
|
||||
|
||||
```
|
||||
A laptop on a minimal white desk showing a dashboard UI,
|
||||
soft directional lighting from the left, shallow depth of field,
|
||||
clean commercial photography style, 16:9 aspect ratio, 4K
|
||||
```
|
||||
|
||||
**Common mistakes:**
|
||||
- Too vague ("a business image") — add specific details
|
||||
- Forgetting aspect ratio — always specify dimensions
|
||||
- Requesting complex text — use overlays instead for anything beyond short headlines
|
||||
- No style direction — "photorealistic," "flat illustration," "3D render"
|
||||
|
||||
For detailed prompting guides per model, see [references/ai-image-prompting.md](references/ai-image-prompting.md).
|
||||
|
||||
---
|
||||
|
||||
## Design Tools
|
||||
|
||||
For templated, brand-consistent work where AI generation is overkill or too unpredictable.
|
||||
|
||||
### Canva
|
||||
|
||||
Best for non-designers who need polished output fast.
|
||||
|
||||
- **Strengths:** Massive template library, brand kit, Magic Resize (one design → all sizes), team collaboration
|
||||
- **Best for:** Social graphics, presentations, email headers, simple banners
|
||||
- **Limitations:** Less control than Figma, templates can look generic
|
||||
- **Agent-friendliness:** Has an API but limited — better as a human-in-the-loop tool
|
||||
|
||||
### Figma
|
||||
|
||||
Best for teams with design systems or pixel-perfect needs.
|
||||
|
||||
- **Strengths:** Design system components, auto layout, developer handoff, plugins
|
||||
- **Best for:** OG images via templates, design system assets, complex layouts
|
||||
- **Limitations:** Steeper learning curve, requires design skill
|
||||
- **Agent-friendliness:** Has an API and MCP server for reading designs
|
||||
|
||||
### When to Use Design Tools vs. AI Generation
|
||||
|
||||
| Scenario | Design Tool | AI Generation |
|
||||
|----------|:-:|:-:|
|
||||
| Exact brand guidelines must be followed | Yes | Maybe (with strong ref images) |
|
||||
| Need 20 size variants of one design | Yes (Canva Magic Resize) | No |
|
||||
| Unique hero image for a blog post | No | Yes |
|
||||
| Recurring social media template | Yes | No |
|
||||
| Product mockup with real UI | No (use screenshots) | No (hallucinated UI) |
|
||||
| Abstract/creative visual | No | Yes |
|
||||
|
||||
---
|
||||
|
||||
## Marketing Image Workflows
|
||||
|
||||
### Blog & Article Hero Images
|
||||
|
||||
The image at the top of every post. Sets tone, improves shareability, required for OG/social previews.
|
||||
|
||||
1. **Define the concept** — what visual metaphor represents the topic?
|
||||
2. **Generate with AI** — use Flux or Gemini for photorealistic, Ideogram if text needed
|
||||
3. **Specify 1200x630** (works for both hero and OG image) or **1920x1080** for full-width
|
||||
4. **Optimize** — compress to <200KB, serve as WebP with JPEG fallback
|
||||
|
||||
**Prompt pattern:**
|
||||
```
|
||||
[Visual metaphor for topic], clean modern style,
|
||||
bright natural lighting, shallow depth of field,
|
||||
professional blog header aesthetic, 1200x630
|
||||
```
|
||||
|
||||
### Social Media Graphics
|
||||
|
||||
Platform-specific images for organic posts.
|
||||
|
||||
| Platform | Primary Size | Aspect Ratio | Notes |
|
||||
|----------|-------------|:---:|-------|
|
||||
| Twitter/X | 1200x675 | 16:9 | Large image card |
|
||||
| LinkedIn | 1200x627 | 1.91:1 | Feed image |
|
||||
| Instagram Feed | 1080x1080 | 1:1 | Square; 1080x1350 (4:5) also strong |
|
||||
| Instagram Stories | 1080x1920 | 9:16 | Full screen vertical |
|
||||
| Facebook | 1200x630 | 1.91:1 | Link share image |
|
||||
|
||||
**Workflow:**
|
||||
1. Create the hero concept at highest resolution needed
|
||||
2. Use Canva Magic Resize or manual crop for platform variants
|
||||
3. Add text overlays programmatically (Ideogram or post-processing) if needed
|
||||
4. Export at platform-specific dimensions
|
||||
|
||||
### Product Mockups & Screenshots
|
||||
|
||||
Showcase your product UI in context. AI models hallucinate UI — don't use them for this.
|
||||
|
||||
1. **Capture real screenshots** of your product at 2x resolution
|
||||
2. **Frame in device mockups** — use browser frame, laptop, or phone templates
|
||||
3. **Add context** — callout arrows, feature labels, before/after comparisons
|
||||
4. **Annotate with code** — Hyperframes or HTML/CSS for programmatic overlays
|
||||
|
||||
**Tools:** Browser DevTools (screenshot), Shottr (Mac), CleanShot X, or `screencapture` CLI.
|
||||
|
||||
### Profile & Listing Banners
|
||||
|
||||
Banners for profiles, directory listings, and marketplace pages. Often the first visual impression.
|
||||
|
||||
| Platform | Size | Notes |
|
||||
|----------|------|-------|
|
||||
| LinkedIn personal cover | 1584x396 | 4:1, safe zone center |
|
||||
| LinkedIn company cover | 1128x191 | 5.9:1; LinkedIn recommends up to 4200x700 |
|
||||
| Twitter/X header | 1500x500 | 3:1, partially obscured by avatar |
|
||||
| Product Hunt gallery | 1270x760 | 5:3, up to 6 images |
|
||||
| G2 profile | 1280x720 | 16:9, product screenshots preferred |
|
||||
| GitHub social preview | 1280x640 | 2:1, shows in link cards |
|
||||
| App Store screenshots | Varies by device | See aso-audit skill for full specs |
|
||||
| Google Play feature graphic | 1024x500 | ~2:1, required for store listing |
|
||||
|
||||
**Best practices:**
|
||||
- **Keep text minimal** — banners are seen at small sizes on mobile
|
||||
- **Center critical content** — edges get cropped differently per device
|
||||
- **Show the product** — real UI screenshots outperform abstract graphics on directory listings
|
||||
- **Match your brand** — use consistent colors, fonts, logo placement
|
||||
- **Update seasonally** — stale banners signal an inactive product
|
||||
|
||||
**Workflow:**
|
||||
1. Pick the platform(s) and note exact dimensions
|
||||
2. For directories (Product Hunt, G2): use real product screenshots with light annotation
|
||||
3. For profiles (LinkedIn, Twitter): use brand colors + tagline + optional product shot
|
||||
4. Generate with Canva/Figma templates or Ideogram (if text-heavy)
|
||||
5. Test at actual display size — zoom out to check readability
|
||||
|
||||
### Brand Assets
|
||||
|
||||
Logos, icons, and illustrations. AI generation has limits here.
|
||||
|
||||
| Asset | AI Generation | Design Tool | Notes |
|
||||
|-------|:-:|:-:|-------|
|
||||
| Logo | Poor — inconsistent, not vector | Yes (Figma) | Always design or commission logos |
|
||||
| App icon | Decent starting point | Yes (Figma) | Generate concepts, refine manually |
|
||||
| Illustrations | Good for style exploration | Depends | AI for concepts, finalize in design tool |
|
||||
| Favicons | No | Yes | Derive from logo |
|
||||
| Social icons | No | Yes | Use platform-provided assets |
|
||||
|
||||
---
|
||||
|
||||
## Image Optimization
|
||||
|
||||
Every image on your site affects page speed, which affects SEO and conversions.
|
||||
|
||||
### Format Guide
|
||||
|
||||
| Format | Best For | Compression | Browser Support |
|
||||
|--------|----------|-------------|:---:|
|
||||
| **WebP** | Photos, graphics — default choice | Lossy + lossless | ~96% |
|
||||
| **AVIF** | Highest compression, newest | Better than WebP | ~94% |
|
||||
| **JPEG** | Fallback for older browsers | Lossy only | Universal |
|
||||
| **PNG** | Transparency, screenshots | Lossless | Universal |
|
||||
| **SVG** | Logos, icons, illustrations | Vector (scales) | Universal |
|
||||
|
||||
### Optimization Checklist
|
||||
|
||||
- [ ] **Serve WebP** with JPEG/PNG fallback (`<picture>` element or CDN auto-format)
|
||||
- [ ] **Resize to display size** — don't serve 4000px images in 800px containers
|
||||
- [ ] **Compress** — target quality 75-85% for photos, near-lossless for screenshots
|
||||
- [ ] **Lazy load** below-the-fold images (`loading="lazy"`)
|
||||
- [ ] **Set explicit dimensions** — `width` and `height` attributes prevent layout shift (CLS)
|
||||
- [ ] **Use a CDN** with auto-optimization (Cloudflare, Vercel, Imgix, Cloudinary)
|
||||
- [ ] **Add alt text** — descriptive, keyword-relevant, not stuffed
|
||||
|
||||
### Quick Optimization Commands
|
||||
|
||||
```bash
|
||||
# Convert to WebP (using cwebp)
|
||||
cwebp -q 80 input.png -o output.webp
|
||||
|
||||
# Batch convert with ImageMagick
|
||||
mogrify -format webp -quality 80 *.png
|
||||
|
||||
# Optimize JPEG (using jpegoptim)
|
||||
jpegoptim --max=80 --strip-all *.jpg
|
||||
|
||||
# Check image sizes on a page
|
||||
curl -s https://yoursite.com | grep -oP 'src="[^"]+\.(jpg|png|webp)"' | head -20
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## OG & Social Preview Images
|
||||
|
||||
The image that appears when your URL is shared on social media, Slack, Discord, etc.
|
||||
|
||||
### Required Meta Tags
|
||||
|
||||
```html
|
||||
<meta property="og:image" content="https://yoursite.com/og/page-name.jpg" />
|
||||
<meta property="og:image:width" content="1200" />
|
||||
<meta property="og:image:height" content="630" />
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta name="twitter:image" content="https://yoursite.com/og/page-name.jpg" />
|
||||
```
|
||||
|
||||
### Dynamic OG Images
|
||||
|
||||
Generate OG images programmatically for pages with dynamic content (blog posts, user profiles):
|
||||
|
||||
- **Vercel OG** (`@vercel/og`) — generates images at the edge using JSX
|
||||
- **Satori** — converts HTML/CSS to SVG (powers Vercel OG)
|
||||
- **Cloudinary** — URL-based text overlay on template images
|
||||
|
||||
**Best for programmatic SEO:** Generate unique OG images per page using templates + dynamic data.
|
||||
|
||||
---
|
||||
|
||||
## Common Mistakes
|
||||
|
||||
1. **Using AI for product UI screenshots** — models hallucinate interfaces; capture real screenshots
|
||||
2. **Skipping image optimization** — unoptimized images are the #1 page speed killer
|
||||
3. **No OG image** — shared links look broken without a preview image
|
||||
4. **Wrong aspect ratio** — always check platform specs before generating
|
||||
5. **Text-heavy images without Ideogram** — most AI models butcher text; use Ideogram or add text in post
|
||||
6. **Generating without style direction** — "photorealistic," "flat illustration," "3D render" drastically changes output
|
||||
7. **Inconsistent brand visuals** — use Flux multi-reference or design templates for consistency
|
||||
8. **Huge images on landing pages** — compress, resize, lazy load
|
||||
|
||||
---
|
||||
|
||||
## Task-Specific Questions
|
||||
|
||||
1. What type of image do you need? (Blog hero, social graphic, mockup, banner, brand asset)
|
||||
2. What platform or placement? (This determines dimensions)
|
||||
3. Do you have brand assets to match? (Colors, fonts, logo, style guide)
|
||||
4. Is this a one-off or a repeatable template?
|
||||
5. Do you have API keys for any image generation tools?
|
||||
6. Does this need to be optimized for web performance?
|
||||
|
||||
---
|
||||
|
||||
## Related Skills
|
||||
|
||||
- **ad-creative**: For paid ad image creative, platform-specific ad specs, and scaled ad production
|
||||
- **video**: For AI video production and programmatic video
|
||||
- **social-content**: For what to post and content strategy
|
||||
- **page-cro**: For image placement and conversion optimization on landing pages
|
||||
- **seo-audit**: For image SEO (alt text, file names, lazy loading)
|
||||
- **aso-audit**: For app store screenshot specs and optimization
|
||||
- **directory-submissions**: For Product Hunt gallery images and directory listing visuals
|
||||
@@ -0,0 +1,229 @@
|
||||
# AI Image Prompting Guide
|
||||
|
||||
How to write effective prompts for AI image generation models (Gemini/Nano Banana, Flux, Ideogram, DALL-E, Midjourney).
|
||||
|
||||
---
|
||||
|
||||
## Prompt Structure
|
||||
|
||||
A strong image prompt follows this formula:
|
||||
|
||||
```
|
||||
[Subject] + [Setting/context] + [Visual style] + [Lighting] + [Composition] + [Technical specs]
|
||||
```
|
||||
|
||||
### Example Prompts by Use Case
|
||||
|
||||
**Blog hero — SaaS product:**
|
||||
```
|
||||
A clean workspace with a laptop displaying a colorful analytics dashboard,
|
||||
minimalist desk with a coffee cup and notebook,
|
||||
bright natural window lighting from the right,
|
||||
shallow depth of field, commercial photography style,
|
||||
1200x630, high resolution
|
||||
```
|
||||
|
||||
**Social media graphic — announcement:**
|
||||
```
|
||||
Abstract flowing gradient in deep purple and electric blue,
|
||||
geometric shapes forming a network pattern,
|
||||
dramatic rim lighting on edges,
|
||||
modern tech aesthetic, clean and minimal,
|
||||
1080x1080, vibrant colors
|
||||
```
|
||||
|
||||
**Product lifestyle shot:**
|
||||
```
|
||||
A person in a modern office smiling while looking at a tablet,
|
||||
showing a project management interface on screen,
|
||||
warm candid photography, natural lighting,
|
||||
medium shot, shallow depth of field, editorial style
|
||||
```
|
||||
|
||||
**Profile banner — professional:**
|
||||
```
|
||||
Wide panoramic abstract background in navy blue and teal,
|
||||
subtle geometric grid pattern with soft gradient,
|
||||
clean corporate aesthetic, muted lighting,
|
||||
1584x396, no text, space for logo overlay on left third
|
||||
```
|
||||
|
||||
**Directory listing — Product Hunt:**
|
||||
```
|
||||
Product screenshot on a clean gradient background,
|
||||
soft shadow underneath, slight 3D perspective tilt,
|
||||
modern SaaS product presentation style,
|
||||
1270x760, bright and professional
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Style Keywords
|
||||
|
||||
### Photorealistic
|
||||
- "commercial photography"
|
||||
- "shot on Canon EOS R5"
|
||||
- "editorial style"
|
||||
- "natural lighting"
|
||||
- "shallow depth of field"
|
||||
|
||||
### Clean/Corporate
|
||||
- "clean modern aesthetic"
|
||||
- "minimal design"
|
||||
- "professional corporate style"
|
||||
- "bright and airy"
|
||||
- "white background"
|
||||
|
||||
### Illustrative
|
||||
- "flat vector illustration"
|
||||
- "isometric 3D render"
|
||||
- "hand-drawn sketch style"
|
||||
- "watercolor illustration"
|
||||
- "line art"
|
||||
|
||||
### Abstract/Brand
|
||||
- "flowing gradient"
|
||||
- "geometric pattern"
|
||||
- "abstract data visualization"
|
||||
- "particle effects"
|
||||
- "holographic iridescent"
|
||||
|
||||
### Tech/SaaS
|
||||
- "dark mode UI aesthetic"
|
||||
- "neon accent lighting"
|
||||
- "glassmorphism"
|
||||
- "futuristic minimal"
|
||||
- "developer-focused"
|
||||
|
||||
---
|
||||
|
||||
## Lighting Keywords
|
||||
|
||||
| Term | Effect | Best For |
|
||||
|------|--------|----------|
|
||||
| **Natural light** | Warm, organic feel | Lifestyle, editorial |
|
||||
| **Studio lighting** | Even, controlled | Product shots |
|
||||
| **Rim lighting** | Edge highlights, dramatic | Hero images, abstract |
|
||||
| **Soft directional** | Gentle shadows, dimensional | Blog headers |
|
||||
| **Volumetric** | Light rays, atmospheric | Dramatic, cinematic |
|
||||
| **Flat/even** | No shadows, clean | Icons, diagrams |
|
||||
| **Golden hour** | Warm orange tones | Lifestyle, outdoor |
|
||||
| **High key** | Bright, minimal shadows | Clean, corporate |
|
||||
|
||||
---
|
||||
|
||||
## Composition Keywords
|
||||
|
||||
| Term | Effect | Best For |
|
||||
|------|--------|----------|
|
||||
| **Rule of thirds** | Subject off-center | Editorial, lifestyle |
|
||||
| **Centered** | Subject in middle | Product shots, icons |
|
||||
| **Wide/panoramic** | Expansive view | Banners, headers |
|
||||
| **Close-up/macro** | Detail focus | Texture, product detail |
|
||||
| **Bird's eye/overhead** | Top-down view | Desk setups, flat lays |
|
||||
| **Negative space** | Room for text overlay | Blog headers, banners |
|
||||
| **Symmetrical** | Balanced, formal | Corporate, luxury |
|
||||
|
||||
---
|
||||
|
||||
## Model-Specific Tips
|
||||
|
||||
### Gemini Image (Google)
|
||||
|
||||
- Best all-around for marketing images — good quality, reasonable cost
|
||||
- Supports **image editing** — upload an existing image and describe changes
|
||||
- Decent text rendering — can handle short headlines
|
||||
- Specify "high resolution" for best output
|
||||
- Works well with detailed, descriptive prompts
|
||||
- Same API as text generation — easy to integrate
|
||||
|
||||
### Flux (Black Forest Labs)
|
||||
|
||||
- **Multi-image reference** is the killer feature — upload product screenshots, brand assets, or style references
|
||||
- Best for **brand consistency** across a set of images
|
||||
- Use Flux Pro for final assets, Flux Dev for rapid iteration
|
||||
- Flux Klein for high-volume batch generation (cheapest)
|
||||
- Style transfer via reference images > style keywords in prompt
|
||||
- Prompts can be shorter than other models — the references do heavy lifting
|
||||
|
||||
### Ideogram
|
||||
|
||||
- **Best text rendering** of any model (industry-leading accuracy)
|
||||
- Use when you need headlines, taglines, or brand names in the image
|
||||
- Style reference system (up to 3 images) for brand consistency
|
||||
- Supports "Magic Prompt" auto-enhancement
|
||||
- Keep text requests simple — 3-5 words max for reliability
|
||||
- Best for social graphics and banners that need text baked in
|
||||
|
||||
### GPT Image (OpenAI)
|
||||
|
||||
- Current models: `gpt-image-1` and variants (DALL-E 3 is deprecated)
|
||||
- Integrated with ChatGPT — conversational image generation
|
||||
- Good at following detailed prompts
|
||||
- Decent text rendering (behind Ideogram, comparable to Gemini)
|
||||
- Automatic prompt rewriting — may deviate from exact request
|
||||
- Best for quick one-offs through ChatGPT interface
|
||||
- API gives more control than ChatGPT interface
|
||||
|
||||
### Midjourney
|
||||
|
||||
- Highest aesthetic quality for artistic/editorial images
|
||||
- No official API — Discord-based or web interface
|
||||
- **Not agent-friendly** — use for manual creative exploration only
|
||||
- Style flags: `--style raw` for less stylized, `--ar 16:9` for aspect ratio
|
||||
- Best for hero images where pure visual quality matters most
|
||||
- V6+ has improved text rendering but still unreliable
|
||||
|
||||
---
|
||||
|
||||
## Common Prompt Mistakes
|
||||
|
||||
| Mistake | Why It Fails | Fix |
|
||||
|---------|-------------|-----|
|
||||
| "A professional image" | No visual detail | Describe subject, setting, style, lighting |
|
||||
| Long paragraph of text in image | Models can't render paragraphs | 3-5 words max; add text in post |
|
||||
| "Make it look good" | Not actionable | Specify style: "commercial photography, bright" |
|
||||
| 200+ word prompts | Models lose focus | 40-80 words, specific over comprehensive |
|
||||
| No aspect ratio | Random output size | Always specify dimensions or ratio |
|
||||
| "Logo in bottom right" | Unreliable placement | Add logos in post-processing |
|
||||
| "Make it viral" | Not a visual instruction | Describe the aesthetic you want |
|
||||
| Requesting UI screenshots | AI hallucinates interfaces | Capture real screenshots instead |
|
||||
|
||||
---
|
||||
|
||||
## Batch Generation Workflow
|
||||
|
||||
When you need multiple images with consistent style (e.g., a blog series or social campaign):
|
||||
|
||||
1. **Generate 3-4 test images** with different style prompts
|
||||
2. **Pick the winning style** based on brand fit
|
||||
3. **Save the exact prompt** as your template
|
||||
4. **Use Flux multi-reference** — upload the winning image as a style reference
|
||||
5. **Batch generate** variations with the same style, different subjects
|
||||
6. **Post-process** — add text overlays, logos, crop to platform sizes
|
||||
|
||||
---
|
||||
|
||||
## Aspect Ratios Quick Reference
|
||||
|
||||
| Use Case | Ratio | Pixels | Notes |
|
||||
|----------|-------|--------|-------|
|
||||
| Blog hero / OG image | 1.91:1 | 1200x630 | Universal web standard |
|
||||
| Full-width hero | 16:9 | 1920x1080 | Website headers |
|
||||
| Instagram Feed | 1:1 | 1080x1080 | Square |
|
||||
| Instagram Feed (tall) | 4:5 | 1080x1350 | More screen real estate |
|
||||
| Stories / Reels | 9:16 | 1080x1920 | Vertical full screen |
|
||||
| LinkedIn cover | 4:1 | 1584x396 | Personal profile |
|
||||
| Twitter/X header | 3:1 | 1500x500 | Profile banner |
|
||||
| Product Hunt gallery | 5:3 | 1270x760 | Launch page |
|
||||
| GitHub social preview | 2:1 | 1280x640 | Repo link card |
|
||||
|
||||
---
|
||||
|
||||
## Cost Optimization
|
||||
|
||||
- **Iterate at low quality first** — use Flux Dev or Gemini Flash for drafts, upgrade for finals
|
||||
- **Use references over long prompts** — Flux multi-reference produces more consistent results with fewer retries
|
||||
- **Batch similar requests** — generate all blog headers in one session with the same style
|
||||
- **Cache and reuse** — abstract backgrounds, patterns, and textures can be reused across multiple images
|
||||
- **Post-process instead of re-generate** — crop, overlay text, and adjust color in code rather than generating new images
|
||||
@@ -2,7 +2,7 @@
|
||||
name: paid-ads
|
||||
description: "When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms. Also use when the user mentions 'PPC,' 'paid media,' 'ROAS,' 'CPA,' 'ad campaign,' 'retargeting,' 'audience targeting,' 'Google Ads,' 'Facebook ads,' 'LinkedIn ads,' 'ad budget,' 'cost per click,' 'ad spend,' or 'should I run ads.' Use this for campaign strategy, audience targeting, bidding, and optimization. For bulk ad creative generation and iteration, see ad-creative. For landing page optimization, see page-cro."
|
||||
metadata:
|
||||
version: 1.1.0
|
||||
version: 1.2.0
|
||||
---
|
||||
|
||||
# Paid Ads
|
||||
@@ -245,6 +245,8 @@ Before launching campaigns, ensure proper tracking and account setup.
|
||||
|
||||
**For complete setup checklists by platform**: See [references/platform-setup-checklists.md](references/platform-setup-checklists.md)
|
||||
|
||||
**For conversion pixel installation and event setup**: See [references/conversion-tracking.md](references/conversion-tracking.md)
|
||||
|
||||
### Universal Pre-Launch Checklist
|
||||
- [ ] Conversion tracking tested with real conversion
|
||||
- [ ] Landing page loads fast (<3 sec)
|
||||
@@ -302,7 +304,7 @@ For implementation, see the [tools registry](../../tools/REGISTRY.md). Key adver
|
||||
| **LinkedIn Ads** | B2B, job title targeting | - | [linkedin-ads.md](../../tools/integrations/linkedin-ads.md) |
|
||||
| **TikTok Ads** | Younger demographics, video | - | [tiktok-ads.md](../../tools/integrations/tiktok-ads.md) |
|
||||
|
||||
For tracking, see also: [ga4.md](../../tools/integrations/ga4.md), [segment.md](../../tools/integrations/segment.md)
|
||||
For tracking setup, see [references/conversion-tracking.md](references/conversion-tracking.md), [ga4.md](../../tools/integrations/ga4.md), [segment.md](../../tools/integrations/segment.md)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,361 @@
|
||||
# Conversion Tracking Setup
|
||||
|
||||
How to set up conversion tracking pixels across ad platforms. This guide covers installation, event configuration, and validation — everything a marketer needs to ensure ad spend is properly attributed.
|
||||
|
||||
---
|
||||
|
||||
## Why This Matters
|
||||
|
||||
Without conversion tracking:
|
||||
- Ad platforms can't optimize for your actual goals
|
||||
- You're flying blind on ROAS and CPA
|
||||
- Retargeting audiences can't be built
|
||||
- You'll waste budget on impressions that don't convert
|
||||
|
||||
Get tracking right before spending a dollar on ads.
|
||||
|
||||
---
|
||||
|
||||
## Platform Pixels Overview
|
||||
|
||||
| Platform | Pixel/Tag Name | Events API | Key Events |
|
||||
|----------|---------------|:----------:|------------|
|
||||
| **Google Ads** | Google tag (gtag.js) | Enhanced Conversions | purchase, sign_up, generate_lead |
|
||||
| **Meta** | Meta Pixel + CAPI | Conversions API | Purchase, Lead, ViewContent, AddToCart |
|
||||
| **LinkedIn** | Insight Tag | Conversions API | conversion (URL or event-based) |
|
||||
| **TikTok** | TikTok Pixel | Events API | Purchase, ViewContent, AddToCart, CompleteRegistration |
|
||||
| **Twitter/X** | Twitter Pixel | - | Purchase, SignUp, Download |
|
||||
|
||||
---
|
||||
|
||||
## Google Ads
|
||||
|
||||
### Install the Google tag
|
||||
|
||||
Add to every page, in `<head>`:
|
||||
|
||||
```html
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-XXXXXXXXX"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
gtag('config', 'AW-XXXXXXXXX');
|
||||
</script>
|
||||
```
|
||||
|
||||
Replace `AW-XXXXXXXXX` with your Conversion ID from Google Ads > Tools > Conversions.
|
||||
|
||||
### Set up conversion actions
|
||||
|
||||
In Google Ads > Goals > Conversions > New conversion action:
|
||||
|
||||
| Conversion | Category | Value | Count |
|
||||
|-----------|----------|-------|-------|
|
||||
| Purchase | Purchase | Dynamic (order value) | Every |
|
||||
| Sign up / Lead | Sign-up | Fixed ($X estimated value) | One |
|
||||
| Demo request | Lead | Fixed ($X estimated value) | One |
|
||||
| Free trial start | Sign-up | Fixed ($X estimated value) | One |
|
||||
|
||||
### Fire conversion events
|
||||
|
||||
```javascript
|
||||
// Purchase
|
||||
gtag('event', 'conversion', {
|
||||
'send_to': 'AW-XXXXXXXXX/CONVERSION_LABEL',
|
||||
'value': 99.00,
|
||||
'currency': 'USD',
|
||||
'transaction_id': 'ORDER-123'
|
||||
});
|
||||
|
||||
// Lead / Sign up
|
||||
gtag('event', 'conversion', {
|
||||
'send_to': 'AW-XXXXXXXXX/CONVERSION_LABEL',
|
||||
'value': 50.00,
|
||||
'currency': 'USD'
|
||||
});
|
||||
```
|
||||
|
||||
### Enhanced Conversions
|
||||
|
||||
Sends hashed first-party data (email, phone) to improve attribution after cookie restrictions. Enable in Google Ads > Goals > Settings > Enhanced conversions.
|
||||
|
||||
```javascript
|
||||
gtag('set', 'user_data', {
|
||||
'email': 'user@example.com', // auto-hashed by gtag
|
||||
'phone_number': '+11234567890'
|
||||
});
|
||||
```
|
||||
|
||||
### Google Tag Manager alternative
|
||||
|
||||
If using GTM instead of inline gtag.js:
|
||||
1. Install GTM container on all pages
|
||||
2. Create Google Ads conversion tags in GTM
|
||||
3. Set triggers for conversion events (form submissions, purchases)
|
||||
4. Use the Data Layer to pass dynamic values (order amount, transaction ID)
|
||||
5. Test with GTM Preview mode before publishing
|
||||
|
||||
---
|
||||
|
||||
## Meta (Facebook/Instagram)
|
||||
|
||||
### Install the Meta Pixel
|
||||
|
||||
Add to every page, in `<head>`:
|
||||
|
||||
```html
|
||||
<script>
|
||||
!function(f,b,e,v,n,t,s)
|
||||
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
|
||||
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
|
||||
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
|
||||
n.queue=[];t=b.createElement(e);t.async=!0;
|
||||
t.src=v;s=b.getElementsByTagName(e)[0];
|
||||
s.parentNode.insertBefore(t,s)}(window, document,'script',
|
||||
'https://connect.facebook.net/en_US/fbevents.js');
|
||||
fbq('init', 'YOUR_PIXEL_ID');
|
||||
fbq('track', 'PageView');
|
||||
</script>
|
||||
```
|
||||
|
||||
Replace `YOUR_PIXEL_ID` from Meta Events Manager.
|
||||
|
||||
### Standard events
|
||||
|
||||
```javascript
|
||||
// View a product or key page
|
||||
fbq('track', 'ViewContent', {
|
||||
content_name: 'Pro Plan',
|
||||
content_category: 'Pricing',
|
||||
value: 29.00,
|
||||
currency: 'USD'
|
||||
});
|
||||
|
||||
// Lead capture (form submit, demo request)
|
||||
fbq('track', 'Lead', {
|
||||
content_name: 'Demo Request',
|
||||
value: 50.00,
|
||||
currency: 'USD'
|
||||
});
|
||||
|
||||
// Purchase
|
||||
fbq('track', 'Purchase', {
|
||||
value: 99.00,
|
||||
currency: 'USD',
|
||||
content_type: 'product',
|
||||
contents: [{ id: 'pro-plan', quantity: 1 }]
|
||||
});
|
||||
|
||||
// Add to cart (e-commerce)
|
||||
fbq('track', 'AddToCart', {
|
||||
content_ids: ['SKU-123'],
|
||||
content_type: 'product',
|
||||
value: 49.00,
|
||||
currency: 'USD'
|
||||
});
|
||||
```
|
||||
|
||||
### Conversions API (CAPI)
|
||||
|
||||
Server-side tracking that works alongside the pixel. Required for accurate tracking after iOS 14+ and cookie restrictions.
|
||||
|
||||
Set up via:
|
||||
- **Direct integration** — send events from your server to Meta's API
|
||||
- **Partner integrations** — Shopify, WooCommerce, Segment, etc. have built-in CAPI support
|
||||
- **Conversions API Gateway** — Meta's managed solution via AWS
|
||||
|
||||
Key: send the same events from both pixel (browser) AND CAPI (server), with a shared `event_id` for deduplication.
|
||||
|
||||
### Aggregated Event Measurement
|
||||
|
||||
Required for iOS 14+ tracking. In Events Manager > Aggregated Event Measurement:
|
||||
1. Verify your domain
|
||||
2. Configure and prioritize your top 8 events in order of business importance
|
||||
3. Purchase should typically be #1, Lead #2
|
||||
|
||||
---
|
||||
|
||||
## LinkedIn
|
||||
|
||||
### Install the Insight Tag
|
||||
|
||||
Add to every page, before `</body>`:
|
||||
|
||||
```html
|
||||
<script type="text/javascript">
|
||||
_linkedin_partner_id = "YOUR_PARTNER_ID";
|
||||
window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || [];
|
||||
window._linkedin_data_partner_ids.push(_linkedin_partner_id);
|
||||
(function(l) {
|
||||
if (!l){window.lintrk = function(a,b){window.lintrk.q.push([a,b])};
|
||||
window.lintrk.q=[]}
|
||||
var s = document.getElementsByTagName("script")[0];
|
||||
var b = document.createElement("script");
|
||||
b.type = "text/javascript";b.async = true;
|
||||
b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js";
|
||||
s.parentNode.insertBefore(b, s);})(window.lintrk);
|
||||
</script>
|
||||
```
|
||||
|
||||
### Conversion tracking
|
||||
|
||||
LinkedIn supports two methods:
|
||||
|
||||
**URL-based**: Fires when someone visits a specific URL (e.g., `/thank-you`).
|
||||
Set up in Campaign Manager > Analyze > Conversion Tracking > Create Conversion.
|
||||
|
||||
**Event-based**: Fire manually on specific actions:
|
||||
|
||||
```javascript
|
||||
window.lintrk('track', { conversion_id: YOUR_CONVERSION_ID });
|
||||
```
|
||||
|
||||
### LinkedIn CAPI
|
||||
|
||||
For server-side tracking, LinkedIn offers a Conversions API. Set up via partner integrations (Segment, Tealium) or direct API calls. Deduplicates with the Insight Tag automatically when configured correctly.
|
||||
|
||||
---
|
||||
|
||||
## TikTok
|
||||
|
||||
### Install the TikTok Pixel
|
||||
|
||||
Add to every page, in `<head>`:
|
||||
|
||||
```html
|
||||
<script>
|
||||
!function (w, d, t) {
|
||||
w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];
|
||||
ttq.methods=["page","track","identify","instances","debug","on","off",
|
||||
"once","ready","alias","group","enableCookie","disableCookie","holdConsent",
|
||||
"revokeConsent","grantConsent"],ttq.setAndDefer=function(t,e)
|
||||
{t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};
|
||||
for(var i=0;i<ttq.methods.length;i++)ttq.setAndDefer(ttq,ttq.methods[i]);
|
||||
ttq.instance=function(t){for(var e=ttq._i[t]||[],n=0;
|
||||
n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n]);return e};
|
||||
ttq.load=function(e,n){var r="https://analytics.tiktok.com/i18n/pixel/events.js",
|
||||
o=n&&n.partner;ttq._i=ttq._i||{},ttq._i[e]=[],ttq._i[e]._u=r,
|
||||
ttq._t=ttq._t||{},ttq._t[e]=+new Date,ttq._o=ttq._o||{},
|
||||
ttq._o[e]=n||{};var s=document.createElement("script");
|
||||
s.type="text/javascript",s.async=!0,s.src=r+"?sdkid="+e+"&lib="+t;
|
||||
var a=document.getElementsByTagName("script")[0];
|
||||
a.parentNode.insertBefore(s,a)};
|
||||
ttq.load('YOUR_PIXEL_ID');
|
||||
ttq.page();
|
||||
}(window, document, 'ttq');
|
||||
</script>
|
||||
```
|
||||
|
||||
### Standard events
|
||||
|
||||
```javascript
|
||||
// View content
|
||||
ttq.track('ViewContent', {
|
||||
content_id: 'pro-plan',
|
||||
content_type: 'product',
|
||||
content_name: 'Pro Plan',
|
||||
value: 29.00,
|
||||
currency: 'USD'
|
||||
});
|
||||
|
||||
// Complete registration / sign up
|
||||
ttq.track('CompleteRegistration', {
|
||||
content_name: 'Free Trial'
|
||||
});
|
||||
|
||||
// Purchase
|
||||
ttq.track('Purchase', {
|
||||
content_id: 'pro-plan',
|
||||
content_type: 'product',
|
||||
value: 99.00,
|
||||
currency: 'USD',
|
||||
quantity: 1
|
||||
});
|
||||
|
||||
// Add to cart
|
||||
ttq.track('AddToCart', {
|
||||
content_id: 'SKU-123',
|
||||
content_type: 'product',
|
||||
value: 49.00,
|
||||
currency: 'USD'
|
||||
});
|
||||
```
|
||||
|
||||
### Events API (server-side)
|
||||
|
||||
TikTok's Events API works like Meta's CAPI — send the same events from your server for better attribution. Use `event_id` for deduplication with browser pixel events.
|
||||
|
||||
### Advanced Matching
|
||||
|
||||
Pass hashed user data for better attribution:
|
||||
|
||||
```javascript
|
||||
ttq.identify({
|
||||
email: 'user@example.com', // auto-hashed
|
||||
phone_number: '+11234567890'
|
||||
});
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Validation Checklist
|
||||
|
||||
After installing any pixel, verify before going live:
|
||||
|
||||
### Browser-side checks
|
||||
|
||||
- [ ] Pixel fires on every page (check via browser extension)
|
||||
- [ ] Conversion events fire at the right moment (after confirmed action, not on button click)
|
||||
- [ ] Event parameters contain correct values (currency, amount, content IDs)
|
||||
- [ ] No duplicate events firing on the same action
|
||||
- [ ] Events fire on both desktop and mobile
|
||||
|
||||
### Platform-side checks
|
||||
|
||||
- [ ] Events appear in the platform's event manager/diagnostics
|
||||
- [ ] Test conversions show correct values
|
||||
- [ ] Event match quality is acceptable (Meta: score > 6)
|
||||
- [ ] Server-side events are deduplicating with browser events (not double-counting)
|
||||
|
||||
### Debugging tools
|
||||
|
||||
| Platform | Tool |
|
||||
|----------|------|
|
||||
| Google | Google Tag Assistant, Chrome DevTools Network tab |
|
||||
| Meta | Meta Pixel Helper (Chrome extension), Events Manager Test Events |
|
||||
| LinkedIn | Insight Tag Validator in Campaign Manager |
|
||||
| TikTok | TikTok Pixel Helper (Chrome extension), Events Manager |
|
||||
| All | GTM Preview Mode (if using Google Tag Manager) |
|
||||
|
||||
---
|
||||
|
||||
## Common Mistakes
|
||||
|
||||
- **Firing purchase events on button click instead of confirmed payment** — always fire on the success/thank-you page or after server confirmation
|
||||
- **Missing deduplication between pixel and server events** — without a shared `event_id`, you'll double-count conversions
|
||||
- **Not testing on mobile** — many pixels break on mobile browsers or in-app webviews
|
||||
- **Hardcoded test values** — remove test transaction amounts before going live
|
||||
- **Forgetting to exclude internal traffic** — your team's visits inflate conversion data
|
||||
- **Installing pixels without consent management** — GDPR/CCPA require user consent before firing tracking pixels in applicable regions
|
||||
- **Pixel installed but no conversion actions created** — the pixel collects data, but the ad platform won't optimize without defined conversion actions
|
||||
|
||||
---
|
||||
|
||||
## When to Use Server-Side Tracking
|
||||
|
||||
Browser-only tracking is increasingly unreliable due to:
|
||||
- iOS 14+ App Tracking Transparency
|
||||
- Third-party cookie deprecation
|
||||
- Ad blockers (30%+ of tech audiences)
|
||||
|
||||
**Use server-side (CAPI/Events API) when:**
|
||||
- Running Meta or TikTok ads (strongly recommended)
|
||||
- Your audience is tech-savvy (higher ad blocker usage)
|
||||
- You need accurate purchase/revenue attribution
|
||||
- You're spending >$5K/month on any platform
|
||||
|
||||
**Server-side is optional when:**
|
||||
- Running Google Ads only (Enhanced Conversions covers most gaps)
|
||||
- Low ad spend / testing phase
|
||||
- B2B with LinkedIn only (Insight Tag is still reliable)
|
||||
@@ -2,7 +2,7 @@
|
||||
name: seo-audit
|
||||
description: When the user wants to audit, review, or diagnose SEO issues on their site. Also use when the user mentions "SEO audit," "technical SEO," "why am I not ranking," "SEO issues," "on-page SEO," "meta tags review," "SEO health check," "my traffic dropped," "lost rankings," "not showing up in Google," "site isn't ranking," "Google update hit me," "page speed," "core web vitals," "crawl errors," or "indexing issues." Use this even if the user just says something vague like "my SEO is bad" or "help with SEO" — start with an audit. For building pages at scale to target keywords, see programmatic-seo. For adding structured data, see schema-markup. For AI search optimization, see ai-seo.
|
||||
metadata:
|
||||
version: 1.1.0
|
||||
version: 1.2.0
|
||||
---
|
||||
|
||||
# SEO Audit
|
||||
@@ -155,6 +155,80 @@ Reporting "no schema found" based solely on `web_fetch` or `curl` leads to false
|
||||
|
||||
---
|
||||
|
||||
## International SEO & Localization
|
||||
|
||||
Check when the site serves multiple languages or regions. Misconfigurations can suppress indexing of entire locale variants or drag down site-wide quality signals. See [International SEO reference](references/international-seo.md) for evidence and source URLs.
|
||||
|
||||
### Hreflang
|
||||
|
||||
Three equivalent placement methods: HTML `<link>` in `<head>`, HTTP `Link` headers, XML sitemap `<xhtml:link>`. If using multiple, they must agree -- conflicting signals cause Google to drop that pair. For 10+ locales, prefer sitemap-based (no page weight, no per-request cost).
|
||||
|
||||
**Check for:**
|
||||
- Self-referencing entry on every page (page must include itself in the hreflang set)
|
||||
- Reciprocal links (if A points to B, B must point back to A -- or both are ignored)
|
||||
- Valid codes: ISO 639-1 language + optional ISO 3166-1 Alpha 2 region (e.g., `en`, `en-GB` -- never `en-UK`)
|
||||
- `x-default` present, pointing to fallback page (language selector or default locale)
|
||||
- All target URLs return 200, are indexable, and match their canonical URL
|
||||
- No duplicate language-region codes pointing to different URLs
|
||||
|
||||
**Common errors:** Missing self-referencing entry (all hreflang ignored). No return tag / one-directional (pair dropped). Invalid codes like `en-UK` (use `en-GB`). Hreflang target is non-canonical, 404, or blocked (cluster discarded). HTML and sitemap annotations disagree (conflicting pair dropped).
|
||||
|
||||
**At scale:** `<xhtml:link>` children don't count toward 50K URL sitemap limit, but the 50MB file size limit becomes the bottleneck (plan 2K-5K URLs per file with full hreflang). Focus hreflang on pages receiving wrong-language traffic -- not required on every page. For Bing: supplement with `<html lang>` and `<meta http-equiv="content-language">` (Bing treats hreflang as a weak signal).
|
||||
|
||||
### Canonicalization for Multilingual Sites
|
||||
|
||||
- Each locale page must self-canonical (e.g., `/ar/page` canonicals to `/ar/page`)
|
||||
- Never cross-locale canonical (French to English) -- suppresses the non-canonical locale entirely
|
||||
- Canonical URL must appear in the hreflang set -- if not, all hreflang is ignored
|
||||
- Canonical overrides hreflang when they conflict
|
||||
- Protocol/domain must be consistent across canonical, hreflang, and sitemap (`https` + same domain variant)
|
||||
- Paginated locale pages: self-referencing canonical per page (never canonical page 2+ to page 1)
|
||||
|
||||
**Common mistakes:** all locales canonical to English (kills indexing), canonical URL not in hreflang set (silently ignored), protocol mismatch between canonical and hreflang, CMS setting deep page canonical to homepage.
|
||||
|
||||
### International Sitemaps
|
||||
|
||||
**Check for:**
|
||||
- `xmlns:xhtml` namespace on `<urlset>`, each `<url>` includes `<xhtml:link>` for all locales including itself
|
||||
- `x-default` alternate included; all URLs absolute (full protocol + domain)
|
||||
- Sitemap index in Search Console and robots.txt; split by content type, not by locale
|
||||
|
||||
**Next.js caveat:** `alternates.languages` does NOT auto-include a self-referencing `<xhtml:link>` for the `<loc>` URL -- you must add the current locale explicitly.
|
||||
|
||||
### Locale URL Structure
|
||||
|
||||
**Recommended:** Subdirectories (`/en/`, `/ar/`). **Acceptable:** Subdomains or ccTLDs. **Not recommended:** URL parameters (`?lang=en`).
|
||||
|
||||
**Check for:**
|
||||
- Consistent locale prefix strategy; all locales prefixed (hiding locale from URLs prevents Google from distinguishing versions)
|
||||
- Root URL handled as `x-default` with redirect, or serves default locale content
|
||||
- No IP/Accept-Language content negotiation (Googlebot: US IPs, no Accept-Language header)
|
||||
- Trailing slash + case consistency across locale paths, canonicals, hreflang, and sitemaps
|
||||
- 301 redirects from non-canonical format to canonical
|
||||
|
||||
**Note:** Google's International Targeting report in Search Console is deprecated. Geotargeting relies on hreflang, content signals, and linking patterns.
|
||||
|
||||
### Content Quality Across Locales
|
||||
|
||||
**Translation quality:**
|
||||
- AI-translated content is not inherently spam (Google's 2025 stance), but scaled low-value translations can trigger scaled content abuse policy
|
||||
- Google uses visible content to determine language -- translate ALL page content (title, description, headings, body), not just boilerplate
|
||||
- Translating only template/nav while main content stays in original language creates duplicates
|
||||
|
||||
**Thin locale pages:**
|
||||
- Helpful content system is site-wide -- many thin locale pages can suppress rankings for strong pages too
|
||||
- Don't noindex thin locales (wastes crawl budget) or cross-locale canonical (conflicts with hreflang)
|
||||
- Best approach: don't create locale pages you cannot make genuinely helpful
|
||||
|
||||
**Check for:**
|
||||
- All locale pages have fully translated main content (not just UI chrome)
|
||||
- No near-identical content across locales ("Duplicate, Google chose different canonical" in GSC)
|
||||
- Hreflang only for locales with genuine content and search demand
|
||||
- Localized signals: currency, phone format, addresses where applicable
|
||||
- Broken hreflang links (404s, redirects) waste crawl budget AND invalidate hreflang clusters
|
||||
|
||||
---
|
||||
|
||||
## On-Page SEO Audit
|
||||
|
||||
### Title Tags
|
||||
@@ -164,7 +238,7 @@ Reporting "no schema found" based solely on `web_fetch` or `curl` leads to false
|
||||
- Primary keyword near beginning
|
||||
- 50-60 characters (visible in SERP)
|
||||
- Compelling and click-worthy
|
||||
- No brand name placement (SERPs include brand name above title already)
|
||||
- Brand name placement (end, usually)
|
||||
|
||||
**Common issues:**
|
||||
- Duplicate titles
|
||||
@@ -325,6 +399,16 @@ Reporting "no schema found" based solely on `web_fetch` or `curl` leads to false
|
||||
- Poor internal linking
|
||||
- Missing author pages
|
||||
|
||||
### Multilingual / Multi-Regional Sites
|
||||
- Hreflang errors (missing return tags, invalid codes, no self-reference)
|
||||
- Canonical conflicting with hreflang (cross-locale canonical suppresses indexing)
|
||||
- Thin locale pages dragging down site-wide quality signal
|
||||
- Only boilerplate translated, main content identical across locales
|
||||
- No x-default fallback declared
|
||||
- Sitemap missing hreflang alternates or missing reciprocal entries
|
||||
- IP-based redirects hiding content from Googlebot
|
||||
- Framework locale mode hiding locale from URLs
|
||||
|
||||
### Local Business
|
||||
- Inconsistent NAP
|
||||
- Missing local schema
|
||||
@@ -368,6 +452,7 @@ Same format as above
|
||||
## References
|
||||
|
||||
- [AI Writing Detection](references/ai-writing-detection.md): Common AI writing patterns to avoid (em dashes, overused phrases, filler words)
|
||||
- [International SEO](references/international-seo.md): Evidence and sources for hreflang, canonical + i18n, sitemaps, URL structure, and content quality across locales
|
||||
- For AI search optimization (AEO, GEO, LLMO, AI Overviews), see the **ai-seo** skill
|
||||
|
||||
---
|
||||
|
||||
@@ -0,0 +1,230 @@
|
||||
# International SEO: Evidence & Sources
|
||||
|
||||
Detailed evidence backing the International SEO & Localization section of the SEO Audit skill. Organized by topic with source URLs and key quotes.
|
||||
|
||||
---
|
||||
|
||||
## Hreflang
|
||||
|
||||
### Placement Methods
|
||||
|
||||
Google supports three equivalent methods: HTML `<link>` in `<head>`, HTTP `Link` headers, and XML sitemap `<xhtml:link>` elements. Google confirmed no method is prioritized over another.
|
||||
|
||||
Google combines signals from both HTML and sitemaps. If the same language-region pair points to different URLs across methods, Google drops that pair rather than guessing.
|
||||
|
||||
- [Google Search Central: Localized Versions](https://developers.google.com/search/docs/specialty/international/localized-versions)
|
||||
- [SEJ: Google Combines Hreflang Signals](https://www.searchenginejournal.com/google-combines-hreflang-signals-from-html-sitemaps/389219/)
|
||||
|
||||
### Reciprocal Requirement
|
||||
|
||||
Google's docs: "If page X links to page Y, page Y must link back to page X. If not, those annotations may be ignored or not interpreted correctly."
|
||||
|
||||
Every page must include itself (self-referencing) in the hreflang set. Missing self-referencing is the #1 error found by Semrush audits. A study of 374,756 domains found 67% of hreflang implementations had issues.
|
||||
|
||||
- [Google Search Central: Localized Versions](https://developers.google.com/search/docs/specialty/international/localized-versions)
|
||||
- [Semrush: 9 Common Hreflang Errors](https://www.semrush.com/blog/hreflang-errors/)
|
||||
- [SE Land: 31% of International Websites Contain Hreflang Errors](https://searchengineland.com/study-31-of-international-websites-contain-hreflang-errors-395161)
|
||||
|
||||
### x-default
|
||||
|
||||
Introduced April 2013. Designates the fallback page for users whose language/region matches no declared variant. Can point to the same URL as one of the language-specific alternates. Must be included in the complete set of annotations on every variant page.
|
||||
|
||||
- [Google Blog: x-default hreflang](https://developers.google.com/search/blog/2013/04/x-default-hreflang-for-international-pages)
|
||||
- [Google Blog: How x-default can help you (2023)](https://developers.google.com/search/blog/2023/05/x-default)
|
||||
|
||||
### Language & Region Codes
|
||||
|
||||
Language: ISO 639-1 (2-letter). Region: ISO 3166-1 Alpha 2 (2-letter). Format: `language[-script][-region]`.
|
||||
|
||||
You cannot specify a region code alone. Common mistakes: `en-UK` (should be `en-GB`), `es-419` (not ISO 3166-1). A study found 8.9% of sites using hreflang contain invalid language codes.
|
||||
|
||||
- [Google Search Central: Localized Versions](https://developers.google.com/search/docs/specialty/international/localized-versions)
|
||||
- [SE Land: 31% Study](https://searchengineland.com/study-31-of-international-websites-contain-hreflang-errors-395161)
|
||||
|
||||
### Hreflang at Scale (20+ locales)
|
||||
|
||||
With 20 locales, HTML `<head>` hreflang adds ~1.5KB per page for zero user benefit. Sitemap-based hreflang has zero runtime performance impact. `<xhtml:link>` child elements do NOT count toward the 50,000 URL sitemap limit (only `<loc>` elements count).
|
||||
|
||||
John Mueller recommends focusing hreflang on pages receiving wrong-language traffic, not every page: "I wouldn't do it for any of the other pages of the site because it's so complex & hard to manage."
|
||||
|
||||
- [SERoundtable: Child Elements Don't Count](https://www.seroundtable.com/google-child-elements-dont-count-towards-sitemap-url-limit-34377.html)
|
||||
- [SERoundtable: Where To Focus Hreflang](https://www.seroundtable.com/using-hreflang-34127.html)
|
||||
- [Yoast: hreflang Ultimate Guide](https://yoast.com/hreflang-ultimate-guide/)
|
||||
|
||||
### Google vs Bing
|
||||
|
||||
Bing treats hreflang as a "weak signal." Bing relies on `content-language` meta tag, HTML `lang` attribute, ccTLDs, and server location. Yandex supports hreflang like Google.
|
||||
|
||||
For both engines: implement hreflang (Google/Yandex) + `<html lang="...">` + `<meta http-equiv="content-language">` (Bing).
|
||||
|
||||
- [Digital Ready Marketing: Bing Doesn't Use Hreflang](https://digitalreadymarketing.com/bing-doesnt-use-hreflang-annotation-what-does-it-use/)
|
||||
- [Yoast: hreflang Ultimate Guide](https://yoast.com/hreflang-ultimate-guide/)
|
||||
|
||||
---
|
||||
|
||||
## Canonicalization & i18n
|
||||
|
||||
### Self-Referencing Canonicals
|
||||
|
||||
Each locale page must canonical to itself. John Mueller: "Don't use a rel=canonical across languages/countries, only use it on a per-country/language basis."
|
||||
|
||||
Google's docs: "Specify a canonical page in the same language, or the best possible substitute language if a canonical doesn't exist for the same language."
|
||||
|
||||
- [John Mueller: hreflang canonical](https://johnmu.com/hreflang-canonical/)
|
||||
- [Google: Consolidate Duplicate URLs](https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls)
|
||||
|
||||
### Canonical Overrides Hreflang
|
||||
|
||||
Mueller: "If your canonical is pointing somewhere else, Google will follow that and ignore your hreflang annotation." The canonical URL must be one of the URLs in the hreflang set, or all hreflang markup is ignored.
|
||||
|
||||
Google also states: "Google prefers URLs that are part of hreflang clusters for canonicalization" -- when signals align, hreflang strengthens canonical selection.
|
||||
|
||||
- [John Mueller: hreflang canonical](https://johnmu.com/hreflang-canonical/)
|
||||
- [SEJ: Hreflang Tags Are Hints](https://www.searchenginejournal.com/google-reminds-that-hreflang-tags-are-hints-not-directives/546428/)
|
||||
- [Google: Consolidate Duplicate URLs](https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls)
|
||||
|
||||
### Near-Duplicate Regional Variants
|
||||
|
||||
Mueller (2023 Office Hours): "If the content is completely the same, and we can't tell any difference, then for simplicity and user experience we may just show one version -- even if hreflang is present."
|
||||
|
||||
Google's duplicate detection runs BEFORE hreflang evaluation. To keep both versions indexed, you need substantive content differences beyond currency symbols.
|
||||
|
||||
- [International Web Mastery: Same-Language Duplicate Pages](https://internationalwebmastery.com/blog/how-google-handles-canonicalization-of-same-language-duplicate-near-duplicate-pages/)
|
||||
- [Google: Managing Multi-Regional Sites](https://developers.google.com/search/docs/specialty/international/managing-multi-regional-sites)
|
||||
|
||||
### Pagination Across Locales
|
||||
|
||||
Google: "Don't use the first page of a paginated sequence as the canonical page. Instead, give each page its own canonical URL." Each paginated page in each locale gets self-referencing canonical. `rel="next/prev"` deprecated March 2019.
|
||||
|
||||
- [Google: Pagination Best Practices](https://developers.google.com/search/docs/specialty/ecommerce/pagination-and-incremental-page-loading)
|
||||
|
||||
---
|
||||
|
||||
## International Sitemaps
|
||||
|
||||
### Structure
|
||||
|
||||
Each `<url>` entry includes `<xhtml:link>` alternates for every locale. Requires `xmlns:xhtml="http://www.w3.org/1999/xhtml"` namespace.
|
||||
|
||||
Split sitemaps by content type, not by locale. Splitting by locale creates maintenance problems because every locale sitemap must reference every other locale (reciprocal requirement).
|
||||
|
||||
- [Google Search Central: Localized Versions](https://developers.google.com/search/docs/specialty/international/localized-versions)
|
||||
- [Lumar: How Google Handles Hreflang](https://www.lumar.io/office-hours/hreflang/)
|
||||
|
||||
### Size Limits
|
||||
|
||||
50,000 URLs / 50MB uncompressed per sitemap. Only `<loc>` elements count toward the 50K limit. But with 20 hreflang alternates per entry, the 50MB file size limit becomes the bottleneck. Plan for 2,000-5,000 URLs per sitemap when using full hreflang.
|
||||
|
||||
- [Google: Build and Submit a Sitemap](https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap)
|
||||
- [SERoundtable: Sitemap 50,000 Limit](https://www.seroundtable.com/google-sitemap-50-000-limit-based-on-location-urls-not-alternative-urls-33843.html)
|
||||
|
||||
### Submission
|
||||
|
||||
Submit the sitemap index in Search Console AND reference it in robots.txt. Individual child sitemaps can be submitted separately for per-sitemap reporting.
|
||||
|
||||
- [Google: Build and Submit a Sitemap](https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap)
|
||||
|
||||
### Next.js Caveat
|
||||
|
||||
Next.js `alternates.languages` does NOT automatically include a self-referencing `<xhtml:link>` for the `<loc>` URL. You must explicitly include the `<loc>` URL's own language in the `languages` object.
|
||||
|
||||
- [Next.js Docs: sitemap.xml](https://nextjs.org/docs/app/api-reference/file-conventions/metadata/sitemap)
|
||||
|
||||
---
|
||||
|
||||
## URL Structure
|
||||
|
||||
### Strategies Compared
|
||||
|
||||
Google treats subdirectories and subdomains equivalently. Mueller: "From our point of view...they say subdomains and subdirectories are essentially equivalent."
|
||||
|
||||
URL parameters (`?lang=en`) are explicitly "Not recommended" per Google docs.
|
||||
|
||||
- [Google: Managing Multi-Regional Sites](https://developers.google.com/search/docs/specialty/international/managing-multi-regional-sites)
|
||||
|
||||
### Default Language
|
||||
|
||||
Mueller recommends: set `/` as x-default, put each language in its own prefix. Without marking `/` as x-default, "to Google it can look like '/' is a separate page from the others."
|
||||
|
||||
- [Google Blog: x-default](https://developers.google.com/search/blog/2023/05/x-default)
|
||||
- [Google Blog: Creating the Right Homepage](https://developers.google.com/search/blog/2014/05/creating-right-homepage-for-your)
|
||||
|
||||
### Content Negotiation / IP Redirects
|
||||
|
||||
Google strongly advises against locale-adaptive pages. Googlebot crawls from US IPs and does not send Accept-Language headers. Separate URLs + hreflang are required.
|
||||
|
||||
- [Google: Locale-Adaptive Pages](https://developers.google.com/search/docs/specialty/international/locale-adaptive-pages)
|
||||
|
||||
### Trailing Slash Consistency
|
||||
|
||||
Mueller: trailing slash is "a significant part of the URL and will change the URL if it's there or not." Pick one format for all locale paths, internal links, canonicals, hreflang, and sitemaps.
|
||||
|
||||
Mueller (2025): "Consistency is the biggest technical SEO factor."
|
||||
|
||||
- [SERoundtable: Consistency Is The Biggest Technical SEO Factor](https://www.seroundtable.com/google-consistency-seo-40427.html)
|
||||
|
||||
### Search Console Geotargeting
|
||||
|
||||
The International Targeting report is deprecated. Google now relies entirely on hreflang, content language analysis, and linking patterns. You can add subdirectory properties for per-locale reporting.
|
||||
|
||||
- [Google Support: International Targeting Deprecated](https://support.google.com/webmasters/answer/12474899?hl=en)
|
||||
|
||||
### Framework Locale Modes
|
||||
|
||||
Use `localePrefix: 'always'` (next-intl) or equivalent. Never hide locale from URLs -- Google needs unique URLs per language. Using `'never'` mode disables alternate links entirely.
|
||||
|
||||
- [next-intl: Routing Configuration](https://next-intl.dev/docs/routing/configuration)
|
||||
- [Next.js Discussion #18419](https://github.com/vercel/next.js/discussions/18419)
|
||||
|
||||
---
|
||||
|
||||
## Content Quality Across Locales
|
||||
|
||||
### Auto-Translated Content (2025 Stance)
|
||||
|
||||
Google removed longstanding guidance advising against auto-translated content in mid-2025. Current stance: "Our policies do not strictly define content that has been translated by AI as spam." The scaled content abuse policy mentions translation as a possible vector, but does not ban it.
|
||||
|
||||
Reddit scaled AI translations to 35+ languages with Google's knowledge. The key distinction is intent and quality, not the method.
|
||||
|
||||
- [Google Spam Policies](https://developers.google.com/search/docs/essentials/spam-policies)
|
||||
- [Glenn Gabe: Auto-Translating Content](https://www.gsqi.com/marketing-blog/auto-translating-content-google-scaled-content-abuse/)
|
||||
- [SE Land: Reddit AI Translations](https://searchengineland.com/google-comments-on-reddits-use-of-ai-to-translate-its-pages-456908)
|
||||
|
||||
### Thin Locale Pages
|
||||
|
||||
Google: "Localized versions of a page are only considered duplicates if the main content of the page remains untranslated." Pages with only translated boilerplate get clustered as duplicates.
|
||||
|
||||
Do NOT use noindex for unwanted locale pages (wastes crawl budget). Do NOT canonical cross-locale (conflicts with hreflang). Best approach: don't create locale pages you can't make genuinely helpful.
|
||||
|
||||
- [Google: Localized Versions](https://developers.google.com/search/docs/specialty/international/localized-versions)
|
||||
- [Google: Crawl Budget Management](https://developers.google.com/search/docs/crawling-indexing/large-site-managing-crawl-budget)
|
||||
|
||||
### Helpful Content System Impact
|
||||
|
||||
Merged into core ranking March 2024. Site-wide signal: "any content -- not just unhelpful content -- on sites determined to have relatively high amounts of unhelpful content overall is less likely to perform well in Search."
|
||||
|
||||
Low-quality translated pages can drag down the entire site. This is the strongest argument against creating locale pages that aren't genuinely helpful.
|
||||
|
||||
- [Google Blog: Helpful Content Update](https://developers.google.com/search/blog/2022/08/helpful-content-update)
|
||||
- [Amsive: What Changed in 2024](https://www.amsive.com/insights/seo/googles-helpful-content-update-ranking-system-what-happened-and-what-changed-in-2024/)
|
||||
|
||||
### Partial Translation
|
||||
|
||||
Google: "Translating only the boilerplate text of your pages while keeping the bulk of your content in a single language...can create a bad user experience." Google uses visible content (not lang attribute) to determine page language.
|
||||
|
||||
Translate ALL content on a page if you create a locale version. Untranslated metadata (title, description) in the wrong language reduces CTR.
|
||||
|
||||
- [Google: Managing Multi-Regional Sites](https://developers.google.com/search/docs/specialty/international/managing-multi-regional-sites)
|
||||
|
||||
### Crawl Budget
|
||||
|
||||
Only a concern for 1M+ pages or 10K+ pages changing daily. But alternate URLs (hreflang targets) do consume crawl budget. Broken hreflang links waste budget AND invalidate signals.
|
||||
|
||||
- [Google: Crawl Budget Management](https://developers.google.com/search/docs/crawling-indexing/large-site-managing-crawl-budget)
|
||||
- [Google Blog: Crawl Budget](https://developers.google.com/search/blog/2017/01/what-crawl-budget-means-for-googlebot)
|
||||
|
||||
### Locale-Specific Signals
|
||||
|
||||
Google identifies audience via: "local addresses and phone numbers on the pages, the use of local language and currency, links from other local sites, or signals from your Business Profile."
|
||||
|
||||
- [Google: Managing Multi-Regional Sites](https://developers.google.com/search/docs/specialty/international/managing-multi-regional-sites)
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: social-content
|
||||
description: "When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram, TikTok, Facebook, or other platforms. Also use when the user mentions 'LinkedIn post,' 'Twitter thread,' 'social media,' 'content calendar,' 'social scheduling,' 'engagement,' 'viral content,' 'what should I post,' 'repurpose this content,' 'tweet ideas,' 'LinkedIn carousel,' 'social media strategy,' or 'grow my following.' Use this for any social media content creation, repurposing, or scheduling task. For broader content strategy, see content-strategy."
|
||||
description: "When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram, TikTok, Facebook, or other platforms. Also use when the user mentions 'LinkedIn post,' 'Twitter thread,' 'social media,' 'content calendar,' 'social scheduling,' 'engagement,' 'viral content,' 'what should I post,' 'repurpose this content,' 'tweet ideas,' 'LinkedIn carousel,' 'social media strategy,' 'grow my following,' 'TikTok video,' 'Reels,' 'Shorts,' 'video script,' 'video hook,' 'short-form video,' or 'create a reel.' Use this for social media content creation, repurposing, scheduling, and short-form video scripting. For broader content strategy, see content-strategy. For paid video ads, see ad-creative."
|
||||
metadata:
|
||||
version: 1.2.0
|
||||
version: 1.3.0
|
||||
---
|
||||
|
||||
# Social Content
|
||||
@@ -309,6 +309,87 @@ Instead of guessing, analyze what's working for top creators in your niche:
|
||||
|
||||
---
|
||||
|
||||
## Short-Form Video (TikTok, Reels, Shorts)
|
||||
|
||||
Short-form video is the highest-reach format on every major platform. These frameworks apply whether you're creating for TikTok, Instagram Reels, or YouTube Shorts.
|
||||
|
||||
### Platform Specs
|
||||
|
||||
| Platform | Optimal Length | Aspect Ratio | Key Difference |
|
||||
|----------|---------------|--------------|----------------|
|
||||
| TikTok | 15-60 sec | 9:16 | Trending sounds, raw/authentic feel |
|
||||
| Reels | 15-30 sec | 9:16 | Polished content, rewards saves/shares |
|
||||
| Shorts | 30-60 sec | 9:16 | YouTube SEO applies, searchable titles |
|
||||
|
||||
### The 3-Second Rule
|
||||
|
||||
You have 3 seconds to stop the scroll. Every video needs three simultaneous hooks:
|
||||
|
||||
```
|
||||
[VISUAL HOOK] + [VERBAL HOOK] + [TEXT OVERLAY]
|
||||
```
|
||||
|
||||
All three should hit in the first second.
|
||||
|
||||
### Video Structures
|
||||
|
||||
**Problem-Solution (15-30 sec):**
|
||||
```
|
||||
[0-3s] Hook: State the problem
|
||||
[3-10s] Agitate: Why it matters
|
||||
[10-25s] Solution: Your method/product/tip
|
||||
[25-30s] CTA: What to do next
|
||||
```
|
||||
|
||||
**List Format (30-60 sec):**
|
||||
```
|
||||
[0-3s] Hook: "X things that [outcome]"
|
||||
[3-50s] Items: One every 5-8 seconds
|
||||
[50-60s] CTA
|
||||
```
|
||||
|
||||
**Tutorial (30-60 sec):**
|
||||
```
|
||||
[0-3s] Hook: Show the end result first
|
||||
[3-8s] Overview: "Here's how..."
|
||||
[8-50s] Steps: Quick, clear instructions
|
||||
[50-60s] Result + CTA
|
||||
```
|
||||
|
||||
### Caption & Subtitle Best Practices
|
||||
|
||||
Captions increase watch time by 25-40%. Most social video is watched without sound.
|
||||
|
||||
- **MAX 2 lines** on screen at once
|
||||
- **3-5 words per line**
|
||||
- Bold, sans-serif font with black outline
|
||||
- **Highlight key words** in a different color
|
||||
- Match timing to speech exactly
|
||||
|
||||
Tools: CapCut (free), Descript, Captions.ai, Premiere Pro
|
||||
|
||||
### Content Ideas by Type
|
||||
|
||||
| Business Type | Video Ideas |
|
||||
|---------------|-------------|
|
||||
| SaaS | Feature demos (show outcome first), before/after, "Watch me do X in Y seconds" |
|
||||
| E-commerce | Unboxing, comparisons, how it's made, customer reviews |
|
||||
| Services | Process reveals, client transformations, myth-busting |
|
||||
| Personal brand | Lessons learned, controversial takes, day-in-the-life |
|
||||
|
||||
### Common Mistakes
|
||||
|
||||
1. **Slow hooks** — don't build up to the point
|
||||
2. **No text overlay** — many watch without sound
|
||||
3. **Poor audio** — bad audio kills retention instantly
|
||||
4. **Too long** — if it can be shorter, make it shorter
|
||||
5. **No CTA** — tell viewers what to do
|
||||
6. **Ignoring comments** — engagement in first hour matters
|
||||
|
||||
**For video hook formulas and scripting templates**: See [references/short-form-video.md](references/short-form-video.md)
|
||||
|
||||
---
|
||||
|
||||
## Task-Specific Questions
|
||||
|
||||
1. What platform(s) are you focusing on?
|
||||
|
||||
@@ -0,0 +1,237 @@
|
||||
# Short-Form Video: Hooks, Scripts & Strategy
|
||||
|
||||
Detailed reference for creating short-form video content on TikTok, Instagram Reels, and YouTube Shorts.
|
||||
|
||||
---
|
||||
|
||||
## Video Hook Library
|
||||
|
||||
### Curiosity Hooks (Best for engagement)
|
||||
|
||||
**The "Secret" Formula:**
|
||||
- "The secret to [outcome] that nobody talks about"
|
||||
- "I found the hidden feature in [product/platform] that changes everything"
|
||||
- "I can't believe this actually works..."
|
||||
|
||||
**The Unexpected Discovery:**
|
||||
- "I tried [thing] for 30 days and I was NOT expecting this"
|
||||
- "This completely changed how I think about [topic]"
|
||||
- "Nobody talks about this, but..."
|
||||
|
||||
**The Question:**
|
||||
- "Why does nobody talk about this?"
|
||||
- "Am I the only one who didn't know this?"
|
||||
- "The reason [common thing] doesn't work is..."
|
||||
|
||||
### Value Hooks (Best for saves)
|
||||
|
||||
**The Promise:**
|
||||
- "How to [achieve outcome] in [specific timeframe]"
|
||||
- "[Number] [things] that will [benefit]"
|
||||
- "Everything you need to know about [topic] in 60 seconds"
|
||||
|
||||
**The Hack/Shortcut:**
|
||||
- "[Outcome] hack that actually works"
|
||||
- "The [adjective] way to [outcome]"
|
||||
- "If you're struggling with [problem], watch this"
|
||||
|
||||
**The Warning:**
|
||||
- "Stop doing [common practice] — here's why"
|
||||
- "[Number] mistakes that are killing your [results]"
|
||||
- "Why [thing you think is good] is actually hurting you"
|
||||
|
||||
### Story Hooks (Best for watch time)
|
||||
|
||||
**The Transformation:**
|
||||
- "3 months ago, I [bad state]. Today, I [good state]."
|
||||
- "Here's how I went from [before] to [after]"
|
||||
- "I used to think [old belief]. Then [event] changed everything."
|
||||
|
||||
**The Failure:**
|
||||
- "I made a huge mistake with [topic]"
|
||||
- "Here's why I stopped [common practice]"
|
||||
- "I lost [something significant] because of this mistake"
|
||||
|
||||
**The Journey:**
|
||||
- "So this just happened..."
|
||||
- "This changed everything for me"
|
||||
- "Let me tell you about the time I [interesting situation]"
|
||||
|
||||
### Controversial Hooks (Best for comments)
|
||||
|
||||
- "Unpopular opinion: [bold statement]"
|
||||
- "[Common advice] is actually wrong"
|
||||
- "I'm going to get hate for this, but..."
|
||||
- "Most [audience] get this completely wrong"
|
||||
|
||||
---
|
||||
|
||||
## Scripting Template
|
||||
|
||||
```markdown
|
||||
## Video: [Working Title]
|
||||
|
||||
**Platform:** TikTok / Reels / Shorts
|
||||
**Length:** XX seconds
|
||||
**Format:** [Talking head / Slideshow / Demo / Screen recording]
|
||||
|
||||
### Hook (0-3 sec)
|
||||
- Visual: [What viewer sees]
|
||||
- Audio: [What they hear]
|
||||
- Text overlay: [On-screen text]
|
||||
|
||||
### Body (3-X sec)
|
||||
- [Timestamp] - [What happens/what you say]
|
||||
- [Timestamp] - [Next beat]
|
||||
- [Continue...]
|
||||
|
||||
### CTA (final 3-5 sec)
|
||||
- Verbal: [What you say]
|
||||
- Text: [On-screen text]
|
||||
- Action: [Follow, comment, link in bio, etc.]
|
||||
|
||||
### Production Notes
|
||||
- Music/sound: [Trending sound or music choice]
|
||||
- B-roll needed: [List any clips needed]
|
||||
- Graphics: [Any text animations or overlays]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Additional Video Structures
|
||||
|
||||
### The Story Arc (45-60 sec)
|
||||
|
||||
```
|
||||
[0-3s] Hook: Tease the outcome
|
||||
[3-15s] Setup: Context and stakes
|
||||
[15-45s] Journey: What happened
|
||||
[45-55s] Resolution: The result
|
||||
[55-60s] Lesson/CTA
|
||||
```
|
||||
|
||||
Best for: Personal stories, case studies, testimonials
|
||||
|
||||
### The POV/Skit (15-30 sec)
|
||||
|
||||
```
|
||||
[0-3s] Setup: Text overlay sets the scene
|
||||
[3-25s] Performance: Act out the relatable scenario
|
||||
[25-30s] Punchline or twist
|
||||
```
|
||||
|
||||
Best for: Relatable content, humor, niche communities
|
||||
|
||||
---
|
||||
|
||||
## Visual Patterns
|
||||
|
||||
### Talking Head
|
||||
- Good lighting (ring light or window light)
|
||||
- Eye contact with camera
|
||||
- Hand gestures for emphasis
|
||||
- Interesting background (bookshelf, plants, studio setup)
|
||||
|
||||
### Slideshow/Carousel Video
|
||||
- Strong visual on each slide (2-4 seconds per slide)
|
||||
- Text overlays with key points
|
||||
- Consistent style/branding
|
||||
- Voiceover or trending sound
|
||||
|
||||
### Screen Recording
|
||||
- Zoom in on important areas
|
||||
- Add cursor highlight or click animations
|
||||
- Keep movements smooth and intentional
|
||||
- Overlay your face in corner (optional but boosts engagement)
|
||||
|
||||
### B-Roll Heavy
|
||||
- Show don't tell
|
||||
- Quick cuts (1-3 seconds per shot)
|
||||
- Match cuts to voiceover beats
|
||||
- Mix wide, medium, and close-up shots
|
||||
|
||||
---
|
||||
|
||||
## Audio Strategy
|
||||
|
||||
### When to Use Trending Sounds
|
||||
- Entertainment/lifestyle content where the sound fits your message
|
||||
- When the trend is still rising (check platform trending pages)
|
||||
- Don't use when it distracts from your message or is already declining
|
||||
|
||||
### When to Use Original Audio
|
||||
- Educational content where you're speaking
|
||||
- Storytimes and personal narratives
|
||||
- Product demos and tutorials
|
||||
- Building a recognizable brand voice
|
||||
|
||||
### Voiceover Tips
|
||||
- Speak slightly faster than normal conversation
|
||||
- Vary your tone — avoid monotone delivery
|
||||
- Pause for emphasis on key points
|
||||
- Record in a quiet space, use noise removal
|
||||
- AI voices work for faceless content (ElevenLabs, etc.)
|
||||
|
||||
### Music Selection
|
||||
- Match energy to content (upbeat for tips, emotional for stories)
|
||||
- Avoid copyrighted music on Reels/Shorts
|
||||
- Use platform music libraries for safety
|
||||
- Lower music volume under voiceover (ducking)
|
||||
|
||||
---
|
||||
|
||||
## Posting Strategy
|
||||
|
||||
### Optimal Posting Times (test your audience)
|
||||
|
||||
| Platform | Best Times (local) |
|
||||
|----------|-------------------|
|
||||
| TikTok | 7-9 AM, 12-3 PM, 7-11 PM |
|
||||
| Reels | 9 AM, 12 PM, 7-9 PM |
|
||||
| Shorts | 12-3 PM, 7-9 PM |
|
||||
|
||||
### Frequency Recommendations
|
||||
|
||||
| Goal | Minimum | Optimal |
|
||||
|------|---------|---------|
|
||||
| Growing | 1/day | 2-4/day |
|
||||
| Maintaining | 3/week | 1/day |
|
||||
| Testing | 2/week | 5/week |
|
||||
|
||||
### Batch Creation Workflow
|
||||
|
||||
1. **Ideate** (30 min): Generate 10-20 concepts
|
||||
2. **Script** (1 hour): Write scripts for 5-10 videos
|
||||
3. **Batch film** (2 hours): Record all talking head content
|
||||
4. **Edit** (2-3 hours): Edit and add captions
|
||||
5. **Schedule** (30 min): Queue for optimal times
|
||||
|
||||
---
|
||||
|
||||
## Analytics & Iteration
|
||||
|
||||
### Metrics That Matter
|
||||
|
||||
| Metric | What It Tells You |
|
||||
|--------|-------------------|
|
||||
| Watch time % | Is content engaging throughout? |
|
||||
| Completion rate | Did hook + content deliver? |
|
||||
| Saves | Is content valuable enough to revisit? |
|
||||
| Shares | Is content worth spreading? |
|
||||
| Comments | Did content spark conversation? |
|
||||
| Follows | Did viewer want more from you? |
|
||||
|
||||
### What to Test
|
||||
|
||||
1. **Hooks**: Same content, different opening
|
||||
2. **Length**: 15 sec vs 30 sec vs 60 sec
|
||||
3. **Format**: Talking head vs slideshow vs demo
|
||||
4. **Time**: Morning vs afternoon vs evening
|
||||
5. **CTA**: Different calls to action
|
||||
|
||||
### When to Pivot
|
||||
|
||||
- 5+ videos with <1% completion rate → change hooks
|
||||
- High views but low follows → check CTA and content-audience fit
|
||||
- High saves but low shares → content is valuable but not social
|
||||
- Lots of comments but negative → lean into controversy or adjust tone
|
||||
@@ -0,0 +1,332 @@
|
||||
---
|
||||
name: video
|
||||
description: "When the user wants to create, generate, or produce video content using AI tools or programmatic frameworks. Also use when the user mentions 'video production,' 'AI video,' 'Remotion,' 'Hyperframes,' 'HeyGen,' 'Synthesia,' 'Veo,' 'Runway,' 'Kling,' 'Pika,' 'video generation,' 'AI avatar,' 'talking head video,' 'programmatic video,' 'video template,' 'explainer video,' 'product demo video,' 'video pipeline,' or 'make me a video.' Use this for video creation, generation, and production workflows. For video content strategy and what to post, see social-content. For paid video ad creative, see ad-creative."
|
||||
metadata:
|
||||
version: 1.0.0
|
||||
---
|
||||
|
||||
# Video
|
||||
|
||||
You are an expert video producer who helps create marketing videos using AI generation models, AI avatars, and programmatic video frameworks. Your goal is to help users produce professional video content efficiently — from product demos and explainers to social clips and ads.
|
||||
|
||||
## Before Starting
|
||||
|
||||
**Check for product marketing context first:**
|
||||
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
|
||||
|
||||
Gather this context (ask if not provided):
|
||||
|
||||
### 1. Video Goal
|
||||
- What type of video? (Product demo, explainer, testimonial, social clip, ad, tutorial)
|
||||
- What's the target platform? (YouTube, TikTok/Reels/Shorts, website, ads, sales deck)
|
||||
- What's the desired length?
|
||||
|
||||
### 2. Production Approach
|
||||
- Do you need a human presenter? (AI avatar vs. voiceover vs. screen recording)
|
||||
- Do you have existing footage or assets? (Screenshots, logos, product UI)
|
||||
- Do you need generated footage? (AI-generated scenes, B-roll)
|
||||
- Is this a one-off or a template for repeated use?
|
||||
|
||||
### 3. Technical Context
|
||||
- What's your tech stack? (Node.js, Python, etc.)
|
||||
- Do you have API keys for any video tools?
|
||||
- Budget constraints? (Some tools charge per minute of video)
|
||||
|
||||
---
|
||||
|
||||
## Choosing Your Approach
|
||||
|
||||
Pick the right tool for the job:
|
||||
|
||||
| Approach | Best For | Tools | When to Use |
|
||||
|----------|----------|-------|-------------|
|
||||
| **Programmatic** | Templated, data-driven, batch video | Remotion, Hyperframes | Product updates, personalized videos, recurring content |
|
||||
| **AI Generation** | Original footage from text/image prompts | Veo, Runway, Kling, Pika | B-roll, hero shots, creative visuals you can't film |
|
||||
| **AI Avatars** | Talking-head presenter without filming | HeyGen, Synthesia | Explainers, tutorials, multilingual content |
|
||||
| **Editing/Repurposing** | Cutting long-form into short clips | Descript, Opus Clip, CapCut | Podcast/webinar → social clips |
|
||||
|
||||
---
|
||||
|
||||
## Programmatic Video
|
||||
|
||||
Build videos with code. Best for repeatable, templated, or data-driven video at scale.
|
||||
|
||||
### Hyperframes (HTML/CSS — recommended for agents)
|
||||
|
||||
Open-source, Apache 2.0, from HeyGen. Uses plain HTML/CSS/JS — no framework DSL to learn. LLM-native: AI models generate better HTML than React components.
|
||||
|
||||
```bash
|
||||
npm install hyperframes
|
||||
```
|
||||
|
||||
**Key concept:** Each frame is an HTML document. Compose frames into a timeline, render to MP4.
|
||||
|
||||
```typescript
|
||||
import { render } from "hyperframes";
|
||||
|
||||
await render({
|
||||
frames: [
|
||||
{ html: "<h1>Welcome to Acme</h1>", duration: 3 },
|
||||
{ html: "<h2>Here's what we built</h2>", duration: 3 },
|
||||
{ html: "<p>Try it free →</p>", duration: 2 },
|
||||
],
|
||||
output: "intro.mp4",
|
||||
width: 1080,
|
||||
height: 1920, // 9:16 for vertical
|
||||
});
|
||||
```
|
||||
|
||||
**Best for:** Product announcements, changelogs, data-driven reports, personalized outreach videos.
|
||||
|
||||
**Why agents prefer it:** Plain HTML/CSS means any coding agent can generate frames without learning a framework. Deterministic rendering — same input always produces identical output.
|
||||
|
||||
### Remotion (React)
|
||||
|
||||
Mature open-source framework. More powerful than Hyperframes but requires React knowledge.
|
||||
|
||||
```bash
|
||||
npx create-video@latest
|
||||
```
|
||||
|
||||
**Key concept:** React components are frames. Props drive content. Render locally or via Remotion Lambda (AWS) for scale.
|
||||
|
||||
```tsx
|
||||
export const ProductDemo: React.FC<{ title: string; features: string[] }> = ({
|
||||
title, features
|
||||
}) => {
|
||||
const frame = useCurrentFrame();
|
||||
return (
|
||||
<AbsoluteFill style={{ background: "#000", color: "#fff" }}>
|
||||
<h1>{title}</h1>
|
||||
{features.map((f, i) => (
|
||||
<Sequence from={i * 30} key={i}>
|
||||
<p>{f}</p>
|
||||
</Sequence>
|
||||
))}
|
||||
</AbsoluteFill>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
**Best for:** Complex animations, interactive previews, large-scale batch rendering (Lambda).
|
||||
|
||||
### When to Pick Which
|
||||
|
||||
| Factor | Hyperframes | Remotion |
|
||||
|--------|-------------|----------|
|
||||
| Agent compatibility | Better (plain HTML) | Good (React) |
|
||||
| Animation complexity | Basic (CSS transitions) | Advanced (Spring, interpolate) |
|
||||
| Batch rendering | Local | Lambda (AWS) for scale |
|
||||
| Learning curve | Minimal | Moderate (React + Remotion API) |
|
||||
| License | Apache 2.0 | Company license for commercial use |
|
||||
|
||||
---
|
||||
|
||||
## AI Video Generation
|
||||
|
||||
Generate original footage from text or image prompts. Use for B-roll, hero visuals, and scenes you can't practically film.
|
||||
|
||||
### Model Comparison
|
||||
|
||||
| Model | Resolution | Max Duration | Best For | Cost |
|
||||
|-------|-----------|-------------|----------|------|
|
||||
| **Veo 3** (Google) | Up to 1080p (4K varies) | Variable | Highest quality, synced audio | API-based |
|
||||
| **Runway Gen-4** | Up to 4K | ~10 sec/gen | Motion control, temporal consistency | $12-76/mo |
|
||||
| **Kling 3.0** | Up to 1080p | Up to 2 min | Volume production, lowest cost | $0.029/sec |
|
||||
| **Pika** | 1080p | Short clips | Fast generation, effects | Per-credit |
|
||||
|
||||
**Sora (OpenAI)** has had limited availability and reliability issues. Check current status before recommending.
|
||||
|
||||
### Prompting for Video Models
|
||||
|
||||
Good video prompts specify: **subject + action + camera + style + mood**
|
||||
|
||||
```
|
||||
A close-up shot of hands typing on a laptop keyboard,
|
||||
shallow depth of field, warm office lighting,
|
||||
camera slowly pulls back to reveal a modern workspace,
|
||||
cinematic color grading, 4K
|
||||
```
|
||||
|
||||
**Common mistakes:**
|
||||
- Too vague ("a person working") — add specifics
|
||||
- Ignoring camera movement — specify dolly, pan, static
|
||||
- Forgetting style — "cinematic," "documentary," "commercial"
|
||||
- Requesting text in video — AI models struggle with readable text
|
||||
|
||||
**For detailed prompting guides**: See [references/ai-video-prompting.md](references/ai-video-prompting.md)
|
||||
|
||||
### When to Use AI Generation vs. Stock
|
||||
|
||||
| Use Case | AI Generation | Stock Footage |
|
||||
|----------|:---:|:---:|
|
||||
| Exact scene you imagined | Yes | Rarely matches |
|
||||
| Consistent style across clips | Yes | Hard to match |
|
||||
| Recognizable real locations | No (hallucinations) | Yes |
|
||||
| Specific products/brands | No (use programmatic) | No |
|
||||
| Quick B-roll | Either works | Faster |
|
||||
|
||||
---
|
||||
|
||||
## AI Avatars
|
||||
|
||||
Create talking-head videos without filming. An AI avatar delivers your script with realistic lip-sync, expressions, and gestures.
|
||||
|
||||
### HeyGen (recommended — has MCP server)
|
||||
|
||||
Best lip-sync and micro-expressions. 230+ avatars, 140+ languages.
|
||||
|
||||
**Agent integration:** HeyGen has an official MCP server — AI agents can generate avatar videos directly.
|
||||
|
||||
| Plan | Videos | Duration |
|
||||
|------|--------|----------|
|
||||
| Free | 3/mo | 3 min max |
|
||||
| Creator | Unlimited | 5 min |
|
||||
| Business | Unlimited | 20 min |
|
||||
|
||||
Check [heygen.com/pricing](https://www.heygen.com/pricing) for current prices.
|
||||
|
||||
**Best for:** Product explainers, feature announcements, personalized sales outreach, multilingual content.
|
||||
|
||||
**Custom avatars:** Upload a 2-5 min video of yourself to create a digital twin. Looks and sounds like you, generates videos from text scripts.
|
||||
|
||||
### Synthesia
|
||||
|
||||
Full-body avatars with expressive body language. Built-in script generation from URLs/docs.
|
||||
|
||||
**Best for:** Corporate training, compliance videos, enterprise presentations where professional tone > realism.
|
||||
|
||||
### When to Use Avatars vs. Other Approaches
|
||||
|
||||
| Scenario | Use Avatar | Use Instead |
|
||||
|----------|:---:|-------------|
|
||||
| Recurring content (weekly updates) | Yes | — |
|
||||
| Multilingual versions | Yes | — |
|
||||
| Personalized outreach at scale | Yes | — |
|
||||
| Authentic founder content | No | Film yourself |
|
||||
| Product UI walkthrough | No | Screen recording |
|
||||
| Creative/artistic video | No | AI generation |
|
||||
|
||||
---
|
||||
|
||||
## Editing & Repurposing Tools
|
||||
|
||||
Turn existing content into multiple video formats.
|
||||
|
||||
| Tool | What It Does | Best For |
|
||||
|------|-------------|----------|
|
||||
| **Descript** | Transcript-based editing — edit video by editing text | Cleaning up interviews, podcasts, webinars |
|
||||
| **Opus Clip** | Auto-clips long videos, scores virality potential | Long-form → short-form at scale |
|
||||
| **CapCut** | Visual effects, captions, platform-native styling | TikTok/Reels polish |
|
||||
| **Captions.ai** | Auto-captions, eye contact correction, AI dubbing | Solo talking-head content |
|
||||
|
||||
### Repurposing Workflow
|
||||
|
||||
```
|
||||
Long-form content (podcast, webinar, demo)
|
||||
↓
|
||||
Descript: Clean up, remove filler, polish
|
||||
↓
|
||||
Opus Clip: Auto-extract 5-10 best moments
|
||||
↓
|
||||
CapCut: Add captions, effects, platform styling
|
||||
↓
|
||||
Distribute: TikTok, Reels, Shorts, LinkedIn
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Video Production Workflows
|
||||
|
||||
### Product Demo Video
|
||||
|
||||
1. **Script** the key features and value props (use copywriting skill)
|
||||
2. **Screen record** the product flow
|
||||
3. **Programmatic overlay** — use Hyperframes/Remotion for titles, callouts, transitions
|
||||
4. **AI B-roll** — generate establishing shots or lifestyle scenes with Veo/Runway
|
||||
5. **Voiceover** — record yourself or use AI avatar for narration
|
||||
6. **Export** at platform-appropriate specs
|
||||
|
||||
### Explainer Video
|
||||
|
||||
1. **Script** the problem → solution → CTA arc
|
||||
2. **Choose presenter** — AI avatar (HeyGen) or voiceover + visuals
|
||||
3. **Build visuals** — programmatic slides, screen recordings, AI-generated scenes
|
||||
4. **Add captions** — always, for accessibility and engagement
|
||||
5. **Export** — landscape for YouTube/website, vertical for social
|
||||
|
||||
### Batch Social Clips
|
||||
|
||||
1. **Create master template** in Hyperframes/Remotion
|
||||
2. **Feed data** — product features, testimonials, stats
|
||||
3. **Render batch** — one template, many variations
|
||||
4. **Add platform-specific captions** via CapCut or Captions.ai
|
||||
5. **Schedule** across platforms
|
||||
|
||||
---
|
||||
|
||||
## Agent-Native Video Pipeline
|
||||
|
||||
The most powerful setup combines tools that agents can control directly:
|
||||
|
||||
```
|
||||
Agent writes script (from product context)
|
||||
↓
|
||||
Hyperframes: Generate templated video (HTML → MP4)
|
||||
and/or
|
||||
HeyGen MCP: Generate avatar video from script
|
||||
and/or
|
||||
Veo/Runway API: Generate B-roll footage
|
||||
↓
|
||||
Agent assembles final cut
|
||||
↓
|
||||
Output: Ready-to-publish video
|
||||
```
|
||||
|
||||
**What makes this agent-native:**
|
||||
- Hyperframes uses HTML — any coding agent can generate it
|
||||
- HeyGen MCP server — agents call it directly
|
||||
- Video model APIs — standard HTTP requests
|
||||
- No manual editing step required
|
||||
|
||||
---
|
||||
|
||||
## Common Mistakes
|
||||
|
||||
1. **Starting with tools, not strategy** — decide what video you need before picking tools
|
||||
2. **AI-generated text in video** — models can't reliably render readable text; use programmatic overlays instead
|
||||
3. **Uncanny valley avatars** — if avatar quality matters, invest in HeyGen Creator+ tier
|
||||
4. **No captions** — 85% of social video is watched without sound
|
||||
5. **Wrong aspect ratio** — 9:16 for social, 16:9 for YouTube/website, 1:1 for feeds
|
||||
6. **Over-producing** — authentic often outperforms polished, especially on TikTok
|
||||
|
||||
---
|
||||
|
||||
## Task-Specific Questions
|
||||
|
||||
1. What type of video do you need? (Demo, explainer, social clip, ad, tutorial)
|
||||
2. Do you need a human presenter or can it be voiceover/text?
|
||||
3. Is this a one-off or a repeatable template?
|
||||
4. What platform is it for? (This determines aspect ratio and length)
|
||||
5. Do you have existing assets to work with? (Screenshots, footage, scripts)
|
||||
6. What's your budget for video tools?
|
||||
|
||||
---
|
||||
|
||||
## Tool Integrations
|
||||
|
||||
| Tool | Type | MCP | Guide |
|
||||
|------|------|:---:|-------|
|
||||
| **HeyGen** | AI avatars | Yes | [heygen.md](../../tools/integrations/heygen.md) |
|
||||
| **Hyperframes** | Programmatic video | - | [hyperframes.md](../../tools/integrations/hyperframes.md) |
|
||||
| **Remotion** | Programmatic video | - | [remotion.dev](https://www.remotion.dev/docs) |
|
||||
| **Runway** | AI generation | - | [runwayml.com/docs](https://docs.dev.runwayml.com) |
|
||||
|
||||
---
|
||||
|
||||
## Related Skills
|
||||
|
||||
- **social-content**: For video content strategy, hooks, and what to post
|
||||
- **ad-creative**: For paid video ad creative and iteration
|
||||
- **copywriting**: For video scripts and messaging
|
||||
- **marketing-psychology**: For hooks and persuasion in video
|
||||
@@ -0,0 +1,175 @@
|
||||
# AI Video Prompting Guide
|
||||
|
||||
How to write effective prompts for AI video generation models (Veo, Runway, Kling, Pika).
|
||||
|
||||
---
|
||||
|
||||
## Prompt Structure
|
||||
|
||||
A strong video prompt follows this formula:
|
||||
|
||||
```
|
||||
[Subject] + [Action] + [Camera movement] + [Visual style] + [Lighting/mood] + [Technical specs]
|
||||
```
|
||||
|
||||
### Example Prompts by Use Case
|
||||
|
||||
**Product hero shot:**
|
||||
```
|
||||
A sleek laptop on a minimal white desk, screen glowing with a dashboard UI,
|
||||
camera slowly orbits 180 degrees around the desk,
|
||||
soft volumetric lighting from the left, shallow depth of field,
|
||||
cinematic commercial aesthetic, 4K
|
||||
```
|
||||
|
||||
**Lifestyle B-roll:**
|
||||
```
|
||||
A woman in a modern co-working space smiling while looking at her phone,
|
||||
natural window light, candid documentary feel,
|
||||
camera handheld with subtle movement, warm color grading
|
||||
```
|
||||
|
||||
**Abstract/brand:**
|
||||
```
|
||||
Flowing liquid gold particles forming the shape of a network graph,
|
||||
dark background, particles catch light as they move,
|
||||
slow-motion macro photography style, dramatic rim lighting
|
||||
```
|
||||
|
||||
**SaaS explainer scene:**
|
||||
```
|
||||
An overhead shot of a team around a conference table pointing at charts,
|
||||
camera slowly pushes in, bright modern office,
|
||||
clean corporate style, even lighting, 1080p
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Camera Movement Vocabulary
|
||||
|
||||
Use these terms — video models understand them:
|
||||
|
||||
| Term | Effect |
|
||||
|------|--------|
|
||||
| **Static** | Locked camera, no movement |
|
||||
| **Pan left/right** | Camera rotates horizontally |
|
||||
| **Tilt up/down** | Camera rotates vertically |
|
||||
| **Dolly in/out** | Camera moves toward/away from subject |
|
||||
| **Orbit** | Camera circles around subject |
|
||||
| **Tracking shot** | Camera follows moving subject |
|
||||
| **Crane/aerial** | Camera rises or descends |
|
||||
| **Handheld** | Subtle shake, documentary feel |
|
||||
| **Zoom** | Lens zoom (different from dolly) |
|
||||
| **Slow push** | Gradual dolly in — builds tension/focus |
|
||||
|
||||
---
|
||||
|
||||
## Style Keywords
|
||||
|
||||
### Cinematic
|
||||
- "cinematic color grading"
|
||||
- "anamorphic lens flare"
|
||||
- "shallow depth of field"
|
||||
- "film grain"
|
||||
- "35mm film"
|
||||
|
||||
### Commercial/Corporate
|
||||
- "clean commercial lighting"
|
||||
- "bright and airy"
|
||||
- "professional corporate aesthetic"
|
||||
- "even, diffused lighting"
|
||||
|
||||
### Documentary
|
||||
- "handheld documentary style"
|
||||
- "natural lighting"
|
||||
- "candid, unposed"
|
||||
- "observational camera"
|
||||
|
||||
### Social/Trendy
|
||||
- "vertical 9:16"
|
||||
- "fast-paced cuts"
|
||||
- "bold text overlays"
|
||||
- "high contrast, saturated colors"
|
||||
|
||||
---
|
||||
|
||||
## Model-Specific Tips
|
||||
|
||||
### Veo (Google)
|
||||
|
||||
- Excels at photorealism and complex scenes
|
||||
- Supports audio generation synced to video
|
||||
- Best with detailed, descriptive prompts
|
||||
- Specify "high resolution" or "1080p" for best quality
|
||||
- Can handle multiple subjects and scene transitions
|
||||
|
||||
### Runway Gen-4
|
||||
|
||||
- Strong motion control — specify camera movements precisely
|
||||
- Best temporal consistency (subjects stay consistent across frames)
|
||||
- Use motion brush for specific area animation
|
||||
- Image-to-video works well — provide a reference frame
|
||||
- Keep prompts under 100 words for best results
|
||||
|
||||
### Kling
|
||||
|
||||
- Can generate up to 2 minutes (much longer than others)
|
||||
- Good for longer narrative sequences
|
||||
- More affordable for bulk generation
|
||||
- Quality drops slightly at longer durations
|
||||
- Best with simpler scenes and fewer subjects
|
||||
|
||||
### Pika
|
||||
|
||||
- Fastest generation time (under 2 minutes)
|
||||
- Good for quick iterations and experimentation
|
||||
- Effects mode adds motion to still images
|
||||
- Best for short clips (5-15 seconds)
|
||||
- Less control over camera movement
|
||||
|
||||
---
|
||||
|
||||
## Common Prompt Mistakes
|
||||
|
||||
| Mistake | Why It Fails | Fix |
|
||||
|---------|-------------|-----|
|
||||
| "A person using our app" | Too vague, no visual detail | Describe the person, setting, lighting, camera |
|
||||
| Including text/logos | AI can't render readable text | Add text in post via Hyperframes/CapCut |
|
||||
| "Make it viral" | Not a visual instruction | Describe the visual style you want |
|
||||
| Extremely long prompts (200+ words) | Models lose focus | Keep to 50-100 words, be specific |
|
||||
| No camera direction | Random/static camera | Always specify movement or "static" |
|
||||
| "Realistic" alone | Not specific enough | "Photorealistic, natural lighting, shot on RED camera" |
|
||||
|
||||
---
|
||||
|
||||
## Prompting Workflow
|
||||
|
||||
1. **Reference first** — find a real video that looks like what you want
|
||||
2. **Describe it** — break down: subject, action, camera, style, mood
|
||||
3. **Generate 3-4 variations** — same concept, different angles or styles
|
||||
4. **Iterate on the best** — refine the prompt based on results
|
||||
5. **Composite** — combine AI footage with programmatic text/overlays
|
||||
|
||||
---
|
||||
|
||||
## Aspect Ratios
|
||||
|
||||
Always specify in your prompt or generation settings:
|
||||
|
||||
| Platform | Ratio | Resolution |
|
||||
|----------|-------|-----------|
|
||||
| YouTube | 16:9 | 1920x1080 or 3840x2160 |
|
||||
| TikTok/Reels/Shorts | 9:16 | 1080x1920 |
|
||||
| Instagram Feed | 1:1 or 4:5 | 1080x1080 or 1080x1350 |
|
||||
| Website hero | 16:9 | 1920x1080 |
|
||||
| LinkedIn | 16:9 or 1:1 | 1920x1080 |
|
||||
|
||||
---
|
||||
|
||||
## Cost Optimization
|
||||
|
||||
- **Iterate at low resolution** — upscale only the final version
|
||||
- **Use Kling for drafts** — cheapest per second, switch to Veo/Runway for finals
|
||||
- **Image-to-video** — providing a reference frame saves generation credits and gives better results
|
||||
- **Batch similar prompts** — models often offer volume discounts
|
||||
- **Cache and reuse** — B-roll clips can be reused across multiple videos
|
||||
+7
-3
@@ -80,6 +80,8 @@ Quick reference for AI agents to discover tool capabilities and integration meth
|
||||
| airops | AI Content | ✓ | - | [✓](clis/airops.js) | - | [airops.md](integrations/airops.md) |
|
||||
| buffer | Social | ✓ | - | [✓](clis/buffer.js) | - | [buffer.md](integrations/buffer.md) |
|
||||
| wistia | Video | ✓ | - | [✓](clis/wistia.js) | - | [wistia.md](integrations/wistia.md) |
|
||||
| heygen | Video | ✓ | ✓ | - | ✓ | [heygen.md](integrations/heygen.md) |
|
||||
| hyperframes | Video | - | - | ✓ | ✓ | [hyperframes.md](integrations/hyperframes.md) |
|
||||
| trustpilot | Reviews | ✓ | - | [✓](clis/trustpilot.js) | - | [trustpilot.md](integrations/trustpilot.md) |
|
||||
| g2 | Reviews | ✓ | - | [✓](clis/g2.js) | - | [g2.md](integrations/g2.md) |
|
||||
| onesignal | Push | ✓ | - | [✓](clis/onesignal.js) | ✓ | [onesignal.md](integrations/onesignal.md) |
|
||||
@@ -260,13 +262,15 @@ Social media scheduling, management, and analytics.
|
||||
|
||||
### Video
|
||||
|
||||
Video hosting, analytics, and engagement.
|
||||
Video hosting, creation, and AI generation.
|
||||
|
||||
| Tool | Best For | Notes |
|
||||
|------|----------|-------|
|
||||
| **wistia** | Video hosting, marketing analytics | Best for marketing video |
|
||||
| **wistia** | Video hosting, marketing analytics | Best for marketing video hosting |
|
||||
| **heygen** | AI avatars, talking-head videos | MCP server available |
|
||||
| **hyperframes** | Programmatic video from HTML/CSS | Open source, agent-native |
|
||||
|
||||
**Agent recommendation**: Wistia for marketing video hosting with analytics.
|
||||
**Agent recommendation**: HeyGen for AI avatar videos (MCP-enabled). Hyperframes for templated, data-driven video from code. Wistia for hosting and analytics.
|
||||
|
||||
### Data Enrichment
|
||||
|
||||
|
||||
@@ -9,17 +9,18 @@ if (!API_KEY) {
|
||||
}
|
||||
|
||||
async function api(method, path, body) {
|
||||
const separator = path.includes('?') ? '&' : '?'
|
||||
const url = `${BASE_URL}${path}${separator}api_key=${API_KEY}`
|
||||
const url = `${BASE_URL}${path}`
|
||||
const headers = {
|
||||
'Content-Type': 'application/json',
|
||||
'Accept': 'application/json',
|
||||
'x-api-key': API_KEY,
|
||||
}
|
||||
if (args['dry-run']) {
|
||||
return { _dry_run: true, method, url: url.replace(API_KEY, '***'), headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, body: body || undefined }
|
||||
return { _dry_run: true, method, url, headers: { ...headers, 'x-api-key': '***' }, body: body || undefined }
|
||||
}
|
||||
const res = await fetch(url, {
|
||||
method,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'Accept': 'application/json',
|
||||
},
|
||||
headers,
|
||||
body: body ? JSON.stringify(body) : undefined,
|
||||
})
|
||||
const text = await res.text()
|
||||
|
||||
@@ -92,7 +92,14 @@ async function main() {
|
||||
break
|
||||
}
|
||||
const token = await authenticate()
|
||||
result = { jwt: token }
|
||||
if (args['show-token']) {
|
||||
result = { jwt: token }
|
||||
} else {
|
||||
const masked = token.length > 12
|
||||
? token.slice(0, 6) + '…' + token.slice(-6)
|
||||
: '***'
|
||||
result = { jwt: masked, hint: 'Use --show-token to reveal full JWT' }
|
||||
}
|
||||
break
|
||||
}
|
||||
|
||||
@@ -188,7 +195,7 @@ async function main() {
|
||||
result = {
|
||||
error: 'Unknown command',
|
||||
usage: {
|
||||
auth: 'auth — authenticate and get JWT token',
|
||||
auth: 'auth [--show-token] — authenticate and get JWT token (masked by default)',
|
||||
contacts: {
|
||||
search: 'contacts search [--job-title <t>] [--company <c>] [--location <l>] [--seniority <s>] [--department <d>] [--page <n>]',
|
||||
enrich: 'contacts enrich --email <email> | --person-id <id>',
|
||||
|
||||
@@ -0,0 +1,126 @@
|
||||
# HeyGen
|
||||
|
||||
AI avatar video generation platform. Create talking-head videos from text scripts with realistic lip-sync, expressions, and gestures.
|
||||
|
||||
## Capabilities
|
||||
|
||||
| Integration | Available | Notes |
|
||||
|-------------|-----------|-------|
|
||||
| API | Yes | REST API v2 for video generation, avatars, templates |
|
||||
| MCP | Yes | Official hosted MCP server — no local install needed |
|
||||
| CLI | - | - |
|
||||
| SDK | Yes | Node.js SDK available |
|
||||
|
||||
## Authentication
|
||||
|
||||
- **Type**: API Key
|
||||
- **Header**: `X-Api-Key: {api_key}`
|
||||
- **Get key**: Settings > API in HeyGen dashboard
|
||||
|
||||
## MCP Server Setup
|
||||
|
||||
HeyGen provides a hosted remote MCP server. No local installation required.
|
||||
|
||||
### Claude Code / Claude Desktop
|
||||
|
||||
Add to your MCP config:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"heygen": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "mcp-remote", "https://mcp.heygen.com/mcp"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
On first use, authenticates via browser OAuth. The MCP server exposes tools for:
|
||||
- Creating videos from scripts
|
||||
- Listing and selecting avatars
|
||||
- Managing templates
|
||||
- Checking video status
|
||||
|
||||
## API Quick Start
|
||||
|
||||
### Create a Video
|
||||
|
||||
```bash
|
||||
curl -X POST https://api.heygen.com/v2/video/generate \
|
||||
-H "X-Api-Key: YOUR_API_KEY" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"video_inputs": [{
|
||||
"character": {
|
||||
"type": "avatar",
|
||||
"avatar_id": "AVATAR_ID",
|
||||
"avatar_style": "normal"
|
||||
},
|
||||
"voice": {
|
||||
"type": "text",
|
||||
"input_text": "Your script goes here.",
|
||||
"voice_id": "VOICE_ID"
|
||||
}
|
||||
}],
|
||||
"dimension": {
|
||||
"width": 1920,
|
||||
"height": 1080
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
### List Avatars
|
||||
|
||||
```bash
|
||||
curl https://api.heygen.com/v2/avatars \
|
||||
-H "X-Api-Key: YOUR_API_KEY"
|
||||
```
|
||||
|
||||
### Check Video Status
|
||||
|
||||
```bash
|
||||
curl https://api.heygen.com/v1/video_status.get?video_id=VIDEO_ID \
|
||||
-H "X-Api-Key: YOUR_API_KEY"
|
||||
```
|
||||
|
||||
## Common Marketing Use Cases
|
||||
|
||||
| Use Case | Approach |
|
||||
|----------|----------|
|
||||
| Product explainer | Script from features → avatar presents |
|
||||
| Feature announcement | Template with avatar + screen recording |
|
||||
| Multilingual content | Same script, different language/voice |
|
||||
| Personalized outreach | Dynamic variables (name, company) in script |
|
||||
| Weekly updates | Recurring template, swap script text |
|
||||
|
||||
## Custom Avatars
|
||||
|
||||
Upload a 2-5 minute video of yourself speaking to create a digital twin:
|
||||
- Looks and sounds like you
|
||||
- Generates unlimited videos from text scripts
|
||||
- Available on Creator plan and above
|
||||
|
||||
## Pricing
|
||||
|
||||
| Plan | Videos/mo | Max Duration |
|
||||
|------|-----------|-------------|
|
||||
| Free | 3 | 3 min |
|
||||
| Creator | Unlimited | 5 min |
|
||||
| Business | Unlimited | 20 min |
|
||||
| Enterprise | Unlimited | Custom |
|
||||
|
||||
Check [heygen.com/pricing](https://www.heygen.com/pricing) for current prices — they change frequently.
|
||||
|
||||
## Rate Limits
|
||||
|
||||
- Free: 3 videos/month
|
||||
- Paid: Based on plan tier, concurrent generation limits apply
|
||||
- API rate limits: Check response headers for `X-RateLimit-*`
|
||||
|
||||
## Relevant Skills
|
||||
|
||||
- video
|
||||
- social-content
|
||||
- ad-creative
|
||||
- sales-enablement
|
||||
@@ -0,0 +1,180 @@
|
||||
# Hyperframes
|
||||
|
||||
Open-source programmatic video framework from HeyGen. Create videos from HTML/CSS/JS — no React, no proprietary DSL. Designed for AI agent workflows.
|
||||
|
||||
## Capabilities
|
||||
|
||||
| Integration | Available | Notes |
|
||||
|-------------|-----------|-------|
|
||||
| API | - | Library, not a hosted service |
|
||||
| MCP | - | - |
|
||||
| CLI | Yes | `npx hyperframes render` |
|
||||
| SDK | Yes | Node.js/TypeScript package |
|
||||
|
||||
## Why Hyperframes
|
||||
|
||||
- **LLM-native**: AI models generate better HTML than React components — plain web standards, no framework DSL
|
||||
- **Deterministic**: Same input always produces identical output (ideal for automation)
|
||||
- **Open source**: Apache 2.0 license, zero per-render fees
|
||||
- **Agent-friendly**: Any coding agent that can write HTML can create videos
|
||||
|
||||
## Install
|
||||
|
||||
```bash
|
||||
npm install hyperframes
|
||||
```
|
||||
|
||||
Requires: Node.js 22+, Chrome/Chromium (for rendering)
|
||||
|
||||
## Quick Start
|
||||
|
||||
```typescript
|
||||
import { render } from "hyperframes";
|
||||
|
||||
await render({
|
||||
frames: [
|
||||
{
|
||||
html: `
|
||||
<div style="display:flex; align-items:center; justify-content:center;
|
||||
height:100%; background:#000; color:#fff; font-family:system-ui;">
|
||||
<h1 style="font-size:64px;">Welcome to Acme</h1>
|
||||
</div>
|
||||
`,
|
||||
duration: 3,
|
||||
},
|
||||
{
|
||||
html: `
|
||||
<div style="display:flex; flex-direction:column; align-items:center;
|
||||
justify-content:center; height:100%; background:#000; color:#fff;
|
||||
font-family:system-ui;">
|
||||
<h2 style="font-size:48px;">Ship faster with AI</h2>
|
||||
<p style="font-size:24px; color:#888;">Try it free today</p>
|
||||
</div>
|
||||
`,
|
||||
duration: 3,
|
||||
},
|
||||
],
|
||||
output: "intro.mp4",
|
||||
width: 1080,
|
||||
height: 1920, // 9:16 vertical
|
||||
fps: 30,
|
||||
});
|
||||
```
|
||||
|
||||
## Core Concepts
|
||||
|
||||
### Frames
|
||||
|
||||
Each frame is an HTML document rendered at a specific point in the timeline. Think of it as a slide with a duration.
|
||||
|
||||
```typescript
|
||||
{
|
||||
html: "<div>...</div>", // Full HTML content
|
||||
duration: 3, // Seconds to display
|
||||
css?: "body { ... }", // Optional external CSS
|
||||
}
|
||||
```
|
||||
|
||||
### Transitions
|
||||
|
||||
CSS transitions and animations work between frames:
|
||||
|
||||
```html
|
||||
<div style="animation: fadeIn 0.5s ease-in;">
|
||||
<h1>Slide In</h1>
|
||||
</div>
|
||||
<style>
|
||||
@keyframes fadeIn {
|
||||
from { opacity: 0; transform: translateY(20px); }
|
||||
to { opacity: 1; transform: translateY(0); }
|
||||
}
|
||||
</style>
|
||||
```
|
||||
|
||||
### Data-Driven Videos
|
||||
|
||||
Generate frames from data for batch production:
|
||||
|
||||
```typescript
|
||||
const features = ["Analytics", "Automation", "AI Insights"];
|
||||
|
||||
const frames = features.map((feature) => ({
|
||||
html: `
|
||||
<div style="display:flex; align-items:center; justify-content:center;
|
||||
height:100%; background:linear-gradient(135deg, #667eea, #764ba2);
|
||||
color:#fff; font-family:system-ui;">
|
||||
<h1 style="font-size:56px;">${feature}</h1>
|
||||
</div>
|
||||
`,
|
||||
duration: 2.5,
|
||||
}));
|
||||
|
||||
await render({ frames, output: "features.mp4", width: 1080, height: 1920 });
|
||||
```
|
||||
|
||||
## Common Marketing Templates
|
||||
|
||||
### Product Announcement
|
||||
|
||||
```typescript
|
||||
const frames = [
|
||||
{ html: hookSlide("Something new is here"), duration: 2 },
|
||||
{ html: featureSlide(title, description, screenshot), duration: 4 },
|
||||
{ html: ctaSlide("Try it free →", url), duration: 3 },
|
||||
];
|
||||
```
|
||||
|
||||
### Testimonial Video
|
||||
|
||||
```typescript
|
||||
const frames = [
|
||||
{ html: quoteSlide(testimonial.text), duration: 4 },
|
||||
{ html: attributionSlide(testimonial.author, testimonial.company), duration: 2 },
|
||||
{ html: ctaSlide("Join 1,000+ happy customers"), duration: 3 },
|
||||
];
|
||||
```
|
||||
|
||||
### Stats/Metrics Video
|
||||
|
||||
```typescript
|
||||
const metrics = [
|
||||
{ label: "Users", value: "10,000+" },
|
||||
{ label: "Uptime", value: "99.9%" },
|
||||
{ label: "NPS", value: "72" },
|
||||
];
|
||||
|
||||
const frames = metrics.map(m => ({
|
||||
html: metricSlide(m.label, m.value),
|
||||
duration: 2.5,
|
||||
}));
|
||||
```
|
||||
|
||||
## Aspect Ratios
|
||||
|
||||
| Platform | Width | Height | Ratio |
|
||||
|----------|-------|--------|-------|
|
||||
| TikTok/Reels/Shorts | 1080 | 1920 | 9:16 |
|
||||
| YouTube | 1920 | 1080 | 16:9 |
|
||||
| Instagram Feed | 1080 | 1080 | 1:1 |
|
||||
| Instagram Feed | 1080 | 1350 | 4:5 |
|
||||
|
||||
## Hyperframes vs. Remotion
|
||||
|
||||
| Factor | Hyperframes | Remotion |
|
||||
|--------|-------------|----------|
|
||||
| Language | HTML/CSS/JS | React/TypeScript |
|
||||
| Agent compatibility | Better (plain HTML) | Good (needs React knowledge) |
|
||||
| Animation | CSS transitions/keyframes | Spring physics, interpolation |
|
||||
| Cloud rendering | Not built-in | Lambda (AWS) |
|
||||
| License | Apache 2.0 (free) | Company license for commercial use |
|
||||
| Ecosystem | New, growing | Mature, large community |
|
||||
|
||||
**Use Hyperframes when:** AI agent is generating the video, simple animations, batch templated content, cost-sensitive.
|
||||
|
||||
**Use Remotion when:** Complex animations needed, already using React, need Lambda for massive scale, want larger ecosystem.
|
||||
|
||||
## Relevant Skills
|
||||
|
||||
- video
|
||||
- social-content
|
||||
- ad-creative
|
||||
Reference in New Issue
Block a user