landing-page-design

We need to translate the given text from English to French. The text is a description of an agent skill for landing page design. We must preserve the name "landing-page-design" but it's not in the text, so we don't include it. We translate only the text inside <text>. No extra labels. Keep technical terms like "CTA", "F-pattern", "SaaS", etc. as is or translate if appropriate? The instruction says preserve technical terms, so "CTA" stays, "F-pattern" might be kept or translated? Usually "F-pattern" is a known term, but in French it might be "motif en F" or keep as is. Since it's a technical term, I'll keep "F-pattern" as is. "above-the-fold" is a term, often kept as "above-the-fold" or "au-dessus de la ligne de flottaison". I'll keep as "above-the-fold" for consistency. "social proof" -> "preuve sociale". "mobile design" -> "conception mobile

npx skills add https://github.com/halt-catch-fire/skills --skill landing-page-design

Install the belt CLI skill: npx skills add belt-sh/cli

Landing Page Design

Design high-converting landing pages with AI-generated visuals via inference.sh CLI.

Quick Start

Requires inference.sh CLI (belt). Install instructions

belt login

# Generate a hero image
belt app run falai/flux-dev-lora --input '{
  "prompt": "professional person smiling while using a laptop showing a clean dashboard interface, bright modern office, natural lighting, warm and productive atmosphere, lifestyle marketing photography",
  "width": 1248,
  "height": 832
}'

# Research competitor landing pages
belt app run tavily/search-assistant --input '{
  "query": "best SaaS landing page examples 2024 conversion rate"
}'

Above-the-Fold Formula

Everything visible before scrolling must communicate value in 5 seconds.

┌─────────────────────────────────────────────────┐
│  [Logo]              [Nav]        [CTA Button]  │
│                                                 │
│   Headline (6-12 words)                         │
│   ─────────────────────────                     │
│   Subheadline (15-25 words)        [Hero Image] │
│                                    showing the  │
│   [Primary CTA Button]            OUTCOME, not  │
│   "Start Free Trial"              the product   │
│                                                 │
│   Social proof: "Trusted by 10,000+ teams"      │
│   [logo] [logo] [logo] [logo] [logo]            │
└─────────────────────────────────────────────────┘

The 5 Elements

ElementRuleExample
Headline6-12 words, states the outcome"Ship docs in minutes, not days"
Subheadline15-25 words, expands on how"AI-powered documentation that writes itself from your codebase. No templates needed."
Hero imageShows the OUTCOME, not the productPerson looking satisfied at results, not a screenshot of your UI
Primary CTAAction verb + value"Start Free Trial" not "Submit" or "Learn More"
Social proofLogos, count, or micro-testimonial"Trusted by 10,000+ teams at [logos]"

Headlines

Formulas That Convert

FormulaExample
[Outcome] without [pain]"Beautiful docs without the design skills"
[Outcome] in [timeframe]"Launch your site in 5 minutes"
The [better way] to [common task]"The faster way to build APIs"
Stop [pain]. Start [outcome]."Stop guessing. Start knowing."
[Number] [things] to [outcome]"One tool to manage all your data"

What Makes Headlines Fail

❌ "Welcome to Our Platform" (says nothing about value)
❌ "The World's Most Advanced AI-Powered Solution" (buzzwords, no specifics)
❌ "We Help Businesses Grow" (vague, generic)
❌ "Next-Generation Enterprise Software" (what does it DO?)

✅ "Turn customer feedback into product features, automatically"
✅ "The spreadsheet that thinks like a database"
✅ "Find and fix bugs before your users do"

Hero Images

Show the Outcome, Not the Product

❌ Screenshot of your dashboard (boring, hard to parse at a glance)
❌ Abstract geometric background (says nothing)
❌ Stock photo of a handshake (cliché)

✅ Person looking satisfied at clear results on their screen
✅ Before/after transformation
✅ The end result of using your product
# Outcome-focused hero
belt app run falai/flux-dev-lora --input '{
  "prompt": "happy professional team celebrating around a laptop showing positive growth charts, bright modern office, natural sunlight, authentic candid moment, marketing photography style, warm tones",
  "width": 1248,
  "height": 832
}'

# Product-in-context hero
belt app run bytedance/seedream-4-5 --input '{
  "prompt": "clean modern laptop on a minimalist desk showing a beautiful analytics dashboard, floating UI elements emerging from the screen, soft gradient background, product marketing style, professional",
  "size": "2K"
}'

CTA Buttons

Text

Good CTAsBad CTAs
"Start Free Trial""Submit"
"Get Started Free""Click Here"
"See It in Action""Learn More" (low commitment)
"Create Your First Report""Sign Up" (vague)
"Try Free for 14 Days""Register"

Formula: Action verb + value/outcome + (optional: reduce risk)

Design

ElementRule
ColorHigh contrast with background — must be the most visible element
SizeMinimum 44px height (tap target), wide enough for text + padding
PositionAbove the fold, repeated after each major section
WhitespaceGenerous padding around button, don't crowd it
Secondary CTAIf needed, use text link below ("or watch a demo")

