> Build a webinar or live event registration page as a self-contained HTML file with countdown "create a webinar sign-up page", "event registration landing page", "live training registration page", "workshop sign-up page", "create a webinar page", "build an event page", "free webinar landing page", "live demo registration page", "online event page", "create a registration page for my webinar", "build a training event page".
npx skills add https://github.com/Affitor/affiliate-skills --skill webinar-registration-page
Build a high-converting webinar or live training registration page as a self-contained HTML file. Features a live JavaScript countdown timer, speaker credibility section, session agenda, social proof, and a registration form that captures email leads. On registration, visitors are confirmed and teased toward the affiliate offer that will be featured in the webinar itself.
Parse the user's request for:
If event details are missing, ask for:
If user has no real event (wants a template/evergreen page):
Common webinar funnel structures:
| Structure | Description | Best for |
|---|---|---|
| Free training → pitch | 45-60 min training, last 15 min pitches affiliate product | High-ticket SaaS, courses |
| Live demo → offer | Demo the product live, include affiliate link in follow-up | Software tools |
| Expert interview → recommendation | Interview + affiliate product recommendation | Authority-building niches |
| Challenge / workshop | Multi-day challenge, affiliate product is the tool | Fitness, marketing, business |
Read references/conversion-principles.md for event page conversion principles.
A webinar registration page must create urgency (countdown), credibility (speaker), and anticipation (agenda) while making registration as frictionless as possible.
Page sections:
10. Second Registration Form — repeat below the fold for scrollers
11. Footer — FTC disclosure, privacy note, Affitor attribution
Affiliate integration in the webinar funnel:
The registration page itself should NOT aggressively sell the affiliate product — that's the webinar's job. But it should:
The countdown timer is the most technically important element. Implement it correctly:
function getEventDate() {
// Replace with actual event timestamp
return new Date('[ISO_DATE_STRING]');
}
function updateCountdown() {
const now = new Date();
const event = getEventDate();
const diff = event - now;
if (diff <= 0) {
document.getElementById('countdown').innerHTML =
'<div class="countdown-ended">The training has started! <a href="[join_url]">Join now →</a></div>';
return;
}
const days = Math.floor(diff / (1000 * 60 * 60 * 24));
const hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));
const seconds = Math.floor((diff % (1000 * 60)) / 1000);
// Update DOM elements
document.getElementById('cd-days').textContent = String(days).padStart(2, '0');
document.getElementById('cd-hours').textContent = String(hours).padStart(2, '0');
document.getElementById('cd-minutes').textContent = String(minutes).padStart(2, '0');
document.getElementById('cd-seconds').textContent = String(seconds).padStart(2, '0');
}
setInterval(updateCountdown, 1000);
updateCountdown();
Evergreen mode (if no real date provided):
function getEventDate() {
const now = new Date();
const daysUntilNext = 5; // Always 5 days away
return new Date(now.getTime() + (daysUntilNext * 24 * 60 * 60 * 1000));
}
Copy requirements:
*Event headline formula:*
*Urgency bar copy:*
*What You'll Learn bullets (outcome-first format):*
*Speaker bio (credibility elements to include):*
*Agenda block format:*
[Time Marker] — [Session Title]
[One sentence description of what happens in this block]
HTML/CSS requirements:
<style> blockRequired elements:
shared/references/affitor-branding.mdPart 1: Page Summary
---
WEBINAR REGISTRATION PAGE
---
Event: [title]
Presenter: [name]
Date/Time: [event date] OR [evergreen mode]
Topic: [what the webinar covers]
Affiliate Product: [product featured in the webinar]
Registration Form: [fields collected]
Post-Registration: [where visitor goes after submitting]
Countdown: [live / evergreen]
Color: [scheme applied]
---
Part 2: Complete HTML
Full file in a fenced code block. Save as [webinar-slug]-registration.html.
Part 3: Setup Instructions
---
SETUP
---
1. Save as `[event-slug]-registration.html`
2. Update the event date: find `[ISO_DATE_STRING]` in the JS and replace with your event's ISO 8601 timestamp
e.g., "2025-04-15T19:00:00-05:00" for April 15, 2025 at 7pm Central
3. Wire the registration form to your webinar platform:
- Zoom Webinars: Use Zoom's registration API or replace form action with Zoom's embed
- Demio: Replace form with Demio's embed code
- StreamYard / YouTube Live: Collect emails with a simple form, send Zoom link via email
- Generic (Mailchimp/ConvertKit): Point form to your ESP, send the webinar link in welcome email
4. Replace post-registration redirect: find `[CONFIRMATION_URL]` and replace with your thank-you page or affiliate link
5. Deploy: Netlify Drop / Vercel / GitHub Pages
---
event: # REQUIRED
title: string # Webinar title
topic: string # What the training covers
date: string # ISO 8601 or "evergreen" for no fixed date
time: string # "7:00 PM Eastern" — human readable
duration_minutes: number # Optional — defaults to 60
presenter: # REQUIRED
name: string
title: string # Job title or credential
bio: string # 2-3 sentences
social_proof: string # "Helped 500+ businesses", "10K+ students", etc.
affiliate_product: # REQUIRED — product featured in the webinar
name: string
url: string # Affiliate link (used in post-registration or post-webinar email)
description: string
reward_value: string
what_you_will_learn: string[] # OPTIONAL — 4-6 bullet points
# Default: auto-generated from topic
agenda: object[] # OPTIONAL — session blocks
- time_marker: string # e.g., "0:00", "Minute 0", "Part 1"
title: string
description: string
testimonials: object[] # OPTIONAL — past attendee quotes
- quote: string
name: string # Can be first name only
result: string
seats_available: number # OPTIONAL — scarcity signal. Default: 100
color_scheme: string # OPTIONAL — "blue" | "green" | "purple" | "orange" | "dark" | hex
# Default: "purple" (webinar industry standard)
webinar_platform: string # OPTIONAL — "zoom" | "demio" | "youtube-live" | "streamyard" | "other"
# Used to customize setup instructions
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
registration_page:
event_title: string
presenter_name: string
event_date: string # "2025-04-15T19:00:00-05:00" or "evergreen"
countdown_mode: string # "live" | "evergreen"
color_scheme: string
html: string
filename: string # e.g., "ai-video-mastery-webinar.html"
funnel:
step_1: string # "Visitor sees registration page"
step_2: string # "Visitor registers (submits email)"
step_3: string # "Visitor attends webinar"
step_4: string # "Affiliate product featured during webinar"
step_5: string # "Visitor clicks affiliate link"
affiliate_integration:
product_name: string
tease_on_page: string # How the product is referenced on the reg page
reveal_in_webinar: string # Suggested moment to introduce the product
deploy:
local: string
platform_specific: string # Instructions for the user's webinar platform
Present as three sections:
Example 1: Standard live webinar
User: "Build a webinar registration page for my free training: 'How to Create AI Videos for YouTube' on April 20 at 7pm EST, I'm promoting HeyGen"
Action: event with real date, presenter=user, affiliate_product=HeyGen, live countdown to April 20, purple theme, full page with teaser of HeyGen in the "what you'll learn" section.
Example 2: Evergreen training
User: "Create an evergreen webinar registration page for a training about email marketing, I'll promote Klaviyo"
Action: countdown_mode=evergreen, topic="email marketing", affiliate_product=Klaviyo, always-on urgency, blue theme.
Example 3: With full details
User: "Webinar reg page — 'The AI Content Strategy That Gets 10K Visitors/Month', Jane Smith presenting, May 5 at 6pm PT, 4-part agenda, promoting Semrush"
Action: Full page with Jane Smith's bio, custom agenda, live countdown to May 5, Semrush teased in agenda item 3, purple theme.
Example 4: Chained from S1
User: "Build a webinar registration page around this product"
Context: S1 returned HeyGen as recommended_program
Action: affiliate_product=HeyGen from S1, auto-generate event title based on HeyGen's main use case, ask for presenter name and event date, then build full page.
references/conversion-principles.md — Event page conversion principles, urgency mechanics, form optimization. Read in Step 2.shared/references/ftc-compliance.md — Event-specific FTC disclosure text. Read in Step 4.shared/references/affitor-branding.md — Footer attribution HTML. Read in Step 4.shared/references/affiliate-glossary.md — Terminology reference.shared/references/flywheel-connections.md — master flywheel connection mapemail-drip-sequence (S5) — registrants enter pre-webinar email sequencebio-link-deployer (S5) — registration page URL for link hubgithub-pages-deployer (S5) — HTML file to deployaffiliate-program-search (S1) — affiliate product to feature in the webinargrand-slam-offer (S4) — offer framing for the webinar pitchvalue-ladder-architect (S4) — webinar as a rung in the value ladderconversion-tracker (S6) measures registration rate and webinar-to-affiliate conversion → optimize registration page and webinar contentBefore delivering output, verify:
Any NO → rewrite before delivering.
chain_metadata:
skill_slug: "webinar-registration-page"
stage: "landing"
timestamp: string
suggested_next:
- "email-drip-sequence"
- "bio-link-deployer"
- "conversion-tracker"
Combine vector and keyword search for improved retrieval. Use when implementing RAG systems, building search engines, or when neither approach alone provides sufficient recall.
Combine vector and keyword search for improved retrieval. Use when implementing RAG systems, building search engines, or when neither approach alone provides sufficient recall.
Combine vector and keyword search for improved retrieval. Use when implementing RAG systems, building search engines, or when neither approach alone provides sufficient recall.
| Automate Twitter/X with posting, engagement, and user management via inference.sh CLI. social media automation, x automation, tweet scheduler, twitter integration, post tweet, twitter post, x post, send tweet
| Query the Sequence Read Archive (SRA), retrieve scientific publications, and analyze genomics metadata using the SRAgent toolkit. Supports accession conversion (GSE→SRX→SRR), BigQuery metadata queries, manuscript downloads from multiple sources, and scRNA-seq technology identification. Use when working with SRA/GEO datasets, finding publications, or analyzing single-cell sequencing experiments.
Framework for building competitive landscape decks — market positioning, competitor deep-dives, comparative analysis, strategic synthesis. Use when the user asks for a competitive landscape, competitor analysis, peer comparison, market positioning assessment, strategic review, or investment memo deck. Also triggers on "who are the competitors to X", "benchmark X against peers", "build a market map", or any request to systematically evaluate competitive dynamics across an industry.
> Analyzes unit economics by product or service using PayPal merchant insights and QuickBooks cost data, benchmarks against inflation and cost changes, and shows pricing-scenario data (e.g. "a 5% increase historically correlates with ~3% volume drop"). Surfaces analysis only — does not recommend a price. Use when the user asks about raising prices, pricing, margin analysis, what to charge, whether costs are eating into profit, or how a price change might affect their business. Trigger even if the user doesn't say "margin" explicitly — phrases like "am I making enough?", "should I charge more?", or "my costs are going up" all call for this skill.
Define a dataset's metadata profile — infer a Frictionless Table Schema from its data, add Data Package metadata (license, sources, keywords), and write it into datasets.json so the showcase renders a typed field table. Extend or customize via the L0-L3 profile ladder. Use when a registered dataset needs field types, constraints, or catalog metadata before publishing.
Take affitor/webinar-registration-page from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.