← Back to Skills Marketplace
alirezarezvani

landing-page-generator

by Alireza Rezvani · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
299
Downloads
0
Stars
0
Active Installs
2
Versions
Install in OpenClaw
/install cs-landing-page-generator
Description
Generates high-converting landing pages as complete Next.js/React (TSX) components with Tailwind CSS. Creates hero sections, feature grids, pricing tables, F...
README (SKILL.md)

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 \x3C 1s · CLS \x3C 0.1 · FID \x3C 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:

  1. 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.
  2. 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 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
  3. 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.
  4. 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.
  5. Generate sections in order — Hero → Features → Pricing → FAQ → Testimonials → CTA → Footer. Skip sections not relevant to the product.
  6. Validate against SEO checklist — run through every item in the SEO Checklist before outputting final code. Fix any gaps inline.
  7. Output final components — deliver complete, copy-paste-ready TSX files with all Tailwind classes, SEO meta, and structured data included.

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 \x3Ch1>/\x3Ch2> 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 (
    \x3Csection className="relative flex min-h-screen flex-col items-center justify-center overflow-hidden bg-gray-950 px-4 text-center">
      \x3Cdiv className="absolute inset-0 bg-gradient-to-b from-violet-900/20 to-transparent" />
      \x3Cdiv 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" />
      \x3Cdiv className="relative z-10 max-w-4xl">
        \x3Cdiv 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">
          \x3Cspan className="h-1.5 w-1.5 rounded-full bg-violet-400" />
          Now in public beta
        \x3C/div>
        \x3Ch1 className="mb-6 text-5xl font-bold tracking-tight text-white md:text-7xl">
          Ship faster.\x3Cbr />
          \x3Cspan className="bg-gradient-to-r from-violet-400 to-pink-400 bg-clip-text text-transparent">
            Break less.
          \x3C/span>
        \x3C/h1>
        \x3Cp 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.
        \x3C/p>
        \x3Cdiv className="flex flex-col items-center gap-4 sm:flex-row sm:justify-center">
          \x3CButton size="lg" className="bg-violet-600 text-white hover:bg-violet-500 px-8">
            Start free trial
          \x3C/Button>
          \x3CButton size="lg" variant="outline" className="border-gray-700 text-gray-300">
            See how it works →
          \x3C/Button>
        \x3C/div>
        \x3Cp className="mt-4 text-sm text-gray-500">No credit card required · 14-day free trial\x3C/p>
      \x3C/div>
    \x3C/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 \x3CImage> with explicit width/height and rounded-2xl shadow-xl. Wrap in \x3Csection 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 \x3CCheck> icon per feature row. Layout: grid gap-8 lg:grid-cols-3.

FAQ with Schema Markup

Inject FAQPage JSON-LD via \x3Cscript type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }} /> inside the section. Map FAQs with { q, a } into shadcn \x3CAccordion> 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

  • \x3Ctitle> tag: primary keyword + brand (50–60 chars)
  • Meta description: benefit + CTA (150–160 chars)
  • OG image: 1200×630px with product name and tagline
  • H1: one per page, includes primary keyword
  • Structured data: FAQPage, Product, or Organization schema
  • Canonical URL set
  • Image alt text on all \x3CImage> components
  • robots.txt and sitemap.xml configured
  • Core Web Vitals: LCP \x3C 1s, CLS \x3C 0.1
  • Mobile viewport meta tag present
  • Internal linking to pricing and docs

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 \x3C 1s Preload hero image, use priority on Next/Image
CLS \x3C 0.1 Set explicit width/height on all images
FID/INP \x3C 100ms Defer non-critical JS, use loading="lazy"
TTFB \x3C 200ms Use ISR or static generation for landing pages
Bundle \x3C 100KB JS Audit with @next/bundle-analyzer

Common Pitfalls

  • Hero image not preloaded — add priority prop to first \x3CImage>
  • 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) — 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