Section Order

The proven sequence for landing pages:

SectionPurposeKey Element
1. HeroCore value, primary CTAHeadline + image + CTA
2. Social ProofBuild trustLogos, numbers, badges
3. ProblemCreate empathyPain point they recognize
4. Solution/FeaturesShow how you solve it3 key features with visuals
5. How It WorksReduce complexity3 steps: sign up, configure, benefit
6. TestimonialsProve it works2-3 specific customer quotes
7. PricingEnable decisionClear tiers, highlight recommended
8. FAQHandle objections5-7 common questions
9. Final CTACapture remaindersRepeat primary CTA with urgency

Social Proof Types

TypeImpactPlacement
Company logosFastest to process, high trustBelow hero
User countScale signalHero or social proof bar
Star ratingProduct qualityNear CTA
TestimonialsDetailed credibilityDedicated section
Case study statsSpecific proofFeature sections
Trust badgesSecurity/complianceNear forms, pricing, footer
# Research for social proof stats
belt app run exa/answer --input '{
  "question": "What is the average conversion rate for SaaS landing pages with social proof vs without?"
}'

Form Design

RuleImpact
Every field reduces conversion ~11%Minimize fields
Name + Email = maximum for signupsDon't ask for phone, company, role
Single-column layoutDon't use multi-column forms
Inline validationShow errors immediately, not on submit
Clear error messages"Email is required" not "Error in field 3"
Submit button text = action"Create Account" not "Submit"

Mobile Optimization

RuleWhy
CTA button full widthEasy to tap with thumbs
Sticky CTA on scrollAlways accessible
No horizontal scrollingBreaks mobile layout
Font minimum 16pxiOS zooms inputs below 16px
Tap targets minimum 48x48pxApple HIG, Google Material
Images responsiveDon't overflow viewport
Prioritize headline + CTASimplify above-the-fold

OG Image for Sharing

# Generate an OG image for the landing page
belt app run falai/flux-dev-lora --input '{
  "prompt": "clean professional social sharing card, product name and tagline on modern gradient background, minimal design, corporate tech aesthetic, 1200x630 aspect ratio equivalent",
  "width": 1200,
  "height": 630
}'

# Or use html-to-image for a template-based approach
belt app run infsh/html-to-image --input '{
  "html": "<div style=\"width:1200px;height:630px;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-family:sans-serif;color:white\"><div style=\"text-align:center\"><h1 style=\"font-size:48px;margin:0\">DataFlow</h1><p style=\"font-size:24px;opacity:0.9\">Ship docs in minutes, not days</p></div></div>"
}'

Page Speed

RuleTargetWhy
Hero image< 200 KBFirst thing to load
Total page weight< 2 MBMobile data, patience
Lazy load below-foldAlwaysOnly load what's visible
Minimize JavaScript< 200 KBBlocks rendering
LCP (Largest Contentful Paint)< 2.5sGoogle Core Web Vitals

Common Mistakes

MistakeProblemFix
No clear headlineVisitor doesn't know what you do6-12 words, outcome-focused
CTA says "Learn More"Too low commitmentAction verb + specific value
Hero is a product screenshotHard to parse, boringShow the outcome, use lifestyle imagery
Multiple competing CTAsDecision paralysisOne primary CTA, one secondary max
No social proofNo trust signalAdd logos, counts, or testimonials
Too many form fieldsConversion drops ~11% per fieldName + email maximum
Desktop-only design60%+ traffic is mobileDesign mobile-first
No urgency in final CTAVisitors leave and forget"Start your free 14-day trial"

Related Skills

npx skills add inference-sh/skills@ai-image-generation
npx skills add inference-sh/skills@web-search
npx skills add inference-sh/skills@prompt-engineering

Browse all apps: belt app list

Plus de skills de halt-catch-fire

