'use client' import { useEffect, useState, useRef } from 'react' import Image from 'next/image' import { Header } from '@/components/Header' import { Footer } from '@/components/Footer' import { DomainChecker } from '@/components/DomainChecker' import { useStore } from '@/lib/store' import { api } from '@/lib/api' import { Eye, Bell, Clock, Shield, ArrowRight, TrendingUp, TrendingDown, Minus, ChevronRight, Zap, BarChart3, Globe, Check, Search, Target, Gavel, Sparkles, Activity, LineChart, Lock, Filter, Crosshair, Tag, AlertTriangle, Briefcase, } from 'lucide-react' import Link from 'next/link' import clsx from 'clsx' interface TrendingTld { tld: string reason: string current_price: number price_change: number } interface HotAuction { domain: string current_bid: number time_remaining: string platform: string } // Shimmer for loading states function Shimmer({ className }: { className?: string }) { return (
) } // Animated counter function AnimatedNumber({ value, suffix = '' }: { value: number, suffix?: string }) { const [count, setCount] = useState(0) useEffect(() => { const duration = 2000 const steps = 60 const increment = value / steps let current = 0 const timer = setInterval(() => { current += increment if (current >= value) { setCount(value) clearInterval(timer) } else { setCount(Math.floor(current)) } }, duration / steps) return () => clearInterval(timer) }, [value]) return <>{count.toLocaleString()}{suffix} } // Live Market Ticker function MarketTicker({ auctions }: { auctions: HotAuction[] }) { const tickerRef = useRef(null) // Duplicate items for seamless loop const items = [...auctions, ...auctions] if (auctions.length === 0) return null return (
{items.map((auction, i) => (
{auction.domain}
${auction.current_bid} {auction.time_remaining} {auction.platform}
))}
) } export default function HomePage() { const { checkAuth, isLoading, isAuthenticated } = useStore() const [trendingTlds, setTrendingTlds] = useState([]) const [hotAuctions, setHotAuctions] = useState([]) const [loadingTlds, setLoadingTlds] = useState(true) const [loadingAuctions, setLoadingAuctions] = useState(true) useEffect(() => { checkAuth() fetchData() }, [checkAuth]) const fetchData = async () => { try { const [trending, auctions] = await Promise.all([ api.getTrendingTlds(), api.getHotAuctions(8).catch(() => []) ]) setTrendingTlds(trending.trending.slice(0, 4)) setHotAuctions(auctions.slice(0, 8)) } catch (error) { console.error('Failed to fetch data:', error) } finally { setLoadingTlds(false) setLoadingAuctions(false) } } if (isLoading) { return (
) } const getTrendIcon = (priceChange: number) => { if (priceChange > 0) return if (priceChange < 0) return return } return (
{/* Background Effects */}
{/* Hero Section - "Bloomberg meets Apple" */}
{/* Puma Logo */}
pounce {/* Glow ring */}
{/* Main Headline - Konzept: "Der Markt schläft nie. Du schon." */}

The market never sleeps. You should.

{/* Subheadline - Konzept Versprechen */}

We scan. We watch. We alert.{' '} You pounce.

{/* Tagline */}

Don't guess. Know.

{/* Domain Checker */}
{/* Trust Indicators */}
+ TLDs
Live Auctions
Instant Alerts
Price Intel
{/* Live Market Ticker */} {!loadingAuctions && hotAuctions.length > 0 && ( )} {/* Three Pillars: DISCOVER, TRACK, ACQUIRE */}
{/* Section Header */}
Your Command Center

Three moves to dominate.

{/* Pillars */}
{/* DISCOVER */}

Discover

Instant domain intel. Not just "taken" — but why, when it expires, and smarter alternatives.

  • Real-time availability across 886+ TLDs
  • Expiry dates & WHOIS data
  • AI-powered alternatives
{/* TRACK */}
{/* Popular badge */}
Most Popular

Track

Your private watchlist with 4-layer health analysis. Know the second it weakens.

  • DNS, HTTP, SSL, WHOIS monitoring
  • Real-time health status alerts
  • Parked & pre-drop detection
{/* ACQUIRE */}

Acquire

All auctions. One place. Filtered. Valued. Ready to strike.

  • GoDaddy, Sedo, NameJet, DropCatch
  • No-spam smart filters
  • Deal score & valuation
{/* Transition Element */}
{/* Beyond Hunting: Sell & Alert */}
{/* Subtle background pattern */}
{/* Section Header - Left aligned for flow */}
Beyond Hunting

Buy. Sell. Get alerted.

Pounce isn't just for finding domains. It's your complete domain business platform.

{/* For Sale Marketplace */}
{/* Corner accent */}

Sell Your Domains

Marketplace

Create professional "For Sale" landing pages with one click. DNS verification proves ownership. Buyers contact you directly through Pounce.

  • Verified Owner badge
  • Pounce Score valuation
  • Secure contact form
Browse Marketplace
{/* Sniper Alerts */}
{/* Decorative element */}

Sniper Alerts

Hyper-Personalized

Ultra-specific filters that notify you exactly when matching domains appear. "4-letter .com under $500 without numbers" — we've got you.

  • Custom TLD, length, price filters
  • Email & SMS alerts
  • Real-time auction matching
Set Up Alerts
{/* Portfolio Management - Full Width Below */}

Portfolio Health

Your Domain Insurance

Import your domains and let Pounce monitor them 24/7. SSL expiry, renewal reminders, uptime checks, and P&L tracking — all in one place. Never miss a renewal again.

SSL Monitor Expiry Alerts Valuation
Manage Portfolio
{/* Transition to TLDs */}
{/* Trending TLDs Section */}
{/* Section Header */}
TLD Pricing

The real price tag.

Don't fall for $0.99 promos. We show renewal costs, price trends, and renewal traps across 886+ TLDs.

Trap Detection Risk Levels
Explore TLD Pricing
{/* TLD Cards */} {loadingTlds ? (
{[...Array(4)].map((_, i) => (
))}
) : (
{trendingTlds.map((item, index) => (
.{item.tld} 0 ? "text-orange-400 bg-orange-400/10" : (item.price_change ?? 0) < 0 ? "text-accent bg-accent/10" : "text-foreground-muted bg-foreground/5" )}> {getTrendIcon(item.price_change ?? 0)} {(item.price_change ?? 0) > 0 ? '+' : ''}{(item.price_change ?? 0).toFixed(1)}%

{item.reason}

{isAuthenticated ? ( ${(item.current_price ?? 0).toFixed(2)}/yr ) : ( Sign in to view )}
))}
)}
{/* Social Proof / Stats Section */}

The edge you need.

+

TLDs Tracked Daily

24/7

Always Watching

s

Alert Speed

{/* Pricing CTA Section */}
Pricing

Simple. Transparent. Powerful.

Start free. Scale when you're ready.

{/* Quick Plans */}
{/* Free Plan */}

Scout

Free forever

  • 5 domains watched
  • Daily status checks
  • Market overview
{/* Pro Plan */}
Popular

Trader

$9/month

  • 100 domains watched
  • Priority alerts
  • Full auction access
Compare All Plans {isAuthenticated ? "Go to Dashboard" : "Start Free"}
{/* Final CTA */}

Join the hunters.

Ready to pounce?

Track your first domain in under a minute. Free forever, no credit card.

{isAuthenticated ? "Go to Dashboard" : "Start Hunting — It's Free"} {!isAuthenticated && (

Free forever • No credit card • 5 domains included

)}
) }