Usage Guidance
What to check before installing/using this skill: - Ask the skill author why SKILL.md points to marketing-skill/content-production/scripts/brand_voice_analyzer.py. That path is outside this skill; either the referenced analyzer should be bundled or the SKILL.md should stop instructing cross-skill execution. Running code from other skills or arbitrary paths can expose other data and broaden the attack surface. - Inspect landing_page_scaffolder.py yourself (or have a developer do so). I did not see network calls in the provided excerpts, but confirm there are no uses of requests, urllib, socket, subprocess/os.system, eval/exec, or other code that could exfiltrate data or execute arbitrary commands. - Watch for template injection: generator functions embed user-provided fields (headlines, links, testimonials) directly into TSX. If you supply untrusted HTML/JS in inputs, that can produce unsafe output. Ensure inputs are sanitized/escaped when generating production pages, or treat generator output as code that must be reviewed before deployment. - If you want brand-voice analysis, ask the maintainer to include the analyzer in this skill (or expose a safe API) rather than instructing the agent to run another skill's script by path. That removes the cross-skill access ambiguity. - Run this skill in a sandboxed environment first (no access to production secrets or other skills) and review generated files before publishing them. If the author cannot justify the external script reference or provide the analyzer bundled/verified, consider the instruction a red flag and avoid following that step.
Capability Analysis
Type: OpenClaw Skill Name: cs-landing-page-generator Version: 1.0.0 The skill bundle is designed to generate landing pages, but the core generation script 'scripts/landing_page_scaffolder.py' contains significant injection vulnerabilities. It constructs Next.js/React (TSX) code by directly embedding configuration values (like titles, headlines, and URLs) into strings using f-strings without any sanitization or escaping. This allows for potential Cross-Site Scripting (XSS) or code injection in the generated output if the input data is sourced from untrusted origins. While the behavior is aligned with the stated purpose and lacks evidence of intentional malice, the lack of input sanitization is a critical vulnerability.
Capability Assessment
Purpose & Capability
Name/description align with the assets provided: SKILL.md describes generating TSX + Tailwind and a Python scaffolder (scripts/landing_page_scaffolder.py) is included and appears to produce the claimed components. However, the SKILL.md also instructs the agent to run an external script path (marketing-skill/content-production/scripts/brand_voice_analyzer.py) that is not part of this skill, which is not obviously required to generate components and is an unexpected cross-skill dependency.
Instruction Scope
The SKILL.md instructs the agent to 'run' or use an external script located at marketing-skill/content-production/scripts/brand_voice_analyzer.py to analyse brand voice. That directs the agent to access and execute code outside this skill's bundle (scope creep). The rest of the instructions (collect product inputs, apply copy frameworks, validate against SEO checklist, output TSX) are on-purpose. Also, the included Python templates interpolate user-supplied content into TSX without consistent escaping (escape() exists but many generators embed values directly), which could lead to broken or unsafe generated pages if untrusted inputs are used.
Install Mechanism
No install spec — instruction-only plus one script file. No downloads, package installs, or archives are declared, so nothing will be auto-installed on the host beyond whatever the agent chooses to run. This is lower-risk from an install-mechanism perspective.
Credentials
The skill requests no environment variables, no credentials, and no config paths. That is proportionate to a code-generation/templating tool and reduces risk of secret exfiltration via required env access.
Persistence & Privilege
always:false and no install hooks are present. The skill does not request persistent privileges or automatic inclusion. It also does not declare writes to other skills' configs. The main concern is the instruction to run another skill's script — that could grant broader access at runtime if followed, but the skill itself doesn't request persistent privileges.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install cs-landing-page-generator
  3. After installation, invoke the skill by name or use /cs-landing-page-generator
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial publish (prefixed slug)
v2.1.2
- Expanded documentation in SKILL.md to detail generation workflow, inputs, brand voice analysis, and mapping to design and copy frameworks. - Added comprehensive section and component patterns, including hero, feature, pricing, FAQ (with schema), testimonials, CTA, and footer, all optimized for Next.js/React with Tailwind CSS. - Included SEO and Core Web Vitals targets, plus detailed SEO checklist requirements. - Provided guidance on user prompts to trigger the skill and clarified use cases for marketing and conversion-optimized page generation. - Outlined copy frameworks (PAS, AIDA, BAB) and detailed design style references for precise, consistent outputs.
Metadata
Slug cs-landing-page-generator
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 2
Frequently Asked Questions

What is landing-page-generator?

Generates high-converting landing pages as complete Next.js/React (TSX) components with Tailwind CSS. Creates hero sections, feature grids, pricing tables, F... It is an AI Agent Skill for Claude Code / OpenClaw, with 299 downloads so far.

How do I install landing-page-generator?

Run "/install cs-landing-page-generator" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is landing-page-generator free?

Yes, landing-page-generator is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does landing-page-generator support?

landing-page-generator is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created landing-page-generator?

It is built and maintained by Alireza Rezvani (@alirezarezvani); the current version is v1.0.0.

💬 Comments