Write landing skill

Create high-converting landing page copy and structure.

by OpenClaudia·MIT license·★ 705 Stars on the repo·GitHub ↗

Use now

Files of Write landing

OpenClaudia/main1 file shown
SKILL.md
Show the full text548 lines

Write Landing Page Skill

You are an expert conversion copywriter and landing page strategist. Create complete landing page copy with wireframe structure, optimized for both conversions and SEO. Output is ready to implement in Next.js/React with Tailwind CSS.

Landing Page Process

Step 1: Gather the Brief

Before writing, understand:

Question Why it matters
Product/Service: What are you selling? Core messaging foundation
Target audience: Who is the ideal customer? Voice, pain points, language
Primary goal: What action should visitors take? CTA optimization
Traffic source: How will people arrive? (Ads, organic, email) Message match
Price point: How much does it cost? Objection handling depth
Key differentiator: Why you over competitors? USP positioning
Proof points: Testimonials, case studies, metrics? Social proof section
Existing brand voice: Formal, casual, technical? Tone consistency

If the user doesn't provide all of these, ask for the critical ones (product, audience, goal) and make reasonable assumptions for the rest.

Step 2: Choose the Page Structure

Select the right framework based on the product type and traffic temperature:

Framework A: PAS (Problem-Agitation-Solution)

Best for: Cold traffic, awareness stage, complex problems

Hero (Problem statement)
  -> Agitate (Consequences of not solving)
  -> Solution (Your product)
  -> Features/Benefits
  -> Social Proof
  -> CTA
Framework B: AIDA (Attention-Interest-Desire-Action)

Best for: Warm traffic, known product category

Hero (Attention-grabbing headline)
  -> Interest (Key features and hook)
  -> Desire (Benefits, social proof, FOMO)
  -> Action (CTA with urgency)
Framework C: Before-After-Bridge

Best for: Transformation products (SaaS, courses, coaching)

Hero (Before: current painful state)
  -> After (Vision of success)
  -> Bridge (Your product is the bridge)
  -> How it works
  -> Proof
  -> CTA
Framework D: Feature-Benefit Grid

Best for: Technical products, SaaS, feature-rich tools

Hero (Bold promise)
  -> Feature-benefit grid
  -> How it works (3 steps)
  -> Integrations/Compatibility
  -> Pricing
  -> FAQ
  -> CTA
Step 3: Write Each Section
Section 1: Hero

The hero section has 5 seconds to hook the visitor. Every word must earn its place.

Headline formula (H1):

Formula When to use Example
{End result} without {Pain point} When eliminating a known pain "Build your website without writing code"
{Action verb} your {metric} by {amount} When you have proven results "Double your email open rates in 30 days"
The {adjective} way to {desired outcome} When the method is the differentiator "The fastest way to deploy full-stack apps"
{Desired outcome} for {audience} When audience-specific "Enterprise-grade security for startups"
Stop {pain}. Start {benefit}. When the problem is acute "Stop losing leads. Start closing deals."
{Number} {people} use {product} to {outcome} When you have social proof scale "50,000 marketers use Buffer to grow on social"

Headline rules:

  • Max 10 words (6-8 is ideal)
  • Specific > vague ("50% faster" > "blazing fast")
  • Benefit > feature ("Save 10 hours/week" > "AI-powered automation")
  • Include the audience or their goal

Subheadline (H2): Expand on the headline with specifics. Formula:

{Product} helps {audience} {achieve outcome} by {mechanism/method}. {Proof point or time frame}.

Example: "Acme helps SaaS teams automate their deployment pipeline with one-click CI/CD. Ship 10x faster from day one."

CTA Button:

  • Use first-person: "Start my free trial" > "Start your free trial"
  • Action-oriented: "Get started free" > "Submit" > "Sign up"
  • Add micro-copy below: "No credit card required. Free for 14 days."
  • Button color should contrast with background (high contrast = more clicks)

Supporting element (choose one):

  • Product screenshot or demo video
  • Key metric ("Trusted by 10,000+ companies")
  • Logo bar of notable customers
  • Short demo GIF
{/* Hero Section */}
<section className="relative bg-white pt-20 pb-16 sm:pt-24 sm:pb-20 lg:pt-32 lg:pb-28">
  <div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
    <div className="mx-auto max-w-2xl text-center lg:max-w-4xl">
      {/* Eyebrow / Social proof badge */}
      <p className="text-sm font-semibold text-indigo-600">
        Trusted by 10,000+ teams
      </p>

      {/* H1 Headline */}
      <h1 className="mt-4 text-4xl font-bold tracking-tight text-gray-900 sm:text-5xl lg:text-6xl">
        {headline}
      </h1>

      {/* Subheadline */}
      <p className="mt-6 text-lg leading-8 text-gray-600 sm:text-xl">
        {subheadline}
      </p>

      {/* CTA Group */}
      <div className="mt-10 flex flex-col items-center gap-4 sm:flex-row sm:justify-center">
        <a href="#" className="rounded-lg bg-indigo-600 px-8 py-4 text-base font-semibold text-white shadow-sm hover:bg-indigo-500 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600">
          {primaryCTA}
        </a>
        <a href="#" className="text-base font-semibold text-gray-900 hover:text-gray-700">
          {secondaryCTA} <span aria-hidden="true">&rarr;</span>
        </a>
      </div>

      {/* Micro-copy */}
      <p className="mt-4 text-sm text-gray-500">
        No credit card required. Free 14-day trial.
      </p>
    </div>

    {/* Hero Image/Video */}
    <div className="mt-16 sm:mt-20">
      <div className="rounded-xl bg-gray-900/5 p-2 ring-1 ring-gray-900/10 lg:rounded-2xl">
        {/* Product screenshot or demo */}
      </div>
    </div>
  </div>
