'use client' import { motion, type Variants } from 'framer-motion' import Link from 'next/link' import { Button } from '@/components/ui/button' import { Check, ArrowRight, Shield, Search, FileCheck, TrendingUp, Target, Filter, Bell, Eye, Slack, Webhook, History, Zap, Lock, ChevronRight, Star } from 'lucide-react' import { useState, useEffect } from 'react' import { SEODemoVisual } from './SEODemoVisual' import { CompetitorDemoVisual } from './CompetitorDemoVisual' import { PolicyDemoVisual } from './PolicyDemoVisual' import { WaitlistForm } from './WaitlistForm' import { MagneticButton, SectionDivider } from './MagneticElements' // Animation Variants const fadeInUp: Variants = { hidden: { opacity: 0, y: 30, filter: 'blur(4px)' }, visible: (i: number = 0) => ({ opacity: 1, y: 0, filter: 'blur(0px)', transition: { delay: i * 0.15, duration: 0.7, ease: [0.22, 1, 0.36, 1] } }) } const scaleIn: Variants = { hidden: { opacity: 0, scale: 0.95 }, visible: { opacity: 1, scale: 1, transition: { duration: 0.5, ease: [0.22, 1, 0.36, 1] } } } // ============================================ // 1. HERO SECTION - "Track competitor changes without the noise" // ============================================ export function HeroSection() { return (
{/* Background Elements */}
{/* Left: Content */} {/* Overline */}
For SEO & Growth Teams
{/* Hero Headline */} Track competitor changes{' '} without the noise. {/* Subheadline */} Less noise. More signal. Proof included. {/* Feature Bullets */} {[ 'Auto-filter cookie banners & timestamps', 'Keyword alerts when it matters', 'Slack/Webhook integration', 'Audit-proof history & snapshots' ].map((feature, i) => (
{feature}
))}
{/* Waitlist Form */} {/* Trust Signals */}
No credit card
No spam, ever
Early access bonus
{/* Right: Animated Visual - Noise → Signal */}
) } // Noise → Signal Animation Component - Enhanced function NoiseToSignalVisual() { const [phase, setPhase] = useState(0) const [isPaused, setIsPaused] = useState(false) const [particles, setParticles] = useState<{ id: number; x: number; y: number }[]>([]) useEffect(() => { if (isPaused) return const interval = setInterval(() => { setPhase(p => { const nextPhase = (p + 1) % 4 // Trigger particles when transitioning from phase 0 to 1 if (p === 0 && nextPhase === 1) { triggerParticles() } return nextPhase }) }, 2500) return () => clearInterval(interval) }, [isPaused]) const triggerParticles = () => { const newParticles = Array.from({ length: 8 }, (_, i) => ({ id: Date.now() + i, x: Math.random() * 100, y: Math.random() * 100 })) setParticles(newParticles) setTimeout(() => setParticles([]), 1000) } return ( setIsPaused(true)} onHoverEnd={() => setIsPaused(false)} > {/* Pulsing Glow Border */} {phase >= 1 && ( )} {/* Particles */} {particles.map(particle => ( ))} {/* Mock Browser Header */}
competitor-site.com/pricing
{isPaused && ( PAUSED )}
{/* Content Area */}
{/* Noise Counter */} Noise: {phase === 0 ? '67%' : '0%'} {/* Phase 0: Noisy Page */} {/* Cookie Banner - with strikethrough */} = 1 ? -10 : 0, opacity: phase >= 1 ? 0.3 : 1 }} transition={{ duration: 0.4 }} > 🍪 Cookie Banner NOISE {/* Strikethrough animation */} {phase >= 1 && ( )} {/* Enterprise Plan Card */}

Enterprise Plan

$99/mo

