Github pages deployer

Deploy affiliate content to GitHub Pages for free hosting.

How to use it

  1. Hit Copy SKILL.md — or use the Claude Code line below to get every file.
  2. Claude: ⋯ → Download .md, then Customize → Skills → Add → Upload skill.
    ChatGPT: make a Project and paste it into Instructions.
    Neither? Paste it at the top of a new chat — it works for that chat.
  3. Describe your job in plain words. The AI follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit Affitor/affiliate-skills/skills/distribution/github-pages-deployer#main ~/.claude/skills/github-pages-deployer

For one project only, change the path to .claude/skills/github-pages-deployer. This skill also uses deploy.yml — copying SKILL.md alone won't be enough. See the folder on GitHub.

Not working?
  • Check which app you pasted it into — the steps above name the right one.
  • Some skills need the paid tier of Claude or ChatGPT.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Show the full text372 lines
github-pages-deployer/SKILL.md372 lines14.9 KBpushed 16d agoRawView on GitHub

GitHub Pages Deployer

Generate a complete, ready-to-deploy GitHub Pages setup for affiliate landing pages, bio link hubs, and blog posts. Outputs the full repo file structure, a GitHub Actions CI/CD workflow for automatic deploys, and step-by-step instructions for custom domain configuration with SSL. Free hosting, no credit card required.

Stage

S5: Distribution — GitHub Pages is the most underused free hosting platform in affiliate marketing. 100GB bandwidth/month, free SSL, custom domains, and automatic deploys from Git. This skill takes any HTML output from S4 (landing page) or S5 (bio-link) and gets it live on the internet in under 10 minutes.

When to Use

  • User wants to deploy a landing page (from S4) to a free host
  • User wants to deploy a bio link page (from S5 bio-link-deployer) to a free host
  • User wants free static hosting with a custom domain and SSL
  • User already has HTML files and wants to publish them without paying for hosting
  • User wants automated deploys so pushing to main branch auto-updates the live site
  • User wants to host a simple affiliate blog or resource page for free

Input Schema

site:
  type: string              # REQUIRED — "landing-page" | "bio-link" | "blog" | "resource-page"
  html_content: string      # REQUIRED — the HTML content to deploy (full file or description)
                            # If S4 or bio-link-deployer was run, use that output automatically
  title: string             # REQUIRED — site title (used in repo name and meta)
  description: string       # OPTIONAL — meta description for SEO

repo:
  name: string              # OPTIONAL — GitHub repo name (auto-generated from title if omitted)
                            # e.g., "heygen-review" or "alex-bio-links"
  username: string          # OPTIONAL — GitHub username. Used in generated URLs.
                            # If not provided, use "[your-username]" as placeholder.
  visibility: string        # OPTIONAL — "public" | "private". Default: "public"
                            # Note: private repos require GitHub Pro for Pages

domain:
  custom: string            # OPTIONAL — custom domain (e.g., "links.yourdomain.com")
  subdomain: string         # OPTIONAL — subdomain type: "apex" | "subdomain"
                            # Apex = yourdomain.com, Subdomain = www.yourdomain.com

deploy:
  method: string            # OPTIONAL — "github-actions" | "manual". Default: "github-actions"
  branch: string            # OPTIONAL — source branch. Default: "main"

Chaining context: If S4 (landing-page-creator) or S5 (bio-link-deployer) was run earlier in the conversation, automatically use that HTML output as site.html_content. Do not ask the user to paste it again.

Workflow

Step 1: Gather Inputs

Check if an HTML page was generated earlier in the conversation (S4 landing page or bio-link page). If yes, confirm: "I'll deploy the [page type] we built earlier. What's your GitHub username?"

If no prior HTML exists:

  • Ask for HTML content or page description
  • Offer to call S4 or bio-link-deployer first: "Want me to create the page first, then set up the deploy?"

Step 2: Generate Repo Structure

Create the complete file and folder structure for the GitHub Pages repo.

Standard structure for a single-page site:

[repo-name]/
├── index.html              # Main page (the affiliate landing page or bio link)
├── assets/
│   ├── css/
│   │   └── style.css       # External CSS if extracted from HTML (optional)
│   └── images/
│       └── .gitkeep        # Placeholder — add images here
├── CNAME                   # Only if custom domain is set
├── .github/
│   └── workflows/
│       └── deploy.yml      # GitHub Actions workflow
├── .gitignore
└── README.md

For multi-page blog/resource site, add:

├── blog/
│   ├── index.html          # Blog listing page
│   └── [post-slug]/
│       └── index.html      # Individual post pages
├── about/
│   └── index.html
└── sitemap.xml

Step 3: Generate the GitHub Actions Workflow

Write the deploy.yml file that automatically deploys to GitHub Pages on every push to main.

# .github/workflows/deploy.yml
name: Deploy to GitHub Pages

on:
  push:
    branches: [ main ]
  workflow_dispatch:       # Allow manual trigger from GitHub UI

permissions:
  contents: read
  pages: write
  id-token: write

concurrency:
  group: "pages"
  cancel-in-progress: false

jobs:
  deploy:
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup Pages
        uses: actions/configure-pages@v5

      - name: Upload artifact
        uses: actions/upload-pages-artifact@v3
        with:
          path: '.'         # Deploy from repo root

      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v4

This workflow uses the official GitHub Pages Actions (no third-party dependencies, no tokens needed).

Step 4: Generate the CNAME File (if custom domain)

If domain.custom is provided, create a CNAME file with just the domain:

links.yourdomain.com

For apex domains (yourdomain.com), the CNAME file contains the bare domain. GitHub Pages handles the redirect from www to apex automatically when configured correctly.

Step 5: Generate DNS Configuration Instructions

Provide exact DNS records to add in the user's domain registrar (Cloudflare, Namecheap, GoDaddy, etc.).

For subdomain (e.g., links.yourdomain.com):

Type: CNAME
Name: links
Value: [username].github.io
TTL: Auto or 3600

For apex domain (yourdomain.com):

Type: A  Name: @  Value: 185.199.108.153
Type: A  Name: @  Value: 185.199.109.153
Type: A  Name: @  Value: 185.199.110.153
Type: A  Name: @  Value: 185.199.111.153
Type: AAAA  Name: @  Value: 2606:50c0:8000::153
Type: AAAA  Name: @  Value: 2606:50c0:8001::153
Type: AAAA  Name: @  Value: 2606:50c0:8002::153
Type: AAAA  Name: @  Value: 2606:50c0:8003::153

Note: GitHub's IP addresses above are current as of 2026. Always verify at https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site

Step 6: Generate README.md

Write a clean README for the repo:

# [Site Title]

Affiliate landing page hosted on GitHub Pages.

## Live Site
[Live URL]

## Deploy
Automatic via GitHub Actions — push to `main` triggers a deploy.