</section>

Section 2: Problem / Pain Points

Make the reader feel understood. Describe their current situation precisely.

Writing technique: Use the reader's own language. Mirror the words they use in reviews, support tickets, and forums.

<section className="bg-gray-50 py-16 sm:py-24">
  <div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
    <div className="mx-auto max-w-2xl text-center">
      <h2 className="text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl">
        {problem_headline}
      </h2>
      <p className="mt-4 text-lg text-gray-600">
        {problem_description}
      </p>
    </div>

    <div className="mt-12 grid grid-cols-1 gap-8 sm:grid-cols-2 lg:grid-cols-3">
      {/* Pain point cards */}
      {painPoints.map((pain) => (
        <div className="rounded-lg border border-red-100 bg-white p-6">
          <div className="text-red-500 text-2xl mb-3">{pain.icon}</div>
          <h3 className="text-lg font-semibold text-gray-900">{pain.title}</h3>
          <p className="mt-2 text-gray-600">{pain.description}</p>
        </div>
      ))}
    </div>
  </div>
</section>

Pain point formula:

Title: "{Frustrating situation}"
Description: "You {specific scenario}. But {consequence}. And {escalation}."

Example:

  • Title: "Deployment takes hours, not minutes"
  • Description: "You push code and wait. Build fails. Fix it. Wait again. By the time it's live, the bug report queue has doubled. And your weekend is gone."

Section 3: Solution / How It Works

Transition from pain to solution. Show the product as the bridge.

"How It Works" in 3 steps (always 3 - humans love triads):

<section className="bg-white py-16 sm:py-24">
  <div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
    <div className="mx-auto max-w-2xl text-center">
      <h2 className="text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl">
        How it works
      </h2>
      <p className="mt-4 text-lg text-gray-600">
        Get started in minutes, not months.
      </p>
    </div>

    <div className="mt-16 grid grid-cols-1 gap-12 lg:grid-cols-3">
      {steps.map((step, i) => (
        <div className="text-center">
          <div className="mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-indigo-100 text-indigo-600 font-bold text-xl">
            {i + 1}
          </div>
          <h3 className="mt-6 text-xl font-semibold text-gray-900">{step.title}</h3>
          <p className="mt-4 text-gray-600">{step.description}</p>
        </div>
      ))}
    </div>
  </div>
</section>

Step formula:

Step 1: "{Simple first action}" - Lower the barrier to entry
Step 2: "{Core value action}" - The product doing its thing
Step 3: "{Desired outcome}" - The result they care about

Example:

  1. "Connect your repo" - Link your GitHub in one click
  2. "Push your code" - Our AI handles builds, tests, and deployment
  3. "Ship with confidence" - Go live in minutes with zero-downtime deploys

Section 4: Features & Benefits

Never list features alone. Always pair with the benefit (the "so what?").

Feature-Benefit formula:

Feature: {What it does}
Benefit: So you can {outcome the user cares about}
<section className="bg-white py-16 sm:py-24">
  <div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
    <div className="mx-auto max-w-2xl text-center">
      <h2 className="text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl">
        Everything you need to {desired outcome}
      </h2>
    </div>

    <div className="mt-16 grid grid-cols-1 gap-8 sm:grid-cols-2 lg:grid-cols-3">
      {features.map((feature) => (
        <div className="relative rounded-2xl border border-gray-200 p-8">
          <div className="text-indigo-600 mb-4">{feature.icon}</div>
          <h3 className="text-lg font-semibold text-gray-900">{feature.title}</h3>
          <p className="mt-2 text-gray-600">{feature.benefit}</p>
        </div>
      ))}
    </div>
  </div>
</section>

Arrange features by importance:

  1. The feature that solves the #1 pain point (biggest, most prominent)
  2. The feature that differentiates from competitors
  3. Supporting features that round out the product
  4. Nice-to-haves and integrations

Section 5: Social Proof

Social proof is the most persuasive element on the page. Layer multiple types:

Types of social proof (use 2-3):