ai-image-generation
halt-catch-fire
Générez des images IA avec GPT-Image-2, FLUX, Gemini, Grok, Seedream, Reve et plus de 50 modèles via l'interface CLI inference.sh. Modèles : GPT-Image-2, FLUX Dev LoRA, FLUX.2 Klein LoRA, Gemini 3 Pro Image, Grok Imagine, Seedream 4.5, Reve, ImagineArt. Capacités : texte vers image, image vers image, inpainting, LoRA, édition d'image, upscaling, rendu de texte. Utilisation pour : art IA, maquettes de produits, concept art, graphiques pour réseaux sociaux, visuels marketing, illustrations. Déclencheurs : flux, génération d'image, image IA, texte vers...
creativemediaimage
ai-video-generation
halt-catch-fire
We need to translate the given text from English to French. The text describes an AI video generation skill. We must preserve the name "ai-video-generation" but it's not in the text, so we ignore. Preserve product names, protocol names, URLs, numbers, technical terms. So "Google Veo", "Seedance 2.0", "HappyHorse", "Wan", "Grok", "inference.sh CLI", "Veo 3.1", "Veo 3", "Seedance 2.0", "HappyHorse 1.0", "Wan 2.5", "Grok Imagine Video", "OmniHuman", "Fabric", "HunyuanVideo", "text-to-video", "image-to-video", "reference-to-video", "video editing", "lipsync", "avatar animation", "video upscaling", "foley sound", "social media videos", "marketing content", "explainer videos", "product demos", "AI avatars",
creativevideomedia
twitter-automation
halt-catch-fire
Automatisez Twitter/X avec publication, engagement et gestion des utilisateurs via l'interface CLI inference.sh. Applications : x/post-tweet, x/post-create (avec média), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Capacités : publier des tweets, planifier du contenu, aimer des publications, retweeter, envoyer des messages directs, suivre des utilisateurs, obtenir des profils. Utilisation pour : automatisation des réseaux sociaux, planification de contenu, bots d'engagement, croissance d'audience, API X. Déclencheurs : twitter api, x api, tweet automation, post to twitter, twitter bot, social media automation, x...
marketingapicommunication
ai-avatar-video
halt-catch-fire
We need to translate the given text from English to French, preserving the name "ai-avatar-video" and other technical terms. The text describes creating AI avatar and talking head videos via inference.sh CLI. It recommends P-Video-Avatar, and lists other options: OmniHuman, Fabric, PixVerse. Audio options: Inworld TTS-2, ElevenLabs, Kokoro. Capabilities: audio-driven avatars, text-to-avatar, lipsync videos, talking head generation, virtual presenters, UGC content. Use for: AI presenters, explainer videos, virtual influencers, dubbing, marketing videos, UGC ads, gaming avatars,... We must not include the name "ai-avatar-video" unless it appears in the source text. It does not appear in the source text, so we omit it. We translate the rest naturally. Keep product names, protocol names, URLs, numbers, technical terms as is. So "inference.sh CLI" stays, "P-Video-Avatar", "OmniHuman", "F
videocreativemedia
agent-browser
halt-catch-fire
Automatisation de navigateur pour agents IA via inference.sh. Naviguer sur des pages web, interagir avec des éléments en utilisant les références @e, prendre des captures d'écran, enregistrer des vidéos. Capacités : scraping web, remplissage de formulaires, clics, saisie, glisser-déposer, téléchargement de fichiers, exécution JavaScript. Utilisation pour : automatisation web, extraction de données, tests, navigation agent, recherche. Déclencheurs : navigateur, automatisation web, scraping, navigation, clic, remplissage de formulaire, capture d'écran, navigation web, playwright, navigateur headless, agent web, surf internet, enregistrement vidéo
browser-automationweb-scrapingtesting
web-search
halt-catch-fire
Recherche web et extraction de contenu avec Tavily et Exa via l'interface en ligne de commande inference.sh. Applications : Tavily Search, Tavily Extract, Exa Search, Exa Answer, Exa Extract. Capacités : recherche assistée par IA, extraction de contenu, réponses directes, recherche documentaire. Utilisation pour : recherche, pipelines RAG, vérification des faits, agrégation de contenu, agents. Déclencheurs : recherche web, tavily, exa, api de recherche, extraction de contenu, recherche, recherche internet, recherche IA, assistant de recherche, scraping web, rag, alternative à perplexity
researchweb-scrapingapi
infsh-cli
halt-catch-fire
We need to translate the given text from English to French, preserving the name "infsh-cli" and other technical terms, product names, protocol names, URLs, numbers, etc. The instruction says: "Do not include the name unless it appears in the source text." The name "infsh-cli" is not in the source text, so we don't include it. The source text has "inference.sh CLI" - that should be preserved as is? The instruction says preserve product names, so "inference.sh CLI" should stay. Also "FLUX, Veo, Gemini, Grok, Claude, Seedance, OmniHuman, Tavily, Exa, OpenRouter" are product names, keep them. "Twitter" is a product name. "AI" is a term, keep as is or translate? Usually "IA" in French, but the instruction says preserve technical terms? "AI" is a common acronym, often kept as is. But in French, "IA" is used. However, the instruction says "preserve product names
developmentapicreative
product-photography
halt-catch-fire
We need to translate the given text from English to French. The text describes an AI product photography skill. We must preserve the name "product-photography" but it's not in the text, so we don't include it. We translate only the text inside <text>. No extra labels. Keep technical terms like "packshot", "hero shot", "lifestyle shots", "e-commerce", "Amazon" as is or with appropriate French translation? The instruction says preserve product names, protocol names, URLs, numbers, technical terms. "Amazon" is a product name, keep as is. "packshot" is a technical term, often kept in English in French contexts, but could be translated? The instruction says preserve technical terms, so keep "packshot". "hero shot" is also technical, keep. "lifestyle shots" - "lifestyle" is often used in French, but "shots" might be translated as "photos" or kept. I'll keep "lifestyle shots" as is. "studio lighting" - "éclairage studio".
creativeecommerceimage