Landing Page Workflow

Build high-converting landing pages with proven templates, components, and optimization strategies

The Landing Page workflow guides you through creating a compelling landing page that converts visitors into users. From hero sections to CTAs, this workflow provides templates, best practices, and optimization strategies.

Overview#

PropertyValue
Sections8 core sections
TierFree
Typical Duration2-5 days
Best ForProduct launches, waitlists, marketing campaigns

Outcomes#

A successful landing page workflow results in:

  • High-converting landing page with clear value proposition
  • Mobile-responsive design with fast load times
  • Integrated analytics and conversion tracking
  • A/B testing framework for optimization
  • SEO-optimized meta tags and content

Page Structure#

A high-converting landing page follows this proven structure:

┌─────────────────────────────────────────┐ │ Navigation │ ├─────────────────────────────────────────┤ │ │ │ Hero Section │ │ (Value Proposition + CTA) │ │ │ ├─────────────────────────────────────────┤ │ Social Proof │ │ (Logos, testimonials) │ ├─────────────────────────────────────────┤ │ │ │ Problem / Pain │ │ (Identify the problem) │ │ │ ├─────────────────────────────────────────┤ │ │ │ Solution │ │ (How you solve it) │ │ │ ├─────────────────────────────────────────┤ │ │ │ Features │ │ (What you offer) │ │ │ ├─────────────────────────────────────────┤ │ Pricing │ ├─────────────────────────────────────────┤ │ │ │ FAQ │ │ │ ├─────────────────────────────────────────┤ │ Final CTA │ ├─────────────────────────────────────────┤ │ Footer │ └─────────────────────────────────────────┘

Section 1: Hero#

The hero is your first impression. Make it count.

Hero Checklist#

  • Clear headline - What you do in 6-10 words
  • Supporting subheadline - How you do it or for whom
  • Primary CTA - One clear action to take
  • Visual - Product screenshot, illustration, or video
  • Social proof snippet - Trust indicator

Hero Component#

1// components/marketing/Hero.tsx 2'use client'; 3 4import { Button } from '@/components/ui/button'; 5 6interface HeroProps { 7 headline: string; 8 subheadline: string; 9 ctaText: string; 10 ctaHref: string; 11 image?: string; 12 socialProof?: string; 13} 14 15export function Hero({ 16 headline, 17 subheadline, 18 ctaText, 19 ctaHref, 20 image, 21 socialProof 22}: HeroProps) { 23 return ( 24 <section className="relative overflow-hidden py-20 lg:py-32"> 25 <div className="container mx-auto px-4"> 26 <div className="grid lg:grid-cols-2 gap-12 items-center"> 27 <div className="space-y-8"> 28 <h1 className="text-4xl lg:text-6xl font-bold tracking-tight"> 29 {headline} 30 </h1> 31 <p className="text-xl text-muted-foreground max-w-lg"> 32 {subheadline} 33 </p> 34 <div className="flex flex-col sm:flex-row gap-4"> 35 <Button size="lg" asChild> 36 <a href={ctaHref}>{ctaText}</a> 37 </Button> 38 <Button size="lg" variant="outline"> 39 Watch Demo 40 </Button> 41 </div> 42 {socialProof && ( 43 <p className="text-sm text-muted-foreground"> 44 {socialProof} 45 </p> 46 )} 47 </div> 48 {image && ( 49 <div className="relative"> 50 <img 51 src={image} 52 alt="Product screenshot" 53 className="rounded-lg shadow-2xl" 54 /> 55 </div> 56 )} 57 </div> 58 </div> 59 </section> 60 ); 61}

Headline Formulas#

FormulaExample
[Action] + [Outcome]"Build landing pages that convert"
[Tool] for [Audience]"Analytics for indie hackers"
[Pain] without [Problem]"Ship faster without the complexity"
[Number] + [Benefit]"10x your development speed"

Section 2: Social Proof#

Build trust immediately after your hero.

