Landing Page Generator
Generate high-converting landing pages from a product description. Output complete Next.js/React components with multiple section variants, proven copy frameworks, SEO optimization, and performance-first patterns. Not lorem ipsum — actual copy that converts.
Target: LCP < 1s · CLS < 0.1 · FID < 100ms
Output: TSX components + Tailwind styles + SEO meta + copy variants
Core Capabilities
- 5 hero section variants (centered, split, gradient, video-bg, minimal)
- Feature sections (grid, alternating, cards with icons)
- Pricing tables (2–4 tiers with feature lists and toggle)
- FAQ accordion with schema markup
- Testimonials (grid, carousel, single-quote)
- CTA sections (banner, full-page, inline)
- Footer (simple, mega, minimal)
- 4 design styles with Tailwind class sets
Generation Workflow
Follow these steps in order for every landing page request:
- Gather inputs — collect product name, tagline, audience, pain point, key benefit, pricing tiers, design style, and copy framework using the trigger format below. Ask only for missing fields.
- Analyze brand voice (recommended) — if the user has existing brand content (website copy, blog posts, marketing materials), run it through
marketing-skill/content-production/scripts/brand_voice_analyzer.py.md to get a voice profile (formality, tone, perspective). Use the profile to inform design style and copy framework selection:
- formal + professional → enterprise style, AIDA framework
- casual + friendly → bold-startup style, BAB framework
- professional + authoritative → dark-saas style, PAS framework
- casual + conversational → clean-minimal style, BAB framework
- Select design style — map the user's choice (or infer from brand voice analysis) to one of the four Tailwind class sets in the Design Style Reference.
- Apply copy framework — write all headline and body copy using the chosen framework (PAS / AIDA / BAB) before generating components. Match the voice profile's formality and tone throughout.
- Generate sections in order — Hero → Features → Pricing → FAQ → Testimonials → CTA → Footer. Skip sections not relevant to the product.
- Validate against SEO checklist — run through every item in the SEO Checklist before outputting final code. Fix any gaps inline.
- Output final components — deliver complete, copy-paste-ready TSX files with all Tailwind classes, SEO meta, and structured data included.
Note: Bundled scripts ship as Markdown reference (.md) — copy the code out of the .md file to run it.
Triggering This Skill
Product: [name]
Tagline: [one sentence value prop]
Target audience: [who they are]
Key pain point: [what problem you solve]
Key benefit: [primary outcome]
Pricing tiers: [free/pro/enterprise or describe]
Design style: dark-saas | clean-minimal | bold-startup | enterprise
Copy framework: PAS | AIDA | BAB
Design Style Reference
| Style |
Background |
Accent |
Cards |
CTA Button |
| Dark SaaS |
bg-gray-950 text-white |
violet-500/400 |
bg-gray-900 border border-gray-800 |
bg-violet-600 hover:bg-violet-500 |
| Clean Minimal |
bg-white text-gray-900 |
blue-600 |
bg-gray-50 border border-gray-200 rounded-2xl |
bg-blue-600 hover:bg-blue-700 |
| Bold Startup |
bg-white text-gray-900 |
orange-500 |
shadow-xl rounded-3xl |
bg-orange-500 hover:bg-orange-600 text-white |
| Enterprise |
bg-slate-50 text-slate-900 |
slate-700 |
bg-white border border-slate-200 shadow-sm |
bg-slate-900 hover:bg-slate-800 text-white |
Bold Startup headings: add font-black tracking-tight to all <h1>/<h2> elements.
Copy Frameworks
PAS (Problem → Agitate → Solution)
- H1: Painful state they're in
- Sub: What happens if they don't fix it
- CTA: What you offer
- Example — H1: "Your team wastes 3 hours a day on manual reporting" / Sub: "Every hour spent on spreadsheets is an hour not closing deals. Your competitors are already automated." / CTA: "Automate your reports in 10 minutes →"
AIDA (Attention → Interest → Desire → Action)
- H1: Bold attention-grabbing statement → Sub: Interesting fact or benefit → Features: Desire-building proof points → CTA: Clear action
BAB (Before → After → Bridge)
- H1: "[Before state] → [After state]" → Sub: "Here's how [product] bridges the gap" → Features: How it works (the bridge)
Representative Component: Hero (Centered Gradient — Dark SaaS)
Use this as the structural template for all hero variants. Swap layout classes, gradient direction, and image placement for split, video-bg, and minimal variants.
export function HeroCentered() {
return (
<section className="relative flex min-h-screen flex-col items-center justify-center overflow-hidden bg-gray-950 px-4 text-center">
<div className="absolute inset-0 bg-gradient-to-b from-violet-900/20 to-transparent" />
<div className="pointer-events-none absolute -top-40 left-1/2 h-[600px] w-[600px] -translate-x-1/2 rounded-full bg-violet-600/20 blur-3xl" />
<div className="relative z-10 max-w-4xl">
<div className="mb-6 inline-flex items-center gap-2 rounded-full border border-violet-500/30 bg-violet-500/10 px-4 py-1.5 text-sm text-violet-300">
<span className="h-1.5 w-1.5 rounded-full bg-violet-400" />
Now in public beta
</div>
<h1 className="mb-6 text-5xl font-bold tracking-tight text-white md:text-7xl">
Ship faster.
<br />
<span className="bg-gradient-to-r from-violet-400 to-pink-400 bg-clip-text text-transparent">
Break less.
</span>
</h1>
<p className="mx-auto mb-10 max-w-2xl text-xl text-gray-400">
The deployment platform that catches errors before your users do. Zero config. Instant rollbacks. Real-time
monitoring.
</p>
<div className="flex flex-col items-center gap-4 sm:flex-row sm:justify-center">
<Button size="lg" className="bg-violet-600 text-white hover:bg-violet-500 px-8">
Start free trial
</Button>
<Button size="lg" variant="outline" className="border-gray-700 text-gray-300">
See how it works →
</Button>
</div>
<p className="mt-4 text-sm text-gray-500">No credit card required · 14-day free trial</p>
</div>
</section>
);
}
Other Section Patterns
Feature Section (Alternating)
Map over a features array with { title, description, image, badge }. Toggle layout direction with i % 2 === 1 ? "lg:flex-row-reverse" : "". Use <Image> with explicit width/height and rounded-2xl shadow-xl. Wrap in <section className="py-24"> with max-w-6xl container.
Pricing Table
Map over a plans array with { name, price, description, features[], cta, highlighted }. Highlighted plan gets border-2 border-violet-500 bg-violet-950/50 ring-4 ring-violet-500/20; others get border border-gray-800 bg-gray-900. Render null price as "Custom". Use <Check> icon per feature row. Layout: grid gap-8 lg:grid-cols-3.
FAQ with Schema Markup
Inject FAQPage JSON-LD via <script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }} /> inside the section. Map FAQs with { q, a } into shadcn <Accordion> with type="single" collapsible. Container: max-w-3xl.
Testimonials, CTA, Footer
- Testimonials: Grid (
grid-cols-1 md:grid-cols-3) or single-quote hero block with avatar, name, role, and quote text.
- CTA Banner: Full-width section with headline, subhead, and two buttons (primary + ghost). Add trust signals (money-back guarantee, logo strip) immediately below.
- Footer: Logo + nav columns + social links + legal. Use
border-t border-gray-800 separator.
SEO Checklist
Validation step: Before outputting final code, verify every checklist item above is satisfied. Fix any gaps inline — do not skip items.
Performance Targets
| Metric |
Target |
Technique |
| LCP |
< 1s |
Preload hero image, use priority on Next/Image |
| CLS |
< 0.1 |
Set explicit width/height on all images |
| FID/INP |
< 100ms |
Defer non-critical JS, use loading="lazy" |
| TTFB |
< 200ms |
Use ISR or static generation for landing pages |
| Bundle |
< 100KB JS |
Audit with @next/bundle-analyzer |
Common Pitfalls
- Hero image not preloaded — add
priority prop to first <Image>
- Missing mobile breakpoints — always design mobile-first with
sm: prefixes
- CTA copy too vague — "Get started" beats "Learn more"; "Start free trial" beats "Sign up"
- Pricing page missing trust signals — add money-back guarantee and testimonials near CTA
- No above-the-fold CTA on mobile — ensure button is visible without scrolling on 375px viewport
Related Skills
- Brand Voice Analyzer (
marketing-skill/content-production/scripts/brand_voice_analyzer.py.md) — Run before generation to establish voice profile and ensure copy consistency
- UI Design System (
product-team/ui-design-system/) — Generate design tokens from brand color before building the page
- Competitive Teardown (
product-team/competitive-teardown/) — Competitive positioning informs landing page messaging and differentiation
1---2name: landing-page-generator3description: Generates high-converting landing pages as complete Next.js/React (TSX) components with Tailwind CSS. Creates hero sections, feature grids, pricing tables, FAQ accordions, testimonial blocks, and CTA sections using proven copy frameworks (PAS, AIDA, BAB). Outputs SEO meta tags, structured data, and performance-optimised code targeting Core Web Vitals (LCP < 1s, CLS < 0.1). Use when the user asks to create a landing page, marketing page, homepage, single-page site, lead capture page, campaign page, promo page, or conversion-optimised web page — or when they want to A/B test landing page variants or replace a static page with one designed to convert.4---56# Landing Page Generator78Generate high-converting landing pages from a product description. Output complete Next.js/React components with multiple section variants, proven copy frameworks, SEO optimization, and performance-first patterns. Not lorem ipsum — actual copy that converts.910**Target:** LCP < 1s · CLS < 0.1 · FID < 100ms 11**Output:** TSX components + Tailwind styles + SEO meta + copy variants1213---1415## Core Capabilities1617- 5 hero section variants (centered, split, gradient, video-bg, minimal)18- Feature sections (grid, alternating, cards with icons)19- Pricing tables (2–4 tiers with feature lists and toggle)20- FAQ accordion with schema markup21- Testimonials (grid, carousel, single-quote)22- CTA sections (banner, full-page, inline)23- Footer (simple, mega, minimal)24- 4 design styles with Tailwind class sets2526---2728## Generation Workflow2930Follow these steps in order for every landing page request:31321. **Gather inputs** — collect product name, tagline, audience, pain point, key benefit, pricing tiers, design style, and copy framework using the trigger format below. Ask only for missing fields.332. **Analyze brand voice** (recommended) — if the user has existing brand content (website copy, blog posts, marketing materials), run it through `marketing-skill/content-production/scripts/brand_voice_analyzer.py.md` to get a voice profile (formality, tone, perspective). Use the profile to inform design style and copy framework selection:34 - formal + professional → **enterprise** style, **AIDA** framework35 - casual + friendly → **bold-startup** style, **BAB** framework36 - professional + authoritative → **dark-saas** style, **PAS** framework37 - casual + conversational → **clean-minimal** style, **BAB** framework383. **Select design style** — map the user's choice (or infer from brand voice analysis) to one of the four Tailwind class sets in the Design Style Reference.394. **Apply copy framework** — write all headline and body copy using the chosen framework (PAS / AIDA / BAB) before generating components. Match the voice profile's formality and tone throughout.405. **Generate sections in order** — Hero → Features → Pricing → FAQ → Testimonials → CTA → Footer. Skip sections not relevant to the product.416. **Validate against SEO checklist** — run through every item in the SEO Checklist before outputting final code. Fix any gaps inline.427. **Output final components** — deliver complete, copy-paste-ready TSX files with all Tailwind classes, SEO meta, and structured data included.4344> **Note:** Bundled scripts ship as Markdown reference (`.md`) — copy the code out of the `.md` file to run it.4546---4748## Triggering This Skill4950```51Product: [name]52Tagline: [one sentence value prop]53Target audience: [who they are]54Key pain point: [what problem you solve]55Key benefit: [primary outcome]56Pricing tiers: [free/pro/enterprise or describe]57Design style: dark-saas | clean-minimal | bold-startup | enterprise58Copy framework: PAS | AIDA | BAB59```6061---6263## Design Style Reference6465| Style | Background | Accent | Cards | CTA Button |66| ----------------- | ---------------------------- | ---------------- | ----------------------------------------------- | ---------------------------------------------- |67| **Dark SaaS** | `bg-gray-950 text-white` | `violet-500/400` | `bg-gray-900 border border-gray-800` | `bg-violet-600 hover:bg-violet-500` |68| **Clean Minimal** | `bg-white text-gray-900` | `blue-600` | `bg-gray-50 border border-gray-200 rounded-2xl` | `bg-blue-600 hover:bg-blue-700` |69| **Bold Startup** | `bg-white text-gray-900` | `orange-500` | `shadow-xl rounded-3xl` | `bg-orange-500 hover:bg-orange-600 text-white` |70| **Enterprise** | `bg-slate-50 text-slate-900` | `slate-700` | `bg-white border border-slate-200 shadow-sm` | `bg-slate-900 hover:bg-slate-800 text-white` |7172> **Bold Startup** headings: add `font-black tracking-tight` to all `<h1>`/`<h2>` elements.7374---7576## Copy Frameworks7778**PAS (Problem → Agitate → Solution)**7980- H1: Painful state they're in81- Sub: What happens if they don't fix it82- CTA: What you offer83- _Example — H1:_ "Your team wastes 3 hours a day on manual reporting" / _Sub:_ "Every hour spent on spreadsheets is an hour not closing deals. Your competitors are already automated." / _CTA:_ "Automate your reports in 10 minutes →"8485**AIDA (Attention → Interest → Desire → Action)**8687- H1: Bold attention-grabbing statement → Sub: Interesting fact or benefit → Features: Desire-building proof points → CTA: Clear action8889**BAB (Before → After → Bridge)**9091- H1: "[Before state] → [After state]" → Sub: "Here's how [product] bridges the gap" → Features: How it works (the bridge)9293---9495## Representative Component: Hero (Centered Gradient — Dark SaaS)9697Use this as the structural template for all hero variants. Swap layout classes, gradient direction, and image placement for split, video-bg, and minimal variants.9899```tsx100export function HeroCentered() {101 return (102 <section className="relative flex min-h-screen flex-col items-center justify-center overflow-hidden bg-gray-950 px-4 text-center">103 <div className="absolute inset-0 bg-gradient-to-b from-violet-900/20 to-transparent" />104 <div className="pointer-events-none absolute -top-40 left-1/2 h-[600px] w-[600px] -translate-x-1/2 rounded-full bg-violet-600/20 blur-3xl" />105 <div className="relative z-10 max-w-4xl">106 <div className="mb-6 inline-flex items-center gap-2 rounded-full border border-violet-500/30 bg-violet-500/10 px-4 py-1.5 text-sm text-violet-300">107 <span className="h-1.5 w-1.5 rounded-full bg-violet-400" />108 Now in public beta109 </div>110 <h1 className="mb-6 text-5xl font-bold tracking-tight text-white md:text-7xl">111 Ship faster.112 <br />113 <span className="bg-gradient-to-r from-violet-400 to-pink-400 bg-clip-text text-transparent">114 Break less.115 </span>116 </h1>117 <p className="mx-auto mb-10 max-w-2xl text-xl text-gray-400">118 The deployment platform that catches errors before your users do. Zero config. Instant rollbacks. Real-time119 monitoring.120 </p>121 <div className="flex flex-col items-center gap-4 sm:flex-row sm:justify-center">122 <Button size="lg" className="bg-violet-600 text-white hover:bg-violet-500 px-8">123 Start free trial124 </Button>125 <Button size="lg" variant="outline" className="border-gray-700 text-gray-300">126 See how it works →127 </Button>128 </div>129 <p className="mt-4 text-sm text-gray-500">No credit card required · 14-day free trial</p>130 </div>131 </section>132 );133}134```135136---137138## Other Section Patterns139140### Feature Section (Alternating)141142Map over a `features` array with `{ title, description, image, badge }`. Toggle layout direction with `i % 2 === 1 ? "lg:flex-row-reverse" : ""`. Use `<Image>` with explicit `width`/`height` and `rounded-2xl shadow-xl`. Wrap in `<section className="py-24">` with `max-w-6xl` container.143144### Pricing Table145146Map over a `plans` array with `{ name, price, description, features[], cta, highlighted }`. Highlighted plan gets `border-2 border-violet-500 bg-violet-950/50 ring-4 ring-violet-500/20`; others get `border border-gray-800 bg-gray-900`. Render `null` price as "Custom". Use `<Check>` icon per feature row. Layout: `grid gap-8 lg:grid-cols-3`.147148### FAQ with Schema Markup149150Inject `FAQPage` JSON-LD via `<script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }} />` inside the section. Map FAQs with `{ q, a }` into shadcn `<Accordion>` with `type="single" collapsible`. Container: `max-w-3xl`.151152### Testimonials, CTA, Footer153154- **Testimonials:** Grid (`grid-cols-1 md:grid-cols-3`) or single-quote hero block with avatar, name, role, and quote text.155- **CTA Banner:** Full-width section with headline, subhead, and two buttons (primary + ghost). Add trust signals (money-back guarantee, logo strip) immediately below.156- **Footer:** Logo + nav columns + social links + legal. Use `border-t border-gray-800` separator.157158---159160## SEO Checklist161162- [ ] `<title>` tag: primary keyword + brand (50–60 chars)163- [ ] Meta description: benefit + CTA (150–160 chars)164- [ ] OG image: 1200×630px with product name and tagline165- [ ] H1: one per page, includes primary keyword166- [ ] Structured data: FAQPage, Product, or Organization schema167- [ ] Canonical URL set168- [ ] Image alt text on all `<Image>` components169- [ ] robots.txt and sitemap.xml configured170- [ ] Core Web Vitals: LCP < 1s, CLS < 0.1171- [ ] Mobile viewport meta tag present172- [ ] Internal linking to pricing and docs173174> **Validation step:** Before outputting final code, verify every checklist item above is satisfied. Fix any gaps inline — do not skip items.175176---177178## Performance Targets179180| Metric | Target | Technique |181| ------- | ---------- | ------------------------------------------------ |182| LCP | < 1s | Preload hero image, use `priority` on Next/Image |183| CLS | < 0.1 | Set explicit width/height on all images |184| FID/INP | < 100ms | Defer non-critical JS, use `loading="lazy"` |185| TTFB | < 200ms | Use ISR or static generation for landing pages |186| Bundle | < 100KB JS | Audit with `@next/bundle-analyzer` |187188---189190## Common Pitfalls191192- Hero image not preloaded — add `priority` prop to first `<Image>`193- Missing mobile breakpoints — always design mobile-first with `sm:` prefixes194- CTA copy too vague — "Get started" beats "Learn more"; "Start free trial" beats "Sign up"195- Pricing page missing trust signals — add money-back guarantee and testimonials near CTA196- No above-the-fold CTA on mobile — ensure button is visible without scrolling on 375px viewport197198---199200## Related Skills201202- **Brand Voice Analyzer** (`marketing-skill/content-production/scripts/brand_voice_analyzer.py.md`) — Run before generation to establish voice profile and ensure copy consistency203- **UI Design System** (`product-team/ui-design-system/`) — Generate design tokens from brand color before building the page204- **Competitive Teardown** (`product-team/competitive-teardown/`) — Competitive positioning informs landing page messaging and differentiation