skills/distribution/github-pages-deployer/SKILL.md
Deploy affiliate content to GitHub Pages for free hosting. Triggers on: "deploy to GitHub Pages", "host on GitHub Pages", "free hosting for my affiliate site", "push to GitHub Pages", "GitHub Pages setup", "deploy my landing page to GitHub", "host my bio link on GitHub", "free affiliate website hosting", "github pages affiliate", "set up GitHub Pages for my site", "deploy HTML to GitHub", "free static hosting", "publish my affiliate page for free", "github pages custom domain".
npx skillsauth add affitor/affiliate-skills github-pages-deployerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
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.
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.
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:
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
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).
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.
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
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)
Present all outputs in numbered sections with clear file labels.
Before presenting output, verify:
If any check fails, fix the output before delivering. Do not flag the checklist to the user — just ensure the output passes.
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"
Present in five clearly labeled sections:
Section 1: Summary
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:
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).
https:// prefix; DNS record value is [username].github.io (with no trailing slash). Enable Cloudflare proxy OFF (grey cloud) for GitHub Pages to work."main not master), or pages: write permission missing on older repos. Provide troubleshooting checklist.heygen-review-2026) or niche (heygen-review-for-creators).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.
shared/references/ftc-compliance.md — FTC affiliate disclosure. Ensure the deployed HTML includes disclosure language.shared/references/affitor-branding.md — Affitor footer. Include in HTML before deploy.shared/references/flywheel-connections.md — master flywheel connection mapconversion-tracker immediately after deployinghttps://[username].github.io/[repo] so Google indexes it fasterAfter 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
conversion-tracker (S6) — deployed site URL to trackseo-audit (S6) — deployed site to auditlanding-page-creator (S4) — HTML file to deploybio-link-deployer (S5) — bio link HTML to deploysqueeze-page-builder (S4) — squeeze page HTML to deployseo-audit (S6) checks deployed site health → identify deployment issues affecting SEOBefore delivering output, verify:
Any NO → rewrite before delivering.
chain_metadata:
skill_slug: "github-pages-deployer"
stage: "distribution"
timestamp: string
suggested_next:
- "conversion-tracker"
- "seo-audit"
development
Scan social platforms for top-performing content by engagement before you create anything. Use this skill when the user wants to see what content is winning in a niche, find viral content patterns, research what's working on YouTube/TikTok/X/Reddit, benchmark engagement, discover content gaps, or says "what content is working for [topic]", "show me top performing content about [keyword]", "what's trending in [niche]", "find viral content about [product]", "content research for [keyword]", "what gets views in [niche]", "engagement analysis for [topic]", "scout the competition", "what videos are getting the most views about [keyword]", "social listening for [topic]", "trending content in [niche]", "top content analysis", "what hooks work for [keyword]", "content intelligence", "find winning formats".
development
Analyze website traffic, global rank, engagement metrics, and traffic sources for any domain. Use this skill to evaluate affiliate program websites, compare competitor traffic, assess advertiser strength, or understand where an audience comes from. Triggers on: "analyze traffic for [domain]", "how much traffic does [site] get", "compare traffic between [site A] and [site B]", "is [program] worth promoting based on traffic", "traffic analysis", "website analytics for [domain]", "where does [site] get traffic", "check if [advertiser] is legit", "evaluate [program] website health", "SimilarWeb analysis", "traffic sources for [domain]", "how popular is [site]", "website rank", "domain authority check", "compare affiliate program websites".
development
Rank content angles by engagement data, competition level, and platform fit. Data-driven angle selection instead of guesswork. Use this skill when the user has a keyword or product and needs to decide WHAT to create, which angle to take, which format to use, or which platform to target. Triggers on: "what angle should I use", "rank content ideas for [keyword]", "best angle for [product]", "which content idea will perform best", "help me pick an angle", "what should I write about", "content angle for [topic]", "rank my content ideas", "which approach will get the most views", "data-driven content planning", "angle ranker", "content scoring", "which hook should I use", "compare these content ideas", "prioritize my content angles", "what video should I make".
tools
Generate branded infographic specifications from any content or data. Outputs structured layout, copy, data visualization, and color scheme — ready to render as HTML/CSS, Satori, Canva, or any design tool. Use this skill when the user wants an infographic, data visual, social media image, comparison chart, stat card, or says "create an infographic for [content]", "make a visual for my LinkedIn post", "design an image for [topic]", "stat graphic for [data]", "comparison infographic", "branded image", "social media graphic", "infographic for [blog post]", "data visualization", "visual content", "image for my post", "LinkedIn carousel image", "feature comparison chart", "pricing table image".