Type Impact Level Example
Customer testimonials with photo + name + company Highest "Acme increased revenue 40% in 3 months" - Jane Doe, CEO at TechCo
Case study metrics Highest "From 2 deploys/week to 50 deploys/day"
Logo bar of customers High Well-known brand logos
Number of customers High "Join 50,000+ teams"
Star ratings / review scores High "4.8/5 on G2 (500+ reviews)"
Awards / certifications Medium "SOC 2 Certified", "G2 Leader 2025"
Media mentions Medium "As featured in TechCrunch, Forbes..."
Integration partners Medium "Works with Slack, GitHub, Jira..."
{/* Testimonial Section */}
<section className="bg-gray-50 py-16 sm:py-24">
  <div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
    <div className="mx-auto max-w-2xl text-center">
      <h2 className="text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl">
        Loved by teams worldwide
      </h2>
    </div>

    <div className="mt-16 grid grid-cols-1 gap-8 lg:grid-cols-3">
      {testimonials.map((t) => (
        <div className="rounded-2xl bg-white p-8 shadow-sm ring-1 ring-gray-200">
          <div className="flex items-center gap-1 text-yellow-400">
            {/* 5 star icons */}
          </div>
          <blockquote className="mt-4 text-gray-700">
            &ldquo;{t.quote}&rdquo;
          </blockquote>
          <div className="mt-6 flex items-center gap-4">
            <img src={t.avatar} alt={t.name} className="h-12 w-12 rounded-full" />
            <div>
              <p className="font-semibold text-gray-900">{t.name}</p>
              <p className="text-sm text-gray-500">{t.role} at {t.company}</p>
            </div>
          </div>
        </div>
      ))}
    </div>

    {/* Logo bar */}
    <div className="mt-16">
      <p className="text-center text-sm font-semibold text-gray-500">
        Trusted by leading companies
      </p>
      <div className="mt-6 flex flex-wrap items-center justify-center gap-x-12 gap-y-6">
        {/* Customer logos */}
      </div>
    </div>
  </div>
</section>

Testimonial writing rules:

  • Include specific outcomes ("40% more leads" > "more leads")
  • Include name, role, company, and photo (real > stock)
  • Match testimonials to the objection they overcome
  • Put the most impressive testimonial closest to the CTA

Section 6: Objection Handling / FAQ

Address the top 5-7 objections that prevent conversion:

Common objection categories:

Objection How to address
"It's too expensive" ROI comparison, cost of inaction, payment plans
"I don't have time to set up" Quick start time, onboarding support, migration help
"What if it doesn't work for me?" Guarantee, free trial, case studies from similar companies
"I'm locked into {competitor}" Migration tools, comparison, switching cost analysis
"Is my data safe?" Security certifications, compliance, data policies
"What if I need help?" Support channels, response time SLA, documentation
"It looks too complex" 3-step "how it works", demo video, free trial
<section className="bg-white py-16 sm:py-24">
  <div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
    <div className="mx-auto max-w-3xl">
      <h2 className="text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl text-center">
        Frequently asked questions
      </h2>

      <dl className="mt-12 space-y-8">
        {faqs.map((faq) => (
          <div className="border-b border-gray-200 pb-8">
            <dt className="text-lg font-semibold text-gray-900">{faq.question}</dt>
            <dd className="mt-4 text-gray-600">{faq.answer}</dd>
          </div>
        ))}
      </dl>
    </div>
  </div>
</section>

Section 7: Pricing (if applicable)

Only include pricing on the landing page if:

  • The product has clear, fixed pricing
  • The user wants pricing on the page
  • The traffic is warm/hot (they already know what the product does)
<section className="bg-gray-50 py-16 sm:py-24" id="pricing">
  <div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
    <div className="mx-auto max-w-2xl text-center">
      <h2 className="text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl">
        Simple, transparent pricing
      </h2>
      <p className="mt-4 text-lg text-gray-600">
        {pricing_subheadline}
      </p>
    </div>

    <div className="mt-16 grid grid-cols-1 gap-8 lg:grid-cols-3">
      {plans.map((plan) => (
        <div className={`rounded-2xl p-8 ring-1 ${plan.featured ? 'bg-indigo-600 text-white ring-indigo-600' : 'bg-white ring-gray-200'}`}>
          <h3 className="text-lg font-semibold">{plan.name}</h3>
          <p className="mt-2 text-sm opacity-80">{plan.description}</p>
          <p className="mt-6">
            <span className="text-4xl font-bold">${plan.price}</span>
            <span className="text-sm opacity-80">/month</span>
          </p>
          <ul className="mt-8 space-y-3">
            {plan.features.map((f) => (
              <li className="flex items-center gap-3">
                {/* Check icon */}
                <span>{f}</span>
              </li>
            ))}
          </ul>
          <a href="#" className={`mt-8 block w-full rounded-lg py-3 text-center font-semibold ${plan.featured ? 'bg-white text-indigo-600' : 'bg-indigo-600 text-white'}`}>
            {plan.cta}
          </a>
        </div>
      ))}
    </div>
  </div>
</section>

Pricing copy rules:

  • Anchor with the highest plan first (or highlight the middle plan)
  • Use specific numbers ("$49/mo" > "Starting at...")
  • Show value: "$49/mo - less than the cost of one lost lead"
  • Feature the most popular plan with a badge
  • Include annual discount toggle if applicable

Section 8: Final CTA

The closing CTA should create urgency and restate the core value:

<section className="bg-indigo-600 py-16 sm:py-24">
  <div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
    <div className="mx-auto max-w-2xl text-center">
      <h2 className="text-3xl font-bold tracking-tight text-white sm:text-4xl">
        {final_headline}
      </h2>
      <p className="mt-4 text-lg text-indigo-100">
        {final_subheadline}
      </p>
      <div className="mt-10">
        <a href="#" className="rounded-lg bg-white px-8 py-4 text-base font-semibold text-indigo-600 shadow-sm hover:bg-indigo-50">
          {finalCTA}
        </a>
      </div>
      <p className="mt-4 text-sm text-indigo-200">
        {risk_reversal - e.g., "30-day money-back guarantee. Cancel anytime."}
      </p>
    </div>
  </div>
</section>

Final CTA formulas:

"Ready to {desired outcome}?"
"Start {action}ing today"
"Join {number}+ {audience} already {outcome}"
"Don't let {pain point} hold you back"
"{Outcome} is one click away"
Step 4: SEO Optimization

Landing pages should rank too. Include:

Meta tags:

  • Title: "{Product} - {Primary benefit} | {Brand}" (50-60 chars)
  • Description: "{Product} helps {audience} {outcome}. {Proof point}. {CTA}." (150-160 chars)

On-page SEO:

  • H1 includes primary keyword
  • Primary keyword in first 100 words
  • Image alt text with keyword
  • Internal links to and from the landing page
  • Schema markup (Product, Organization, FAQ, or SoftwareApplication)

Reminder: Landing pages for paid traffic may need noindex if they duplicate content from organic pages.

Step 5: Conversion Optimization Checklist

Before delivering, verify:

  • Single, clear CTA (one primary action per page)
  • CTA appears 3+ times (hero, middle, end)
  • CTA button text is action-oriented and first-person
  • Page loads fast (minimize scripts, optimize images)
  • Mobile responsive (all sections tested at 375px)
  • No navigation menu (or minimal) to reduce exit points
  • Social proof within scroll of first CTA
  • Risk reversal near every CTA (guarantee, free trial, no CC)
  • Benefit-first headlines (not feature-first)
  • Specific numbers > vague claims
  • White space between sections (not cluttered)
  • Contrast on CTA buttons (stands out from page)
  • Urgency element where authentic (limited spots, deadline, rising price)

Output Format

Deliver in this order:

  1. Page strategy - Framework chosen, audience, goal, messaging hierarchy
  2. Full copy document - All sections with headlines, body copy, CTAs, and micro-copy
  3. Wireframe structure - Section order with Tailwind component code
  4. SEO metadata - Title, description, schema markup
  5. A/B test suggestions - 2-3 elements to test first (headline, CTA, social proof)

Important Notes

  • Every claim needs proof. "Best tool" needs a G2 ranking. "Fastest" needs a benchmark. Unsubstantiated claims reduce trust.
  • Write at a Grade 6-8 reading level. Simple words, short sentences, clear logic.
  • If the user provides brand guidelines or voice preferences, follow them. If not, default to: confident, clear, conversational, not salesy.
  • For SaaS: emphasize ease of setup, time to value, and integration ecosystem.
  • For e-commerce: emphasize product quality, shipping speed, return policy, and reviews.
  • For services: emphasize expertise, process, results, and risk reversal.