## Powered By
[Affitor](https://affitor.com/?utm_source=affiliate-skills)

Step 7: Output the Complete Setup

Present all outputs in numbered sections with clear file labels.

Step 8: Self-Validation

Before presenting output, verify:

  • GitHub Actions YAML is valid syntax
  • CNAME file is correct format if custom domain configured
  • All file paths are valid and consistent
  • Deployment commands are copy-paste ready
  • README.md is included in the repository files

If any check fails, fix the output before delivering. Do not flag the checklist to the user — just ensure the output passes.

Output Schema

output_schema_version: "1.0.0"  # Semver — bump major on breaking changes
repo:
  name: string              # e.g., "heygen-review-2026"
  url: string               # e.g., "https://github.com/[username]/[repo-name]"
  pages_url: string         # e.g., "https://[username].github.io/[repo-name]"
  custom_domain_url: string | null

files:
  - path: string            # e.g., "index.html"
    content: string         # full file content
  - path: ".github/workflows/deploy.yml"
    content: string
  - path: "CNAME"           # null if no custom domain
    content: string | null
  - path: ".gitignore"
    content: string
  - path: "README.md"
    content: string

setup_steps:
  - step: number
    action: string          # e.g., "Create GitHub repo"
    command: string | null  # CLI command if applicable

dns_records: object | null  # DNS config if custom domain provided

estimated_time: string      # e.g., "8-10 minutes"

Output Format

Present in five clearly labeled sections:

Section 1: Summary

  • Repo name, live URL, custom domain URL (if applicable)
  • Estimated time to go live: X minutes

Section 2: Files to Create Each file in its own fenced code block with the file path as the label. User can copy-paste each file's content directly.

Section 3: GitHub Setup Steps Numbered instructions:

  1. Create the repo on GitHub (link to github.com/new)
  2. Initialize and push (CLI commands provided)
  3. Enable GitHub Pages in repo Settings
  4. Set source to "GitHub Actions"

Section 4: DNS Setup (only if custom domain) Exact records to add, formatted as a table. Provider-specific notes for Cloudflare users (Proxy OFF for GitHub Pages).

Section 5: Verification How to confirm the deploy worked and SSL is active (usually 5-15 minutes for DNS propagation).

Error Handling

  • No HTML content and no prior skill output: "I don't see a page to deploy yet. Want me to create a landing page first (S4), a bio link page, or do you have HTML to paste?"
  • Private repo for free GitHub account: "Private repos require GitHub Pro ($4/mo) for GitHub Pages. Your options: (1) make the repo public, (2) upgrade to Pro, (3) use Netlify Drop for free private deploys."
  • Custom domain not propagating: "DNS changes can take 1-48 hours. If it's been over 24 hours, double-check: CNAME file contains exactly the domain, no https:// prefix; DNS record value is [username].github.io (with no trailing slash). Enable Cloudflare proxy OFF (grey cloud) for GitHub Pages to work."
  • GitHub Actions failing: Common causes: Pages not enabled in repo Settings, branch name mismatch (use main not master), or pages: write permission missing on older repos. Provide troubleshooting checklist.
  • User wants WordPress or dynamic site: "GitHub Pages only hosts static HTML/CSS/JS — no PHP, no databases. For WordPress or dynamic content, use Cloudflare Pages, Netlify, or a VPS. For a simple affiliate site, static is faster and better for SEO anyway."
  • Repo name taken: Suggest appending year (heygen-review-2026) or niche (heygen-review-for-creators).

Examples

Example 1: Deploy landing page from S4 Context: S4 generated a HeyGen landing page HTML. User: "Deploy this to GitHub Pages. My username is alexmarketer." Action: Auto-use S4 HTML. Repo name: heygen-landing. Pages URL: https://alexmarketer.github.io/heygen-landing. Generate all files + deploy instructions.

Example 2: Deploy bio link with custom domain Context: Bio-link-deployer generated a bio page. User: "Put this on GitHub Pages at links.mysite.com." Action: Repo + CNAME file with links.mysite.com. DNS: CNAME record pointing to [username].github.io. Cloudflare note: proxy must be disabled (grey cloud icon).

Example 3: Multi-page resource site User: "I want to host an affiliate resource site on GitHub Pages with a homepage, about page, and 3 blog posts." Action: Generate multi-page structure. Scaffold all index.html files with placeholder content. Deploy workflow. Note: for a blog with 10+ posts, suggest Jekyll or Eleventy for templating.

References

Revenue & Action Plan

Expected Outcomes

  • Revenue potential: A deployed landing page or bio link earns 24/7 — it's your always-on salesperson. Free hosting means 100% of revenue is profit. A single landing page can generate $200-1,000/month with consistent traffic
  • Benchmark: Deployed affiliate pages indexed by Google start ranking within 2-4 weeks. Organic traffic from Google is the highest-converting free traffic source (4-5% conversion vs 1-2% from social)
  • Key metric to track: Page visits → affiliate link clicks → conversions. Set up conversion-tracker immediately after deploying

Do This Right Now (15 min)

  1. Create the repo and push — follow the Setup Steps exactly (copy-paste commands)
  2. Verify the deploy — visit your GitHub Pages URL, confirm the page loads
  3. Submit to Google Search Console — add https://[username].github.io/[repo] so Google indexes it faster
  4. Share the live URL — post it on social media, add it to your bio link, and send it to your email list

Track Your Results

After deploying: set up conversion-tracker to monitor clicks and conversions. After 30 days, run seo-audit to optimize for search rankings. A page that ranks #1 for a buyer-intent keyword can earn $500-2,000/month passively.

Next step — copy-paste this prompt: "Set up conversion tracking for my deployed page at [URL]" → runs conversion-tracker

Flywheel Connections

Feeds Into

  • conversion-tracker (S6) — deployed site URL to track
  • seo-audit (S6) — deployed site to audit

Fed By

  • landing-page-creator (S4) — HTML file to deploy
  • bio-link-deployer (S5) — bio link HTML to deploy
  • squeeze-page-builder (S4) — squeeze page HTML to deploy

Feedback Loop

  • seo-audit (S6) checks deployed site health → identify deployment issues affecting SEO

Quality Gate

Before delivering output, verify:

  1. Would I share this on MY personal social?
  2. Contains specific, surprising detail? (not generic)
  3. Respects reader's intelligence?
  4. Remarkable enough to share? (Purple Cow test)
  5. Irresistible offer framing? (if S4 offer skills ran)

Any NO → rewrite before delivering.

chain_metadata:
  skill_slug: "github-pages-deployer"
  stage: "distribution"
  timestamp: string
  suggested_next:
    - "conversion-tracker"
    - "seo-audit"
1---
2name: github-pages-deployer
3description: >
4 Deploy affiliate content to GitHub Pages for free hosting. Triggers on:
5 "deploy to GitHub Pages", "host on GitHub Pages", "free hosting for my affiliate site",
6 "push to GitHub Pages", "GitHub Pages setup", "deploy my landing page to GitHub",
7 "host my bio link on GitHub", "free affiliate website hosting", "github pages affiliate",
8 "set up GitHub Pages for my site", "deploy HTML to GitHub", "free static hosting",
9 "publish my affiliate page for free", "github pages custom domain".
10license: MIT
11version: "1.0.0"
12tags: ["affiliate-marketing", "distribution", "deployment", "email-marketing", "github-pages", "static-site"]
13compatibility: "Claude Code, ChatGPT, Gemini CLI, Cursor, Windsurf, OpenClaw, any AI agent"
14metadata:
15 author: affitor
16 version: "1.0"
17 stage: S5-Distribution
18---
19 
20# GitHub Pages Deployer
21 
22Generate a complete, ready-to-deploy GitHub Pages setup for affiliate landing pages, bio link hubs, and blog posts. Outputs the full repo file structure, a GitHub Actions CI/CD workflow for automatic deploys, and step-by-step instructions for custom domain configuration with SSL. Free hosting, no credit card required.
23 
24## Stage
25 
26S5: Distribution — GitHub Pages is the most underused free hosting platform in affiliate marketing. 100GB bandwidth/month, free SSL, custom domains, and automatic deploys from Git. This skill takes any HTML output from S4 (landing page) or S5 (bio-link) and gets it live on the internet in under 10 minutes.
27 
28## When to Use
29 
30- User wants to deploy a landing page (from S4) to a free host
31- User wants to deploy a bio link page (from S5 bio-link-deployer) to a free host
32- User wants free static hosting with a custom domain and SSL
33- User already has HTML files and wants to publish them without paying for hosting
34- User wants automated deploys so pushing to main branch auto-updates the live site
35- User wants to host a simple affiliate blog or resource page for free
36 
37## Input Schema
38 
39```yaml
40site:
41 type: string # REQUIRED — "landing-page" | "bio-link" | "blog" | "resource-page"
42 html_content: string # REQUIRED — the HTML content to deploy (full file or description)
43 # If S4 or bio-link-deployer was run, use that output automatically
44 title: string # REQUIRED — site title (used in repo name and meta)
45 description: string # OPTIONAL — meta description for SEO
46 
47repo:
48 name: string # OPTIONAL — GitHub repo name (auto-generated from title if omitted)
49 # e.g., "heygen-review" or "alex-bio-links"
50 username: string # OPTIONAL — GitHub username. Used in generated URLs.
51 # If not provided, use "[your-username]" as placeholder.
52 visibility: string # OPTIONAL — "public" | "private". Default: "public"
53 # Note: private repos require GitHub Pro for Pages
54 
55domain:
56 custom: string # OPTIONAL — custom domain (e.g., "links.yourdomain.com")
57 subdomain: string # OPTIONAL — subdomain type: "apex" | "subdomain"
58 # Apex = yourdomain.com, Subdomain = www.yourdomain.com
59 
60deploy:
61 method: string # OPTIONAL — "github-actions" | "manual". Default: "github-actions"
62 branch: string # OPTIONAL — source branch. Default: "main"
63```
64 
65**Chaining context**: If S4 (landing-page-creator) or S5 (bio-link-deployer) was run earlier in the conversation, automatically use that HTML output as `site.html_content`. Do not ask the user to paste it again.
66 
67## Workflow
68 
69### Step 1: Gather Inputs
70 
71Check if an HTML page was generated earlier in the conversation (S4 landing page or bio-link page). If yes, confirm: "I'll deploy the [page type] we built earlier. What's your GitHub username?"
72 
73If no prior HTML exists:
74- Ask for HTML content or page description
75- Offer to call S4 or bio-link-deployer first: "Want me to create the page first, then set up the deploy?"
76 
77### Step 2: Generate Repo Structure
78 
79Create the complete file and folder structure for the GitHub Pages repo.
80 
81**Standard structure for a single-page site:**
82 
83```
84[repo-name]/
85├── index.html # Main page (the affiliate landing page or bio link)
86├── assets/
87│ ├── css/
88│ │ └── style.css # External CSS if extracted from HTML (optional)
89│ └── images/
90│ └── .gitkeep # Placeholder — add images here
91├── CNAME # Only if custom domain is set
92├── .github/
93│ └── workflows/
94│ └── deploy.yml # GitHub Actions workflow
95├── .gitignore
96└── README.md
97```
98 
99**For multi-page blog/resource site, add:**
100 
101```
102├── blog/
103│ ├── index.html # Blog listing page
104│ └── [post-slug]/
105│ └── index.html # Individual post pages
106├── about/
107│ └── index.html
108└── sitemap.xml
109```
110 
111### Step 3: Generate the GitHub Actions Workflow
112 
113Write the `deploy.yml` file that automatically deploys to GitHub Pages on every push to `main`.
114 
115```yaml
116# .github/workflows/deploy.yml
117name: Deploy to GitHub Pages
118 
119on:
120 push:
121 branches: [ main ]
122 workflow_dispatch: # Allow manual trigger from GitHub UI
123 
124permissions:
125 contents: read
126 pages: write
127 id-token: write
128 
129concurrency:
130 group: "pages"
131 cancel-in-progress: false
132 
133jobs:
134 deploy:
135 environment:
136 name: github-pages
137 url: ${{ steps.deployment.outputs.page_url }}
138 runs-on: ubuntu-latest
139 steps:
140 - name: Checkout
141 uses: actions/checkout@v4
142 
143 - name: Setup Pages
144 uses: actions/configure-pages@v5
145 
146 - name: Upload artifact
147 uses: actions/upload-pages-artifact@v3
148 with:
149 path: '.' # Deploy from repo root
150 
151 - name: Deploy to GitHub Pages
152 id: deployment
153 uses: actions/deploy-pages@v4
154```
155 
156This workflow uses the official GitHub Pages Actions (no third-party dependencies, no tokens needed).
157 
158### Step 4: Generate the CNAME File (if custom domain)
159 
160If `domain.custom` is provided, create a `CNAME` file with just the domain:
161 
162```
163links.yourdomain.com
164```
165 
166For apex domains (`yourdomain.com`), the CNAME file contains the bare domain. GitHub Pages handles the redirect from `www` to apex automatically when configured correctly.
167 
168### Step 5: Generate DNS Configuration Instructions
169 
170Provide exact DNS records to add in the user's domain registrar (Cloudflare, Namecheap, GoDaddy, etc.).
171 
172**For subdomain (e.g., links.yourdomain.com):**
173```
174Type: CNAME
175Name: links
176Value: [username].github.io
177TTL: Auto or 3600
178```
179 
180**For apex domain (yourdomain.com):**
181```
182Type: A Name: @ Value: 185.199.108.153
183Type: A Name: @ Value: 185.199.109.153
184Type: A Name: @ Value: 185.199.110.153
185Type: A Name: @ Value: 185.199.111.153
186Type: AAAA Name: @ Value: 2606:50c0:8000::153
187Type: AAAA Name: @ Value: 2606:50c0:8001::153
188Type: AAAA Name: @ Value: 2606:50c0:8002::153
189Type: AAAA Name: @ Value: 2606:50c0:8003::153
190```
191 
192Note: GitHub's IP addresses above are current as of 2026. Always verify at https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site
193 
194### Step 6: Generate README.md
195 
196Write a clean README for the repo:
197 
198```markdown
199# [Site Title]
200 
201Affiliate landing page hosted on GitHub Pages.
202 
203## Live Site
204[Live URL]
205 
206## Deploy
207Automatic via GitHub Actions — push to `main` triggers a deploy.
208 
209## Powered By
210[Affitor](https://affitor.com/?utm_source=affiliate-skills)
211```
212 
213### Step 7: Output the Complete Setup
214 
215Present all outputs in numbered sections with clear file labels.
216 
217### Step 8: Self-Validation
218 
219Before presenting output, verify:
220 
221- [ ] GitHub Actions YAML is valid syntax
222- [ ] CNAME file is correct format if custom domain configured
223- [ ] All file paths are valid and consistent
224- [ ] Deployment commands are copy-paste ready
225- [ ] README.md is included in the repository files
226 
227If any check fails, fix the output before delivering. Do not flag the checklist to the user — just ensure the output passes.
228 
229## Output Schema
230 
231```yaml
232output_schema_version: "1.0.0" # Semver — bump major on breaking changes
233repo:
234 name: string # e.g., "heygen-review-2026"
235 url: string # e.g., "https://github.com/[username]/[repo-name]"
236 pages_url: string # e.g., "https://[username].github.io/[repo-name]"
237 custom_domain_url: string | null
238 
239files:
240 - path: string # e.g., "index.html"
241 content: string # full file content
242 - path: ".github/workflows/deploy.yml"
243 content: string
244 - path: "CNAME" # null if no custom domain
245 content: string | null
246 - path: ".gitignore"
247 content: string
248 - path: "README.md"
249 content: string
250 
251setup_steps:
252 - step: number
253 action: string # e.g., "Create GitHub repo"
254 command: string | null # CLI command if applicable
255 
256dns_records: object | null # DNS config if custom domain provided
257 
258estimated_time: string # e.g., "8-10 minutes"
259```
260 
261## Output Format
262 
263Present in five clearly labeled sections:
264 
265**Section 1: Summary**
266- Repo name, live URL, custom domain URL (if applicable)
267- Estimated time to go live: X minutes
268 
269**Section 2: Files to Create**
270Each file in its own fenced code block with the file path as the label. User can copy-paste each file's content directly.
271 
272**Section 3: GitHub Setup Steps**
273Numbered instructions:
2741. Create the repo on GitHub (link to github.com/new)
2752. Initialize and push (CLI commands provided)
2763. Enable GitHub Pages in repo Settings
2774. Set source to "GitHub Actions"
278 
279**Section 4: DNS Setup** (only if custom domain)
280Exact records to add, formatted as a table. Provider-specific notes for Cloudflare users (Proxy OFF for GitHub Pages).
281 
282**Section 5: Verification**
283How to confirm the deploy worked and SSL is active (usually 5-15 minutes for DNS propagation).
284 
285## Error Handling
286 
287- **No HTML content and no prior skill output**: "I don't see a page to deploy yet. Want me to create a landing page first (S4), a bio link page, or do you have HTML to paste?"
288- **Private repo for free GitHub account**: "Private repos require GitHub Pro ($4/mo) for GitHub Pages. Your options: (1) make the repo public, (2) upgrade to Pro, (3) use Netlify Drop for free private deploys."
289- **Custom domain not propagating**: "DNS changes can take 1-48 hours. If it's been over 24 hours, double-check: CNAME file contains exactly the domain, no `https://` prefix; DNS record value is `[username].github.io` (with no trailing slash). Enable Cloudflare proxy OFF (grey cloud) for GitHub Pages to work."
290- **GitHub Actions failing**: Common causes: Pages not enabled in repo Settings, branch name mismatch (use `main` not `master`), or `pages: write` permission missing on older repos. Provide troubleshooting checklist.
291- **User wants WordPress or dynamic site**: "GitHub Pages only hosts static HTML/CSS/JS — no PHP, no databases. For WordPress or dynamic content, use Cloudflare Pages, Netlify, or a VPS. For a simple affiliate site, static is faster and better for SEO anyway."
292- **Repo name taken**: Suggest appending year (`heygen-review-2026`) or niche (`heygen-review-for-creators`).
293 
294## Examples
295 
296**Example 1: Deploy landing page from S4**
297Context: S4 generated a HeyGen landing page HTML.
298User: "Deploy this to GitHub Pages. My username is alexmarketer."
299Action: Auto-use S4 HTML. Repo name: `heygen-landing`. Pages URL: `https://alexmarketer.github.io/heygen-landing`. Generate all files + deploy instructions.
300 
301**Example 2: Deploy bio link with custom domain**
302Context: Bio-link-deployer generated a bio page.
303User: "Put this on GitHub Pages at links.mysite.com."
304Action: Repo + CNAME file with `links.mysite.com`. DNS: CNAME record pointing to `[username].github.io`. Cloudflare note: proxy must be disabled (grey cloud icon).
305 
306**Example 3: Multi-page resource site**
307User: "I want to host an affiliate resource site on GitHub Pages with a homepage, about page, and 3 blog posts."
308Action: Generate multi-page structure. Scaffold all index.html files with placeholder content. Deploy workflow. Note: for a blog with 10+ posts, suggest Jekyll or Eleventy for templating.
309 
310## References
311 
312- `shared/references/ftc-compliance.md` — FTC affiliate disclosure. Ensure the deployed HTML includes disclosure language.
313- `shared/references/affitor-branding.md` — Affitor footer. Include in HTML before deploy.
314- GitHub Pages documentation: https://docs.github.com/en/pages
315- GitHub Pages IP addresses (A records): https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site
316- `shared/references/flywheel-connections.md` — master flywheel connection map
317 
318## Revenue & Action Plan
319 
320### Expected Outcomes
321- **Revenue potential**: A deployed landing page or bio link earns 24/7 — it's your always-on salesperson. Free hosting means 100% of revenue is profit. A single landing page can generate $200-1,000/month with consistent traffic
322- **Benchmark**: Deployed affiliate pages indexed by Google start ranking within 2-4 weeks. Organic traffic from Google is the highest-converting free traffic source (4-5% conversion vs 1-2% from social)
323- **Key metric to track**: Page visits → affiliate link clicks → conversions. Set up `conversion-tracker` immediately after deploying
324 
325### Do This Right Now (15 min)
3261. **Create the repo and push** — follow the Setup Steps exactly (copy-paste commands)
3272. **Verify the deploy** — visit your GitHub Pages URL, confirm the page loads
3283. **Submit to Google Search Console** — add `https://[username].github.io/[repo]` so Google indexes it faster
3294. **Share the live URL** — post it on social media, add it to your bio link, and send it to your email list
330 
331### Track Your Results
332After deploying: set up `conversion-tracker` to monitor clicks and conversions. After 30 days, run `seo-audit` to optimize for search rankings. A page that ranks #1 for a buyer-intent keyword can earn $500-2,000/month passively.
333 
334> **Next step — copy-paste this prompt:**
335> "Set up conversion tracking for my deployed page at [URL]" → runs `conversion-tracker`
336 
337## Flywheel Connections
338 
339### Feeds Into
340- `conversion-tracker` (S6) — deployed site URL to track
341- `seo-audit` (S6) — deployed site to audit
342 
343### Fed By
344- `landing-page-creator` (S4) — HTML file to deploy
345- `bio-link-deployer` (S5) — bio link HTML to deploy
346- `squeeze-page-builder` (S4) — squeeze page HTML to deploy
347 
348### Feedback Loop
349- `seo-audit` (S6) checks deployed site health → identify deployment issues affecting SEO
350 
351## Quality Gate
352 
353Before delivering output, verify:
354 
3551. Would I share this on MY personal social?
3562. Contains specific, surprising detail? (not generic)
3573. Respects reader's intelligence?
3584. Remarkable enough to share? (Purple Cow test)
3595. Irresistible offer framing? (if S4 offer skills ran)
360 
361Any NO → rewrite before delivering.
362 
363```yaml
364chain_metadata:
365 skill_slug: "github-pages-deployer"
366 stage: "distribution"
367 timestamp: string
368 suggested_next:
369 - "conversion-tracker"
370 - "seo-audit"
371```
372 

Discussion

Alternatives

Also in Affiliate programs
Affiliate Program ListerResearch an affiliate program and create a verified listing for openaffiliate.dev. Use this skill when the user asks anything about listing a program, adding an affiliate program to the directory, submitting a program to list, creating a listing, documenting an affiliate program, sharing an affiliate program, writing a program profile, posting a program to openaffiliate.dev, or contributing a new program. Also trigger for: "list a program", "add affiliate program", "submit program to list", create listing for X", "document affiliate program", "share affiliate program", write a listing", "post to openaffiliate.dev", "add X to the directory", register an affiliate program", "publish affiliate program", "new program listing", profile this affiliate program", "catalog this program".Marketing · MITReferral & Affiliate ProgramsWhen the user wants to create, optimize, or analyze a referral program, affiliate program, or word-of-mouth strategy. Also use when the user mentions 'referral,' 'affiliate,' 'ambassador,' 'word of mouth,' 'viral loop,' 'refer a friend,' 'partner program,' 'referral incentive,' 'how to get referrals,' 'customers referring customers,' or 'affiliate payout.' Use this whenever someone wants existing users or partners to bring in new customers. For launch-specific virality, see launch.Marketing · MITAffiliate program searchResearch and evaluate affiliate programs to find the best ones to promote. Use this skill when the user asks anything about finding affiliate programs, comparing commission rates, evaluating affiliate opportunities, searching for products to promote, picking a niche, or mentions openaffiliate.dev. Also trigger for: "which SaaS should I promote", "best affiliate programs for X", high commission programs", "recurring commission affiliate", "compare these affiliate programs", "is X affiliate program worth it", "find me something to promote", what pays the most", "affiliate programs with long cookie duration".Marketing · MITaffiliate-check: Live Affiliate Program Data| Live affiliate program data from openaffiliate.dev. Search programs, compare commissions, check cookie days, find top performers. Use when researching affiliate programs, comparing options, or checking program details. Persistent daemon with cache — first call starts server (~2s), subsequent calls ~100ms.Marketing · MIT