{/* Timestamp - with strikethrough */} = 1 ? -10 : 0, opacity: phase >= 1 ? 0.3 : 1 }} transition={{ duration: 0.4, delay: 0.1 }} > ⏰ Last updated: 10:23 AM NOISE {/* Strikethrough animation */} {phase >= 1 && ( )} {/* Phase 1-3: Filtered + Highlighted Signal */} {phase >= 1 && ( {/* Animated corner accent */}
✓ SIGNAL DETECTED
Filtered

Enterprise Plan

$99/mo

= 2 ? 1 : 0, x: phase >= 2 ? 0 : -10, scale: phase >= 2 ? 1 : 0.9 }} transition={{ duration: 0.5, ease: [0.22, 1, 0.36, 1] }} className="text-lg text-[hsl(var(--burgundy))] dark:text-red-500 font-bold flex items-center gap-1" > $79/mo
{/* Alert badge */} {phase >= 3 && ( Alert Sent )}
)} {/* Phase Indicator */}
{[0, 1, 2, 3].map(i => ( ))}
) } // ============================================ // 2. USE CASE SHOWCASE - SEO, Competitor, Policy // ============================================ export function UseCaseShowcase() { const useCases = [ { icon: , title: 'SEO Monitoring', problem: 'Your rankings drop before you know why.', example: 'Track when competitors update meta descriptions or add new content sections that outrank you.', color: 'teal', gradient: 'from-[hsl(var(--teal))]/10 to-transparent', demoComponent: }, { icon: , title: 'Competitor Intelligence', problem: 'Competitor launches slip past your radar.', example: 'Monitor pricing pages, product launches, and promotional campaigns in real-time.', color: 'primary', gradient: 'from-[hsl(var(--primary))]/10 to-transparent', demoComponent: }, { icon: , title: 'Policy & Compliance', problem: 'Regulatory updates appear without warning.', example: 'Track policy changes, terms updates, and legal text modifications with audit-proof history.', color: 'burgundy', gradient: 'from-[hsl(var(--burgundy))]/10 to-transparent', demoComponent: } ] return (
{/* Background Decor - Enhanced Grid */}
{/* Section Header */} Who This Is For Built for teams who need results,{' '} not demos. {/* Use Case Cards - Diagonal Cascade */}
{useCases.map((useCase, i) => ( {/* Gradient Background */}
{/* Icon */} {useCase.icon} {/* Title */}

{useCase.title}

{/* Problem Statement */}

{useCase.problem}

{/* Animated Demo Visual */}
{useCase.demoComponent}
{/* Example Scenario */}

Example:

{useCase.example}

))}
) } // ============================================ // 3. HOW IT WORKS - 4 Stage Flow // ============================================ export function HowItWorks() { const stages = [ { icon: , title: 'Set URL', desc: 'Add the page you want to monitor' }, { icon: , title: 'Check regularly', desc: 'Automated checks at your chosen frequency' }, { icon: , title: 'Remove noise', desc: 'AI filters out irrelevant changes' }, { icon: , title: 'Get alerted', desc: 'Receive notifications that matter' } ] return (
{/* Subtle Diagonal Stripe Decoration */}
{/* Section Header */} How it works Four simple steps to never miss an important change again. {/* Horizontal Flow */}
{/* Connecting Line */}
{stages.map((stage, i) => ( {/* Large Number Background */}
{String(i + 1).padStart(2, '0')}
{/* Circle Container */}
{stage.icon}
{/* Text */}

{stage.title}

{stage.desc}

{/* Arrow (not on last) */} {i < stages.length - 1 && (
)}
))}
) } // ============================================ // 4. DIFFERENTIATORS - Why We're Better // ============================================ export function Differentiators() { const features = [ { feature: 'Noise Filtering', others: 'Basic', us: 'AI-powered + custom rules', icon: }, { feature: 'Keyword Alerts', others: 'Limited', us: 'Regex + thresholds', icon: }, { feature: 'Integrations', others: 'Email only', us: 'Slack, Webhooks, Teams', icon: }, { feature: 'History & Proof', others: '7-30 days', us: 'Unlimited snapshots', icon: }, { feature: 'Setup Time', others: '15+ min', us: '2 minutes', icon: }, { feature: 'Pricing', others: '$29-99/mo', us: 'Fair pay-per-use', icon: } ] return (
{/* Radial Gradient Overlay */}
{/* Section Header */} Why we're{' '} different Not all monitoring tools are created equal. Here's what sets us apart. {/* Feature Cards Grid */}
{features.map((item, i) => ( {/* Icon */}
{item.icon}
{/* Feature Name */}

{item.feature}

{/* Comparison */}
Others: {item.others}
{item.us}
))}
) } // ============================================ // 5. SOCIAL PROOF - Testimonials (Prepared for Beta) // ============================================ export function SocialProof() { const testimonials = [ { quote: "The noise filtering alone saves me 2 hours per week. Finally, monitoring that actually works.", author: "[Beta User]", role: "SEO Manager", company: "[Company]", useCase: "SEO Monitoring" }, { quote: "We catch competitor price changes within minutes. Game-changer for our pricing strategy.", author: "[Beta User]", role: "Growth Lead", company: "[Company]", useCase: "Competitor Intelligence" }, { quote: "Audit-proof history saved us during compliance review. Worth every penny.", author: "[Beta User]", role: "Compliance Officer", company: "[Company]", useCase: "Policy Tracking" } ] return (
{/* Background Pattern - Subtle dots for light theme */}
{/* Section Header */} Built for teams who need results,{' '} not demos. {/* Testimonial Cards - Light Theme */}
{testimonials.map((testimonial, i) => ( {/* Card Container */}
{/* Quote Mark */}
"
{/* Quote */}

{testimonial.quote}

{/* Attribution */}

{testimonial.author}

{testimonial.role} at {testimonial.company}

{testimonial.useCase}
))}
{/* Note */} Join our waitlist to become a beta tester and get featured here.
) } // ============================================ // 6. FINAL CTA - Get Started // ============================================ export function FinalCTA() { return (
{/* Animated Gradient Mesh Background - More dramatic */}
{/* Animated Orbs - Enhanced */}
{/* Headline */} Stop missing the changes{' '} that matter. {/* Subheadline */} Join the waitlist and be first to experience monitoring that actually works. {/* Waitlist Form */} {/* Social Proof Indicator */}
500+ joined this week
Early access: 50% off for 6 months
) }