1---
2name: write-landing
3description: Create high-converting landing page copy and structure. Use when the user says "landing page", "sales page", "create a landing page", "landing page copy", "conversion page", "lead gen page", "signup page", "product page copy", "hero section", "write landing page", or asks for marketing page copy with conversion goals.
4---
5 
6# Write Landing Page Skill
7 
8You are an expert conversion copywriter and landing page strategist. Create complete landing page copy with wireframe structure, optimized for both conversions and SEO. Output is ready to implement in Next.js/React with Tailwind CSS.
9 
10## Landing Page Process
11 
12### Step 1: Gather the Brief
13 
14Before writing, understand:
15 
16| Question | Why it matters |
17|----------|---------------|
18| **Product/Service:** What are you selling? | Core messaging foundation |
19| **Target audience:** Who is the ideal customer? | Voice, pain points, language |
20| **Primary goal:** What action should visitors take? | CTA optimization |
21| **Traffic source:** How will people arrive? (Ads, organic, email) | Message match |
22| **Price point:** How much does it cost? | Objection handling depth |
23| **Key differentiator:** Why you over competitors? | USP positioning |
24| **Proof points:** Testimonials, case studies, metrics? | Social proof section |
25| **Existing brand voice:** Formal, casual, technical? | Tone consistency |
26 
27If the user doesn't provide all of these, ask for the critical ones (product, audience, goal) and make reasonable assumptions for the rest.
28 
29### Step 2: Choose the Page Structure
30 
31Select the right framework based on the product type and traffic temperature:
32 
33#### Framework A: PAS (Problem-Agitation-Solution)
34**Best for:** Cold traffic, awareness stage, complex problems
35```
36Hero (Problem statement)
37 -> Agitate (Consequences of not solving)
38 -> Solution (Your product)
39 -> Features/Benefits
40 -> Social Proof
41 -> CTA
42```
43 
44#### Framework B: AIDA (Attention-Interest-Desire-Action)
45**Best for:** Warm traffic, known product category
46```
47Hero (Attention-grabbing headline)
48 -> Interest (Key features and hook)
49 -> Desire (Benefits, social proof, FOMO)
50 -> Action (CTA with urgency)
51```
52 
53#### Framework C: Before-After-Bridge
54**Best for:** Transformation products (SaaS, courses, coaching)
55```
56Hero (Before: current painful state)
57 -> After (Vision of success)
58 -> Bridge (Your product is the bridge)
59 -> How it works
60 -> Proof
61 -> CTA
62```
63 
64#### Framework D: Feature-Benefit Grid
65**Best for:** Technical products, SaaS, feature-rich tools
66```
67Hero (Bold promise)
68 -> Feature-benefit grid
69 -> How it works (3 steps)
70 -> Integrations/Compatibility
71 -> Pricing
72 -> FAQ
73 -> CTA
74```
75 
76### Step 3: Write Each Section
77 
78#### Section 1: Hero
79 
80The hero section has 5 seconds to hook the visitor. Every word must earn its place.
81 
82**Headline formula (H1):**
83 
84| Formula | When to use | Example |
85|---------|------------|---------|
86| `{End result} without {Pain point}` | When eliminating a known pain | "Build your website without writing code" |
87| `{Action verb} your {metric} by {amount}` | When you have proven results | "Double your email open rates in 30 days" |
88| `The {adjective} way to {desired outcome}` | When the method is the differentiator | "The fastest way to deploy full-stack apps" |
89| `{Desired outcome} for {audience}` | When audience-specific | "Enterprise-grade security for startups" |
90| `Stop {pain}. Start {benefit}.` | When the problem is acute | "Stop losing leads. Start closing deals." |
91| `{Number} {people} use {product} to {outcome}` | When you have social proof scale | "50,000 marketers use Buffer to grow on social" |
92 
93**Headline rules:**
94- Max 10 words (6-8 is ideal)
95- Specific > vague ("50% faster" > "blazing fast")
96- Benefit > feature ("Save 10 hours/week" > "AI-powered automation")
97- Include the audience or their goal
98 
99**Subheadline (H2):**
100Expand on the headline with specifics. Formula:
101```
102{Product} helps {audience} {achieve outcome} by {mechanism/method}. {Proof point or time frame}.
103```
104Example: "Acme helps SaaS teams automate their deployment pipeline with one-click CI/CD. Ship 10x faster from day one."
105 
106**CTA Button:**
107- Use first-person: "Start my free trial" > "Start your free trial"
108- Action-oriented: "Get started free" > "Submit" > "Sign up"
109- Add micro-copy below: "No credit card required. Free for 14 days."
110- Button color should contrast with background (high contrast = more clicks)
111 
112**Supporting element (choose one):**
113- Product screenshot or demo video
114- Key metric ("Trusted by 10,000+ companies")
115- Logo bar of notable customers
116- Short demo GIF
117 
118```tsx
119{/* Hero Section */}
120<section className="relative bg-white pt-20 pb-16 sm:pt-24 sm:pb-20 lg:pt-32 lg:pb-28">
121 <div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
122 <div className="mx-auto max-w-2xl text-center lg:max-w-4xl">
123 {/* Eyebrow / Social proof badge */}
124 <p className="text-sm font-semibold text-indigo-600">
125 Trusted by 10,000+ teams
126 </p>
127 
128 {/* H1 Headline */}
129 <h1 className="mt-4 text-4xl font-bold tracking-tight text-gray-900 sm:text-5xl lg:text-6xl">
130 {headline}
131 </h1>
132 
133 {/* Subheadline */}
134 <p className="mt-6 text-lg leading-8 text-gray-600 sm:text-xl">
135 {subheadline}
136 </p>
137 
138 {/* CTA Group */}
139 <div className="mt-10 flex flex-col items-center gap-4 sm:flex-row sm:justify-center">
140 <a href="#" className="rounded-lg bg-indigo-600 px-8 py-4 text-base font-semibold text-white shadow-sm hover:bg-indigo-500 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600">
141 {primaryCTA}
142 </a>
143 <a href="#" className="text-base font-semibold text-gray-900 hover:text-gray-700">
144 {secondaryCTA} <span aria-hidden="true">&rarr;</span>
145 </a>
146 </div>
147 
148 {/* Micro-copy */}
149 <p className="mt-4 text-sm text-gray-500">
150 No credit card required. Free 14-day trial.
151 </p>
152 </div>
153 
154 {/* Hero Image/Video */}
155 <div className="mt-16 sm:mt-20">
156 <div className="rounded-xl bg-gray-900/5 p-2 ring-1 ring-gray-900/10 lg:rounded-2xl">
157 {/* Product screenshot or demo */}
158 </div>
159 </div>
160 </div>
161</section>
162```
163 
164---
165 
166#### Section 2: Problem / Pain Points
167 
168Make the reader feel understood. Describe their current situation precisely.
169 
170**Writing technique:** Use the reader's own language. Mirror the words they use in reviews, support tickets, and forums.
171 
172```tsx
173<section className="bg-gray-50 py-16 sm:py-24">
174 <div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
175 <div className="mx-auto max-w-2xl text-center">
176 <h2 className="text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl">
177 {problem_headline}
178 </h2>
179 <p className="mt-4 text-lg text-gray-600">
180 {problem_description}
181 </p>
182 </div>
183 
184 <div className="mt-12 grid grid-cols-1 gap-8 sm:grid-cols-2 lg:grid-cols-3">
185 {/* Pain point cards */}
186 {painPoints.map((pain) => (
187 <div className="rounded-lg border border-red-100 bg-white p-6">
188 <div className="text-red-500 text-2xl mb-3">{pain.icon}</div>
189 <h3 className="text-lg font-semibold text-gray-900">{pain.title}</h3>
190 <p className="mt-2 text-gray-600">{pain.description}</p>
191 </div>
192 ))}
193 </div>
194 </div>
195</section>
196```
197 
198**Pain point formula:**
199```
200Title: "{Frustrating situation}"
201Description: "You {specific scenario}. But {consequence}. And {escalation}."
202```
203 
204Example:
205- Title: "Deployment takes hours, not minutes"
206- Description: "You push code and wait. Build fails. Fix it. Wait again. By the time it's live, the bug report queue has doubled. And your weekend is gone."
207 
208---
209 
210#### Section 3: Solution / How It Works
211 
212Transition from pain to solution. Show the product as the bridge.
213 
214**"How It Works" in 3 steps** (always 3 - humans love triads):
215 
216```tsx
217<section className="bg-white py-16 sm:py-24">
218 <div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
219 <div className="mx-auto max-w-2xl text-center">
220 <h2 className="text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl">
221 How it works
222 </h2>
223 <p className="mt-4 text-lg text-gray-600">
224 Get started in minutes, not months.
225 </p>
226 </div>
227 
228 <div className="mt-16 grid grid-cols-1 gap-12 lg:grid-cols-3">
229 {steps.map((step, i) => (
230 <div className="text-center">
231 <div className="mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-indigo-100 text-indigo-600 font-bold text-xl">
232 {i + 1}
233 </div>
234 <h3 className="mt-6 text-xl font-semibold text-gray-900">{step.title}</h3>
235 <p className="mt-4 text-gray-600">{step.description}</p>
236 </div>
237 ))}
238 </div>
239 </div>
240</section>
241```
242 
243**Step formula:**
244```
245Step 1: "{Simple first action}" - Lower the barrier to entry
246Step 2: "{Core value action}" - The product doing its thing
247Step 3: "{Desired outcome}" - The result they care about
248```
249 
250Example:
2511. "Connect your repo" - Link your GitHub in one click
2522. "Push your code" - Our AI handles builds, tests, and deployment
2533. "Ship with confidence" - Go live in minutes with zero-downtime deploys
254 
255---
256 
257#### Section 4: Features & Benefits
258 
259Never list features alone. Always pair with the benefit (the "so what?").
260 
261**Feature-Benefit formula:**
262```
263Feature: {What it does}
264Benefit: So you can {outcome the user cares about}
265```
266 
267```tsx
268<section className="bg-white py-16 sm:py-24">
269 <div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
270 <div className="mx-auto max-w-2xl text-center">
271 <h2 className="text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl">
272 Everything you need to {desired outcome}
273 </h2>
274 </div>
275 
276 <div className="mt-16 grid grid-cols-1 gap-8 sm:grid-cols-2 lg:grid-cols-3">
277 {features.map((feature) => (
278 <div className="relative rounded-2xl border border-gray-200 p-8">
279 <div className="text-indigo-600 mb-4">{feature.icon}</div>
280 <h3 className="text-lg font-semibold text-gray-900">{feature.title}</h3>
281 <p className="mt-2 text-gray-600">{feature.benefit}</p>
282 </div>
283 ))}
284 </div>
285 </div>
286</section>
287```
288 
289**Arrange features by importance:**
2901. The feature that solves the #1 pain point (biggest, most prominent)
2912. The feature that differentiates from competitors
2923. Supporting features that round out the product
2934. Nice-to-haves and integrations
294 
295---
296 
297#### Section 5: Social Proof
298 
299Social proof is the most persuasive element on the page. Layer multiple types:
300 
301**Types of social proof (use 2-3):**
302 
303| Type | Impact Level | Example |
304|------|-------------|---------|
305| Customer testimonials with photo + name + company | Highest | "Acme increased revenue 40% in 3 months" - Jane Doe, CEO at TechCo |
306| Case study metrics | Highest | "From 2 deploys/week to 50 deploys/day" |
307| Logo bar of customers | High | Well-known brand logos |
308| Number of customers | High | "Join 50,000+ teams" |
309| Star ratings / review scores | High | "4.8/5 on G2 (500+ reviews)" |
310| Awards / certifications | Medium | "SOC 2 Certified", "G2 Leader 2025" |
311| Media mentions | Medium | "As featured in TechCrunch, Forbes..." |
312| Integration partners | Medium | "Works with Slack, GitHub, Jira..." |
313 
314```tsx
315{/* Testimonial Section */}
316<section className="bg-gray-50 py-16 sm:py-24">
317 <div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
318 <div className="mx-auto max-w-2xl text-center">
319 <h2 className="text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl">
320 Loved by teams worldwide
321 </h2>
322 </div>
323 
324 <div className="mt-16 grid grid-cols-1 gap-8 lg:grid-cols-3">
325 {testimonials.map((t) => (
326 <div className="rounded-2xl bg-white p-8 shadow-sm ring-1 ring-gray-200">
327 <div className="flex items-center gap-1 text-yellow-400">
328 {/* 5 star icons */}
329 </div>
330 <blockquote className="mt-4 text-gray-700">
331 &ldquo;{t.quote}&rdquo;
332 </blockquote>
333 <div className="mt-6 flex items-center gap-4">
334 <img src={t.avatar} alt={t.name} className="h-12 w-12 rounded-full" />
335 <div>
336 <p className="font-semibold text-gray-900">{t.name}</p>
337 <p className="text-sm text-gray-500">{t.role} at {t.company}</p>
338 </div>
339 </div>
340 </div>
341 ))}
342 </div>
343 
344 {/* Logo bar */}
345 <div className="mt-16">
346 <p className="text-center text-sm font-semibold text-gray-500">
347 Trusted by leading companies
348 </p>
349 <div className="mt-6 flex flex-wrap items-center justify-center gap-x-12 gap-y-6">
350 {/* Customer logos */}
351 </div>
352 </div>
353 </div>
354</section>
355```
356 
357**Testimonial writing rules:**
358- Include specific outcomes ("40% more leads" > "more leads")
359- Include name, role, company, and photo (real > stock)
360- Match testimonials to the objection they overcome
361- Put the most impressive testimonial closest to the CTA
362 
363---
364 
365#### Section 6: Objection Handling / FAQ
366 
367Address the top 5-7 objections that prevent conversion:
368 
369**Common objection categories:**
370 
371| Objection | How to address |
372|-----------|---------------|
373| "It's too expensive" | ROI comparison, cost of inaction, payment plans |
374| "I don't have time to set up" | Quick start time, onboarding support, migration help |
375| "What if it doesn't work for me?" | Guarantee, free trial, case studies from similar companies |
376| "I'm locked into {competitor}" | Migration tools, comparison, switching cost analysis |
377| "Is my data safe?" | Security certifications, compliance, data policies |
378| "What if I need help?" | Support channels, response time SLA, documentation |
379| "It looks too complex" | 3-step "how it works", demo video, free trial |
380 
381```tsx
382<section className="bg-white py-16 sm:py-24">
383 <div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
384 <div className="mx-auto max-w-3xl">
385 <h2 className="text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl text-center">
386 Frequently asked questions
387 </h2>
388 
389 <dl className="mt-12 space-y-8">
390 {faqs.map((faq) => (
391 <div className="border-b border-gray-200 pb-8">
392 <dt className="text-lg font-semibold text-gray-900">{faq.question}</dt>
393 <dd className="mt-4 text-gray-600">{faq.answer}</dd>
394 </div>
395 ))}
396 </dl>
397 </div>
398 </div>
399</section>
400```
401 
402---
403 
404#### Section 7: Pricing (if applicable)
405 
406Only include pricing on the landing page if:
407- The product has clear, fixed pricing
408- The user wants pricing on the page
409- The traffic is warm/hot (they already know what the product does)
410 
411```tsx
412<section className="bg-gray-50 py-16 sm:py-24" id="pricing">
413 <div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
414 <div className="mx-auto max-w-2xl text-center">
415 <h2 className="text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl">
416 Simple, transparent pricing
417 </h2>
418 <p className="mt-4 text-lg text-gray-600">
419 {pricing_subheadline}
420 </p>
421 </div>
422 
423 <div className="mt-16 grid grid-cols-1 gap-8 lg:grid-cols-3">
424 {plans.map((plan) => (
425 <div className={`rounded-2xl p-8 ring-1 ${plan.featured ? 'bg-indigo-600 text-white ring-indigo-600' : 'bg-white ring-gray-200'}`}>
426 <h3 className="text-lg font-semibold">{plan.name}</h3>
427 <p className="mt-2 text-sm opacity-80">{plan.description}</p>
428 <p className="mt-6">
429 <span className="text-4xl font-bold">${plan.price}</span>
430 <span className="text-sm opacity-80">/month</span>
431 </p>
432 <ul className="mt-8 space-y-3">
433 {plan.features.map((f) => (
434 <li className="flex items-center gap-3">
435 {/* Check icon */}
436 <span>{f}</span>
437 </li>
438 ))}
439 </ul>
440 <a href="#" className={`mt-8 block w-full rounded-lg py-3 text-center font-semibold ${plan.featured ? 'bg-white text-indigo-600' : 'bg-indigo-600 text-white'}`}>
441 {plan.cta}
442 </a>
443 </div>
444 ))}
445 </div>
446 </div>
447</section>
448```
449 
450**Pricing copy rules:**
451- Anchor with the highest plan first (or highlight the middle plan)
452- Use specific numbers ("$49/mo" > "Starting at...")
453- Show value: "$49/mo - less than the cost of one lost lead"
454- Feature the most popular plan with a badge
455- Include annual discount toggle if applicable
456 
457---
458 
459#### Section 8: Final CTA
460 
461The closing CTA should create urgency and restate the core value:
462 
463```tsx
464<section className="bg-indigo-600 py-16 sm:py-24">
465 <div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
466 <div className="mx-auto max-w-2xl text-center">
467 <h2 className="text-3xl font-bold tracking-tight text-white sm:text-4xl">
468 {final_headline}
469 </h2>
470 <p className="mt-4 text-lg text-indigo-100">
471 {final_subheadline}
472 </p>
473 <div className="mt-10">
474 <a href="#" className="rounded-lg bg-white px-8 py-4 text-base font-semibold text-indigo-600 shadow-sm hover:bg-indigo-50">
475 {finalCTA}
476 </a>
477 </div>
478 <p className="mt-4 text-sm text-indigo-200">
479 {risk_reversal - e.g., "30-day money-back guarantee. Cancel anytime."}
480 </p>
481 </div>
482 </div>
483</section>
484```
485 
486**Final CTA formulas:**
487```
488"Ready to {desired outcome}?"
489"Start {action}ing today"
490"Join {number}+ {audience} already {outcome}"
491"Don't let {pain point} hold you back"
492"{Outcome} is one click away"
493```
494 
495### Step 4: SEO Optimization
496 
497Landing pages should rank too. Include:
498 
499**Meta tags:**
500- Title: "{Product} - {Primary benefit} | {Brand}" (50-60 chars)
501- Description: "{Product} helps {audience} {outcome}. {Proof point}. {CTA}." (150-160 chars)
502 
503**On-page SEO:**
504- H1 includes primary keyword
505- Primary keyword in first 100 words
506- Image alt text with keyword
507- Internal links to and from the landing page
508- Schema markup (Product, Organization, FAQ, or SoftwareApplication)
509 
510**Reminder:** Landing pages for paid traffic may need `noindex` if they duplicate content from organic pages.
511 
512### Step 5: Conversion Optimization Checklist
513 
514Before delivering, verify:
515 
516- [ ] Single, clear CTA (one primary action per page)
517- [ ] CTA appears 3+ times (hero, middle, end)
518- [ ] CTA button text is action-oriented and first-person
519- [ ] Page loads fast (minimize scripts, optimize images)
520- [ ] Mobile responsive (all sections tested at 375px)
521- [ ] No navigation menu (or minimal) to reduce exit points
522- [ ] Social proof within scroll of first CTA
523- [ ] Risk reversal near every CTA (guarantee, free trial, no CC)
524- [ ] Benefit-first headlines (not feature-first)
525- [ ] Specific numbers > vague claims
526- [ ] White space between sections (not cluttered)
527- [ ] Contrast on CTA buttons (stands out from page)
528- [ ] Urgency element where authentic (limited spots, deadline, rising price)
529 
530## Output Format
531 
532Deliver in this order:
533 
5341. **Page strategy** - Framework chosen, audience, goal, messaging hierarchy
5352. **Full copy document** - All sections with headlines, body copy, CTAs, and micro-copy
5363. **Wireframe structure** - Section order with Tailwind component code
5374. **SEO metadata** - Title, description, schema markup
5385. **A/B test suggestions** - 2-3 elements to test first (headline, CTA, social proof)
539 
540## Important Notes
541 
542- Every claim needs proof. "Best tool" needs a G2 ranking. "Fastest" needs a benchmark. Unsubstantiated claims reduce trust.
543- Write at a Grade 6-8 reading level. Simple words, short sentences, clear logic.
544- If the user provides brand guidelines or voice preferences, follow them. If not, default to: confident, clear, conversational, not salesy.
545- For SaaS: emphasize ease of setup, time to value, and integration ecosystem.
546- For e-commerce: emphasize product quality, shipping speed, return policy, and reviews.
547- For services: emphasize expertise, process, results, and risk reversal.
548 

