$npx -y skills add Affitor/affiliate-skills --skill bio-link-deployerCreate a Linktree-style bio link hub page as a single self-contained HTML file. Triggers on: "create a bio link page", "make a linktree", "link in bio page", "bio link", "link hub", "create my link page", "all my links on one page", "linktree alternative", "build a link page", "b
| 1 | # Bio Link Deployer |
| 2 | |
| 3 | Create a Linktree-style hub page that links all your affiliate content — blog posts, landing pages, social profiles, and product links — in one place. Output is a single self-contained HTML file with 3 theme options, mobile-first (90%+ bio link traffic is mobile), deployable anywhere. |
| 4 | |
| 5 | ## Stage |
| 6 | |
| 7 | S5: Distribution — The central hub that ties your entire affiliate funnel together. Put this link in your social media bios, email signatures, and anywhere you need one link to rule them all. Unlike Linktree, you own the page and pay nothing. |
| 8 | |
| 9 | ## When to Use |
| 10 | |
| 11 | - User wants a link-in-bio page for social media profiles |
| 12 | - User wants a single page linking all their affiliate content |
| 13 | - User says anything like "linktree", "bio link", "link page", "link in bio", "all my links" |
| 14 | - User has multiple affiliate products/blog posts/landing pages and needs a hub |
| 15 | - User wants a free alternative to Linktree/Beacons/Stan Store |
| 16 | |
| 17 | ## Input Schema |
| 18 | |
| 19 | ```yaml |
| 20 | user_name: string # REQUIRED — display name or handle (e.g., "@alexcreator") |
| 21 | |
| 22 | tagline: string # OPTIONAL — short bio under the name |
| 23 | # Default: auto-generated from link categories |
| 24 | |
| 25 | avatar_url: string # OPTIONAL — URL to profile image |
| 26 | # Default: emoji placeholder based on niche |
| 27 | |
| 28 | links: # REQUIRED — at least 3 links |
| 29 | - label: string # Display text (e.g., "HeyGen — AI Video Creator") |
| 30 | url: string # Destination URL |
| 31 | category: string # Group label (e.g., "Tools", "My Content", "Connect") |
| 32 | icon: string # OPTIONAL — emoji for visual (e.g., "🎬") |
| 33 | |
| 34 | theme: string # OPTIONAL — "minimal" | "dark" | "gradient" |
| 35 | # Default: "minimal" |
| 36 | ``` |
| 37 | |
| 38 | **Chaining context**: If earlier skills (S1-S4) were run in the conversation, use these Output Schema fields: |
| 39 | - S1 `recommended_program.url` + `.name` → add as "Featured Tools" links |
| 40 | - S2 `posts[].platform` → link to the user's social platform profiles |
| 41 | - S3 `products_featured[].url` + `.name` → add as "My Content" links (blog posts) |
| 42 | - S4 `landing_page.filename` or deployed URL → add as "Landing Pages" links |
| 43 | - S4 `products_featured[].url` + `.name` → add as product links if not already included |
| 44 | |
| 45 | If the user says "make me a bio link with everything we've done" — gather all products, blog posts, and landing pages from the conversation and organize them into categories. |
| 46 | |
| 47 | ## Workflow |
| 48 | |
| 49 | ### Step 1: Gather Links |
| 50 | |
| 51 | Collect links from one of these sources: |
| 52 | |
| 53 | **Option A — User provides links directly:** |
| 54 | Use the `links` array as-is. Ensure each link has a label, url, and category. |
| 55 | |
| 56 | **Option B — Gather from conversation context:** |
| 57 | If prior skills (S1-S4) were run, collect: |
| 58 | - Product affiliate URLs → category: "Featured Tools" |
| 59 | - Blog post URLs → category: "My Content" |
| 60 | - Landing page URLs → category: "Landing Pages" |
| 61 | - Social media profiles (if mentioned) → category: "Connect" |
| 62 | |
| 63 | **Option C — User provides partial info:** |
| 64 | Ask for missing required fields. Minimum: user_name + 3 links. |
| 65 | |
| 66 | Organize links by category. Suggested category order: |
| 67 | 1. "Featured Tools" (affiliate product links — money links first) |
| 68 | 2. "My Content" (blog posts, landing pages, videos) |
| 69 | 3. "Connect" (social media, email, website) |
| 70 | |
| 71 | ### Step 2: Build Page |
| 72 | |
| 73 | Read `templates/bio-link.html` for the page structure and all three theme variants. |
| 74 | |
| 75 | Apply the chosen `theme`: |
| 76 | |
| 77 | **Minimal (default):** |
| 78 | - Clean white background, subtle borders |
| 79 | - Dark text, light gray accents |
| 80 | - Rounded corners (12px) |
| 81 | - Best for: professional, clean look |
| 82 | |
| 83 | **Dark:** |
| 84 | - Dark navy background (#0f172a) |
| 85 | - Light text, blue accents |
| 86 | - Subtle card borders |
| 87 | - Best for: tech, gaming, modern brands |
| 88 | |
| 89 | **Gradient:** |
| 90 | - Purple-to-blue gradient background |
| 91 | - White text, frosted-glass link cards |
| 92 | - Large rounded corners (24px) |
| 93 | - Best for: creative, lifestyle, bold brands |
| 94 | |
| 95 | Set CSS variables in `:root` based on the chosen theme. Remove the other theme blocks from the template. |
| 96 | |
| 97 | If `avatar_url` is provided, use an `<img>` tag. Otherwise, use the emoji placeholder div with an emoji matching the user's niche (default: 🚀). |
| 98 | |
| 99 | ### Step 3: Output |
| 100 | |
| 101 | Present the final output in this structure: |
| 102 | |
| 103 | **Part 1: Page Summary** |
| 104 | ``` |
| 105 | --- |
| 106 | BIO LINK PAGE |