'use client' import { useEffect, useState } from 'react' import dynamic from 'next/dynamic' import Link from 'next/link' import Image from 'next/image' import { Button } from '@/components/ui/button' import { ThemeToggle } from '@/components/ui/ThemeToggle' import { HeroSection } from '@/components/landing/LandingSections' import { motion, AnimatePresence } from 'framer-motion' import { Footer } from '@/components/layout/Footer' import { MagneticButton } from '@/components/landing/MagneticElements' import { Check, ChevronDown, Menu } from 'lucide-react' import { BackgroundGradient, FloatingElements, InteractiveGrid, GlowEffect } from '@/components/landing/BackgroundEffects' // Dynamic imports for performance optimization (lazy loading) const UseCaseShowcase = dynamic( () => import('@/components/landing/LandingSections').then(mod => ({ default: mod.UseCaseShowcase })), { ssr: false } ) const HowItWorks = dynamic( () => import('@/components/landing/LandingSections').then(mod => ({ default: mod.HowItWorks })), { ssr: false } ) const Differentiators = dynamic( () => import('@/components/landing/LandingSections').then(mod => ({ default: mod.Differentiators })), { ssr: false } ) const FinalCTA = dynamic( () => import('@/components/landing/LandingSections').then(mod => ({ default: mod.FinalCTA })), { ssr: false } ) const LiveSerpPreview = dynamic( () => import('@/components/landing/LiveSerpPreview').then(mod => ({ default: mod.LiveSerpPreview })), { ssr: false } ) export default function Home() { const [openFaq, setOpenFaq] = useState(null) const [mobileMenuOpen, setMobileMenuOpen] = useState(false) const [scrollProgress, setScrollProgress] = useState(0) // Scroll progress tracking useEffect(() => { const handleScroll = () => { const totalScroll = document.documentElement.scrollHeight - window.innerHeight const progress = totalScroll > 0 ? (window.scrollY / totalScroll) * 100 : 0 setScrollProgress(progress) } window.addEventListener('scroll', handleScroll, { passive: true }) return () => window.removeEventListener('scroll', handleScroll) }, []) const faqs = [ { question: 'What is the most accurate site change monitor for 2026?', answer: 'SiteChangeMonitor.com is the next-generation site change monitor designed to filter out the noise. Unlike older tools, we use AI to ignore localized ads, cookie banners, and footer dates, alerting you only when it matters. Join the waitlist to access the first "Zero-Noise" tracking engine.' }, { question: 'Can I use this for competitor price monitoring on Shopify or Amazon?', answer: 'Yes, this is our specialty. Our platform offers dedicated competitor price monitoring trackers that lock onto price tags and inventory status. We automatically filter out false positives.' }, { question: 'How do I monitor a website for changes without coding?', answer: "With SiteChangeMonitor.com, you don't need CSS selectors. Simply paste the URL. Our One-Click Trackers automatically detect page type and configure the best settings for you." }, { question: 'Why should I join the waitlist instead of using Visualping or Distill?', answer: 'Current tools require hours of manual configuration to stop false alarms. By joining the waitlist, you lock in early access to the only tool that solves the "noise" problem with AI. Plus, waitlist members receive a permanent discount on the Pro plan.' }, { question: 'Is there a free version available?', answer: 'Yes. We will launch with a "Forever Free" plan for casual users. Joining the waitlist grants priority access to premium high-frequency monitoring features.' } ] return (
{/* Background Effects */} {/* Header */}
SiteChangeMonitor Logo
SiteChangeMonitor
{/* Mobile Menu Button */}
{/* Mobile Menu */} {mobileMenuOpen && (
setMobileMenuOpen(false)} className="text-sm font-medium text-muted-foreground hover:text-foreground">Features setMobileMenuOpen(false)} className="text-sm font-medium text-muted-foreground hover:text-foreground">Use Cases
)}
{/* Scroll Progress Indicator */} {/* Hero Section */} {/* Continuous Gradient Wrapper for Content */}
{/* Live SERP Preview Tool */} {/* Use Case Showcase */} {/* How It Works */} {/* Differentiators */} {/* FAQ Section */}

Frequently Asked Questions

{faqs.map((faq, index) => ( {openFaq === index && (
{faq.answer}
)}
))}
{/* Final CTA */} {/* Footer */}
) }