Social Proof Types#

  1. Logo bar - Companies using your product
  2. Testimonials - Quotes from real users
  3. Metrics - Numbers that demonstrate traction
  4. Awards/Press - Recognition from trusted sources
1// components/marketing/LogoBar.tsx 2export function LogoBar({ logos }: { logos: string[] }) { 3 return ( 4 <section className="py-12 border-y bg-muted/50"> 5 <div className="container mx-auto px-4"> 6 <p className="text-center text-sm text-muted-foreground mb-8"> 7 Trusted by teams at 8 </p> 9 <div className="flex flex-wrap justify-center items-center gap-8 lg:gap-16"> 10 {logos.map((logo, i) => ( 11 <img 12 key={i} 13 src={logo} 14 alt="Company logo" 15 className="h-8 opacity-60 hover:opacity-100 transition-opacity" 16 /> 17 ))} 18 </div> 19 </div> 20 </section> 21 ); 22}

Section 3: Problem Statement#

Articulate the pain your users feel before showing your solution.

Problem Framework#

1// components/marketing/Problem.tsx 2export function Problem() { 3 const problems = [ 4 { 5 title: "Manual processes waste time", 6 description: "Hours spent on repetitive tasks that should be automated" 7 }, 8 { 9 title: "Scattered information", 10 description: "Data lives in spreadsheets, emails, and sticky notes" 11 }, 12 { 13 title: "No visibility", 14 description: "Can't see what's working without digging through reports" 15 } 16 ]; 17 18 return ( 19 <section className="py-20"> 20 <div className="container mx-auto px-4"> 21 <div className="text-center mb-12"> 22 <h2 className="text-3xl font-bold mb-4"> 23 Sound familiar? 24 </h2> 25 <p className="text-muted-foreground max-w-2xl mx-auto"> 26 You're not alone. These challenges affect teams everywhere. 27 </p> 28 </div> 29 <div className="grid md:grid-cols-3 gap-8"> 30 {problems.map((problem, i) => ( 31 <div key={i} className="p-6 rounded-lg border bg-card"> 32 <h3 className="font-semibold mb-2">{problem.title}</h3> 33 <p className="text-muted-foreground">{problem.description}</p> 34 </div> 35 ))} 36 </div> 37 </div> 38 </section> 39 ); 40}

Section 4: Solution#

Now show how you solve the problem.

Solution Narrative#

Connect each problem to your solution:

ProblemYour Solution
Manual processesAutomation that runs in the background
Scattered informationSingle source of truth
No visibilityReal-time dashboards

Section 5: Features#

Showcase your key features with benefits, not just capabilities.

Feature Display Patterns#

  1. Grid layout - 3-6 features with icons
  2. Alternating sections - Feature + screenshot pairs
  3. Tabs - Interactive feature exploration
  4. Comparison - Before/after or vs. competitors
1// components/marketing/Features.tsx 2const features = [ 3 { 4 icon: "Zap", 5 title: "Lightning Fast", 6 description: "Built for speed. See results in milliseconds, not seconds." 7 }, 8 { 9 icon: "Shield", 10 title: "Enterprise Security", 11 description: "SOC 2 compliant with end-to-end encryption." 12 }, 13 { 14 icon: "Puzzle", 15 title: "Integrations", 16 description: "Connect with 100+ tools your team already uses." 17 } 18]; 19 20export function Features() { 21 return ( 22 <section className="py-20 bg-muted/50"> 23 <div className="container mx-auto px-4"> 24 <div className="text-center mb-12"> 25 <h2 className="text-3xl font-bold mb-4"> 26 Everything you need 27 </h2> 28 <p className="text-muted-foreground max-w-2xl mx-auto"> 29 Powerful features that grow with your business 30 </p> 31 </div> 32 <div className="grid md:grid-cols-3 gap-8"> 33 {features.map((feature, i) => ( 34 <div key={i} className="p-6 rounded-lg bg-card border"> 35 <div className="w-12 h-12 rounded-lg bg-primary/10 flex items-center justify-center mb-4"> 36 {/* Icon */} 37 </div> 38 <h3 className="font-semibold mb-2">{feature.title}</h3> 39 <p className="text-muted-foreground">{feature.description}</p> 40 </div> 41 ))} 42 </div> 43 </div> 44 </section> 45 ); 46}