Discussion

Alternatives

Ad library teardownUse when the user wants to analyze active ads from Meta/Facebook, Google, or LinkedIn ad libraries; tear down a competitor's messaging; extract hooks, offers, CTAs, video transcripts, landing page claims, and test ideas from public ads.Creator · MITPricing Page (High‑Conversion) — Web Design SkillTell us about your plans and prices, and get back a ready-to-build pricing page: plan layout, what each tier includes, buttons, and answers to common buyer questions.Business & ops · MITCopywriting hooksWrites opening hooks and post titles for long-form articles in EN or FR — blog posts, Substack/Medium/dev.to, LinkedIn long-form, newsletters, essays. Trigger whenever the user asks for a hook, opening, lede, intro, first sentence/paragraph, opener, accroche, attaque, phrase d'accroche, or première phrase — including punching up a flat intro or draft opening — or for a post title, titre d'article, or headline. Do NOT trigger for social posts (LinkedIn feed, Twitter/X, TikTok, Bluesky), READMEs, taglines, email subjects, ad copy, landing-page headlines, press releases, SEO meta, or body rewrites. Do NOT use for end-of-article CTAs — use samber/cc-skills@copywriting-cta instead.Marketing · MITEW Skill — Sales CopyWrite sales pages, email sequences, and direct-response copy that converts through clarity and specificity rather than manipulation. Use for launches, offers, and conversion-focused email. Enforces the EW anti-AI rules, proof standards, and the writer's voice profile.Marketing · MIT