Section 6: Pricing#

Be transparent about pricing to filter qualified leads.

Pricing Best Practices#

  • Show 3 tiers max (Good-Better-Best)
  • Highlight recommended plan
  • Include feature comparison
  • Add FAQ about pricing
  • Show annual discount if applicable

Section 7: FAQ#

Address objections and reduce friction.

Common FAQ Topics#

  • How does pricing work?
  • Is there a free trial?
  • How is my data protected?
  • What integrations do you support?
  • How do I get support?
1// components/marketing/FAQ.tsx 2import { 3 Accordion, 4 AccordionContent, 5 AccordionItem, 6 AccordionTrigger, 7} from "@/components/ui/accordion"; 8 9const faqs = [ 10 { 11 question: "Is there a free trial?", 12 answer: "Yes! Start with our 14-day free trial. No credit card required." 13 }, 14 // ... more FAQs 15]; 16 17export function FAQ() { 18 return ( 19 <section className="py-20"> 20 <div className="container mx-auto px-4 max-w-3xl"> 21 <h2 className="text-3xl font-bold text-center mb-12"> 22 Frequently Asked Questions 23 </h2> 24 <Accordion type="single" collapsible> 25 {faqs.map((faq, i) => ( 26 <AccordionItem key={i} value={`item-${i}`}> 27 <AccordionTrigger>{faq.question}</AccordionTrigger> 28 <AccordionContent>{faq.answer}</AccordionContent> 29 </AccordionItem> 30 ))} 31 </Accordion> 32 </div> 33 </section> 34 ); 35}

Section 8: Final CTA#

Close with a strong call to action.

1export function FinalCTA() { 2 return ( 3 <section className="py-20 bg-primary text-primary-foreground"> 4 <div className="container mx-auto px-4 text-center"> 5 <h2 className="text-3xl font-bold mb-4"> 6 Ready to get started? 7 </h2> 8 <p className="text-lg mb-8 opacity-90 max-w-2xl mx-auto"> 9 Join thousands of teams already using our platform. 10 </p> 11 <Button size="lg" variant="secondary"> 12 Start Free Trial 13 </Button> 14 </div> 15 </section> 16 ); 17}
PhaseAgentPurpose
Copycopywriting-expertHeadlines, descriptions, CTAs
Designui-ux-expertLayout, visual hierarchy
Developmentfrontend-expertComponent implementation
Optimizationperformance-expertLoad time optimization
Analyticsanalytics-expertConversion tracking setup

Conversion Optimization#

Track These Metrics#

1// lib/analytics.ts 2export function trackLandingPageMetrics() { 3 // Time on page 4 analytics.track('page_view_duration', { 5 page: 'landing', 6 duration: getTimeOnPage() 7 }); 8 9 // Scroll depth 10 trackScrollDepth([25, 50, 75, 100]); 11 12 // CTA clicks 13 document.querySelectorAll('[data-cta]').forEach(el => { 14 el.addEventListener('click', () => { 15 analytics.track('cta_clicked', { 16 cta: el.getAttribute('data-cta'), 17 position: el.getAttribute('data-position') 18 }); 19 }); 20 }); 21}

A/B Testing Ideas#

ElementVariation AVariation B
HeadlineBenefit-focusedFeature-focused
CTA text"Start Free Trial""Get Started"
Hero imageScreenshotIllustration
Social proofLogosTestimonials
PricingMonthly defaultAnnual default

Best Practices#

  1. One goal per page - Focus on a single conversion action
  2. Above the fold matters - Your best content should be visible immediately
  3. Mobile first - Design for mobile, then adapt for desktop
  4. Fast loads - Every second of delay costs conversions
  5. Test continuously - Small improvements compound over time