Docs
DevTools / API Platform

DevTools / API Platform

A developer-focused template with interactive terminal, code previews, and technical documentation layout. Perfect for API products, open source tools, and infrastructure SaaS.

SYS.READY
NET.SECURE
0
25
50
75
100
Next Generation Extraction Protocol

DATA01
REFINED

The universal API that transforms chaos into structure. Turn any URL into clean, typed JSON for your LLM pipeline.

SCANNING_SECTOR_01
OUTPUT.JSON24KB● LIVE
{
"status": "success",
"extracted_at": "2024-03-21T10:00:00Z",
"data": {
"headline": "Future of AI",
"summary": "...",
"images": ["img_1.jpg", "img_2.jpg"],
"sentiment": 0.98
}
}
SCANNING_ENGINE_V2
PROCESSING...
99.99%
Uptime
<50ms
Latency
10M+
Daily Req
99.8%
Success
System Capabilities

Engineered for
Scale & Precision

A complete toolkit designed for high-volume data extraction. Built to handle the complexity of the modern web.

SYSTEM ONLINE
MOD.ID_1

Intelligent Extraction

Our AI engine automatically identifies and structures data from any layout.

Performance_Metric99.9% Accuracy
MOD.ID_2

Global Proxy Network

Rotate through 50M+ residential IPs to bypass geo-blocks.

Performance_Metric190+ Countries
MOD.ID_3

Lightning Fast

Optimized for speed with edge caching and parallel processing.

Performance_Metric<50ms Latency
MOD.ID_4

Enterprise Security

SOC2 Type II certified with end-to-end encryption.

Performance_MetricBank-Grade
MOD.ID_5

Developer First

Typed SDKs for every major language.

import SDK from 'pkg'
const data = await
// Type-safe response
SDK.extract()
Performance_Metric100% Typed
Architecture Visualization

Vertical Integration
at the Edge

Our stack is optimized for a single purpose: turning chaotic HTML into pristine JSON. Every request passes through our fortified, high-performance pipeline in milliseconds.

Rack_Unit_01 // Main_Blade
STATUS: IDLE
INGESTION_LAYER
Waiting...
SECURITY_GATEWAY
Waiting...
COMPUTE_ENGINE
Waiting...
AI_EXTRACTION
Waiting...
System initialized. Ready for input.
_
Integration Protocol

Three steps to
structured data

IC_01
// Sequence_01

Install SDK

npm i @devtools/sdk
IC_02
// Sequence_02

Configure

const client = new Client()
IC_03
// Sequence_03

Extract Data

await client.extract()
SDK Integration

Native to your
tech stack

Drop our SDK into any project. We provide fully typed libraries for TypeScript, Python, Go, and more. No complex configuration, just install and extract.

Type-safe responses
Automatic retries & backoff
Built-in proxy rotation
Async/Await support
devtools-sdk
READ_ONLY
123456789101112131415
import { DevTools } from '@devtools/sdk';

// Initialize the client
const client = new DevTools({
apiKey: process.env.DEVTOOLS_API_KEY,
});

// Extract structured data
const { data, error } = await client.extract({
url: 'https://example.com/product/123',
schema: {
name: 'string',
price: 'number',
inStock: 'boolean',
specs: 'object'
}
});

if (error) throw error;
console.log('Extracted:', data);
READY
extract.ts
UTF-8typescript
System Benchmark

A generational leap in
data extraction

DevTools_SDK
V2.4.0_STABLE
Extraction_Success_Rate
99.99%
AI-Powered Parsing
Residential Proxy Network
JavaScript Rendering
Type-Safe SDKs
SYSTEM STATUS: OPTIMAL
Legacy_APIs
DEPRECATED
Success_Rate
65.4%
Manual Parsing Rules
Datacenter Proxies Only
No JS Support
Rest API Only
HIGH_MAINTENANCE_REQUIRED
Developer Resources

Documentation that
actually helps

We treat documentation as a product. Interactive examples, auto-generated API references, and dark mode by default. Everything you need to ship faster.

Interactive Playground

Test API endpoints directly from your browser.

Auto-generated Types

Get TypeScript definitions for every endpoint.

Guides & Tutorials

Step-by-step guides for common use cases.

System_Manual_v2.4ACCESS_LEVEL: PUBLIC
DOCS / INTRO

Introduction

DevTools is a powerful API for extracting structured data from any website. It handles proxies, browsers, and CAPTCHAs automatically.

Terminal // Bash
# Install the SDK via NPM
$npm install @devtools/sdk
# Initialize the project
$npx devtools init
Incoming transmissions

Trusted by the
global elite

Signal_Locked
FREQ: 142.842 MHz
STR
Alex Chen
Alex Chen
ID: @alexchen_dev
Senior Engineer @ Vercel

"I've tried every scraping API out there. DevTools is the only one that actually works reliably at scale. The DX is incredible."

Origin: San Francisco, CA
Transmission_LogReceiving...
Alex Chen
@alexchen_dev
T-100

I've tried every scraping API out there. DevTools is the only one that actually works reliably at scale. The DX is incredible.

Sarah Miller
@sarah_codes
T-200

We replaced our entire in-house scraping infrastructure with DevTools. Saved us $5k/month and countless engineering hours.

James Wilson
@jwilson
T-300

The structured data output is a game changer for LLM apps. I can feed the JSON directly into OpenAI without any cleaning.

Emily Zhang
@emilyz
T-400

Finally, a tool that handles dynamic JS rendering perfectly. Essential for our dataset collection pipeline.

Michael Brown
@mike_builds
T-500

Setup took literally 2 minutes. The SDK is type-safe and intuitive. Highly recommended.

Cost Estimator

Predictable
scaling costs

Estimate your monthly cost based on request volume. No hidden fees, pay only for what you need.

Target_Volume
VOL:10,000
| 1K| 250K| 500K| 750K| 1M+
Recommended_Module
STARTUP
$49
/MONTHLY_CYCLE
DEVELOPER
For individual researchers.
STARTUP
For scaling applications.
Advanced Extraction (JS)
Priority Email Support
50 Concurrent Requests
Premium Proxy Pool
Webhook Integration
BUSINESS
For high-volume needs.
Ecosystem Online

Built by developers,
for developers

We're building the future of data extraction in public. Join our growing community of engineers, researchers, and hackers.

gh_network.exe
devtools/sdk
Repository_Status: Public
GITHUB_STARS
12.5k
ACTIVE_FORKS
1.2k
CONTRIBUTORS
140+

Install Next.js:

npx create-next-app@latest .

Install shadcn/ui:

npx shadcn@latest init
npx shadcn@latest add button

Install dependencies:

npm install lucide-react framer-motion

page

import { Navbar } from "@/components/templates/devtools/navbar";
import { Hero } from "@/components/templates/devtools/hero";
import { Features } from "@/components/templates/devtools/features";
import { Workflow } from "@/components/templates/devtools/workflow";
import { LiveDemo } from "@/components/templates/devtools/live-demo";
import { CodeTabs } from "@/components/templates/devtools/code-tabs";
import { Comparison } from "@/components/templates/devtools/comparison";
import { Preview } from "@/components/templates/devtools/preview";
import { Testimonials } from "@/components/templates/devtools/testimonials";
import { Pricing } from "@/components/templates/devtools/pricing";
import { Community } from "@/components/templates/devtools/community";
import { Footer } from "@/components/templates/devtools/footer";
 
export function Page() {
  return (
    <div className="w-full min-h-screen bg-white dark:bg-[#020202] text-zinc-900 dark:text-white selection:bg-orange-500/30">
      <Navbar />
      <Hero />
      <Features />
      <LiveDemo />
      <Workflow />
      <CodeTabs />
      <Comparison />
      <Preview />
      <Testimonials />
      <Pricing />
      <Community />
      <Footer />
    </div>
  );
}

Components

"use client";
 
import * as React from "react";
import Link from "next/link";
import { motion, AnimatePresence } from "framer-motion";
import { cn } from "@/lib/utils";
import { Terminal, Menu, X, Github, ArrowRight, Sparkles } from "lucide-react";
import { Button } from "@/components/ui/button";
 
export function Navbar() {
  const [isOpen, setIsOpen] = React.useState(false);
  const [scrolled, setScrolled] = React.useState(false);
 
  React.useEffect(() => {
    const handleScroll = () => {
      setScrolled(window.scrollY > 20);
    };
    window.addEventListener("scroll", handleScroll);
    return () => window.removeEventListener("scroll", handleScroll);
  }, []);
 
  return (
    <nav
      className={cn(
        "absolute top-0 left-0 right-0 z-50 transition-all duration-300 border-b",
        scrolled
          ? "bg-white/90 dark:bg-[#050505]/90 backdrop-blur-md border-zinc-200 dark:border-zinc-800 py-2"
          : "bg-transparent border-transparent py-4",
      )}
    >
      <div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
        <div className="flex h-12 items-center justify-between">
          {/* Logo */}
          <div className="flex items-center gap-4">
            <Link href="#" className="flex items-center gap-2 group">
              <div className="relative flex h-8 w-8 items-center justify-center rounded-sm bg-amber-500/10 border border-amber-500/20 text-amber-500 transition-all group-hover:bg-amber-500 group-hover:text-black">
                <Terminal className="h-4 w-4" />
              </div>
              <div className="flex flex-col">
                <span className="font-mono text-sm font-bold tracking-wider text-zinc-900 dark:text-white uppercase group-hover:text-amber-500 transition-colors">
                  DEVTOOLS_INC
                </span>
                <span className="font-mono text-[10px] text-zinc-500 tracking-widest uppercase">
                  V2.4.0_RC
                </span>
              </div>
            </Link>
          </div>
 
          {/* Desktop Nav */}
          <div className="hidden md:block">
            <div className="flex items-center gap-8">
              {["Features", "SDKs", "Documentation", "Pricing"].map((item) => (
                <Link
                  key={item}
                  href="#"
                  className="text-xs font-mono font-medium text-zinc-600 dark:text-zinc-400 transition-colors hover:text-amber-600 dark:hover:text-amber-500 uppercase tracking-wider relative group"
                >
                  <span className="relative z-10">
                    <span className="text-amber-600 dark:text-amber-500 opacity-0 group-hover:opacity-100 transition-opacity mr-1">
                      &gt;
                    </span>
                    {item}
                  </span>
                </Link>
              ))}
            </div>
          </div>
 
          {/* Right Side */}
          <div className="hidden md:flex items-center gap-6">
            <div className="flex items-center gap-2 px-3 py-1 rounded-sm bg-zinc-100 dark:bg-zinc-900/50 border border-zinc-200 dark:border-zinc-800">
              <div className="h-1.5 w-1.5 rounded-full bg-green-500 animate-pulse" />
              <span className="text-[10px] font-mono text-zinc-600 dark:text-zinc-400 uppercase tracking-wider">
                System: Online
              </span>
            </div>
 
            <Link
              href="https://github.com"
              target="_blank"
              className="text-zinc-600 dark:text-zinc-500 hover:text-zinc-900 dark:hover:text-white transition-colors"
            >
              <Github className="h-5 w-5" />
            </Link>
 
            <Button className="bg-amber-500 text-black hover:bg-amber-400 rounded-sm font-mono uppercase text-xs font-bold tracking-wider h-9 px-6 border border-amber-400 shadow-[0_0_10px_rgba(245,158,11,0.3)] hover:shadow-[0_0_20px_rgba(245,158,11,0.5)] transition-all">
              Initialize_Key
            </Button>
          </div>
 
          {/* Mobile Menu Button */}
          <div className="md:hidden">
            <button
              onClick={() => setIsOpen(!isOpen)}
              className="text-zinc-600 dark:text-zinc-400 hover:text-zinc-900 dark:hover:text-white p-2"
            >
              {isOpen ? (
                <X className="h-6 w-6" />
              ) : (
                <Menu className="h-6 w-6" />
              )}
            </button>
          </div>
        </div>
      </div>
 
      {/* Mobile Menu */}
      <AnimatePresence>
        {isOpen && (
          <motion.div
            initial={{ opacity: 0, height: 0 }}
            animate={{ opacity: 1, height: "auto" }}
            exit={{ opacity: 0, height: 0 }}
            className="md:hidden border-b border-zinc-200 dark:border-zinc-800 bg-white dark:bg-[#0A0A0A]"
          >
            <div className="space-y-1 px-4 pb-6 pt-2">
              {["Features", "SDKs", "Documentation", "Pricing"].map((item) => (
                <Link
                  key={item}
                  href="#"
                  className="block px-3 py-3 text-sm font-mono uppercase tracking-wider text-zinc-600 dark:text-zinc-400 hover:bg-zinc-100 dark:hover:bg-zinc-900 hover:text-amber-600 dark:hover:text-amber-500 border-l-2 border-transparent hover:border-amber-500 transition-all"
                >
                  {item}
                </Link>
              ))}
              <div className="mt-6 flex flex-col gap-3 px-3">
                <Button className="w-full bg-amber-500 text-black hover:bg-amber-400 rounded-sm font-mono uppercase text-xs font-bold tracking-wider h-10">
                  Initialize_Key
                </Button>
                <Button
                  variant="outline"
                  className="w-full justify-center border-zinc-200 dark:border-zinc-800 text-zinc-600 dark:text-zinc-400 hover:bg-zinc-100 dark:hover:bg-zinc-900 hover:text-zinc-900 dark:hover:text-white rounded-sm font-mono uppercase text-xs h-10"
                >
                  <Github className="mr-2 h-4 w-4" />
                  Star on GitHub
                </Button>
              </div>
            </div>
          </motion.div>
        )}
      </AnimatePresence>
    </nav>
  );
}

Hero

"use client";
 
import React, { useRef, useState, useEffect } from "react";
import {
  motion,
  useScroll,
  useTransform,
  useSpring,
  useMotionValue,
  useMotionTemplate,
} from "framer-motion";
import {
  ArrowRight,
  Terminal,
  Zap,
  Command,
  ChevronRight,
  Play,
  ScanLine,
  Box,
  Layers,
  Code2,
  Cpu,
  Globe,
} from "lucide-react";
import { Button } from "@/components/ui/button";
import { cn } from "@/lib/utils";
 
function GridBackground() {
  return (
    <div className="absolute inset-0 overflow-hidden pointer-events-none">
      <div className="absolute inset-0 bg-[linear-gradient(to_right,#202020_1px,transparent_1px),linear-gradient(to_bottom,#202020_1px,transparent_1px)] bg-[size:4rem_4rem] [mask-image:radial-gradient(ellipse_60%_50%_at_50%_0%,#000_70%,transparent_100%)] opacity-20" />
      <div className="absolute top-0 left-0 right-0 h-[500px] bg-gradient-to-b from-amber-500/5 via-transparent to-transparent blur-3xl" />
    </div>
  );
}
 
function TechnicalHUD() {
  return (
    <div className="max-w-7xl mx-auto absolute inset-0 pointer-events-none select-none z-0 overflow-hidden">
      {/* Top Left */}
      <div className="absolute top-32 left-8 flex flex-col gap-2 opacity-20">
        <div className="flex items-center gap-2">
          <div className="h-2 w-2 bg-amber-500 animate-pulse" />
          <div className="font-mono text-[10px] text-amber-500 tracking-widest">
            SYS.READY
          </div>
        </div>
        <div className="h-24 w-[1px] bg-gradient-to-b from-amber-500/50 to-transparent" />
      </div>
 
      {/* Top Right */}
      <div className="absolute top-32 right-8 flex flex-col items-end gap-2 opacity-20">
        <div className="flex items-center gap-2">
          <div className="font-mono text-[10px] text-amber-500 tracking-widest">
            NET.SECURE
          </div>
          <div className="h-2 w-2 bg-amber-500 animate-pulse" />
        </div>
        <div className="h-24 w-[1px] bg-gradient-to-b from-amber-500/50 to-transparent" />
      </div>
 
      {/* Bottom Measurements */}
      <div className="absolute bottom-12 left-1/2 -translate-x-1/2 flex gap-12 opacity-20">
        {[...Array(5)].map((_, i) => (
          <div key={i} className="flex flex-col items-center gap-2 group">
            <div className="h-3 w-[1px] bg-amber-500 group-hover:h-6 transition-all duration-500" />
            <div className="font-mono text-[10px] text-amber-500">{i * 25}</div>
          </div>
        ))}
      </div>
 
      {/* Corner Brackets */}
      <div className="absolute top-24 left-4 w-8 h-8 border-t border-l border-zinc-300 dark:border-zinc-800 opacity-50" />
      <div className="absolute top-24 right-4 w-8 h-8 border-t border-r border-zinc-300 dark:border-zinc-800 opacity-50" />
      <div className="absolute bottom-8 left-4 w-8 h-8 border-b border-l border-zinc-300 dark:border-zinc-800 opacity-50" />
      <div className="absolute bottom-8 right-4 w-8 h-8 border-b border-r border-zinc-300 dark:border-zinc-800 opacity-50" />
    </div>
  );
}
 
function ScannerInterface() {
  const [isHovered, setIsHovered] = useState(false);
  const mouseX = useMotionValue(0);
  const mouseY = useMotionValue(0);
 
  const handleMouseMove = (e: React.MouseEvent<HTMLDivElement>) => {
    const rect = e.currentTarget.getBoundingClientRect();
    mouseX.set(e.clientX - rect.left);
    mouseY.set(e.clientY - rect.top);
  };
 
  return (
    <motion.div
      initial={{ opacity: 0, scale: 0.9, rotateX: 10 }}
      animate={{ opacity: 1, scale: 1, rotateX: 0 }}
      transition={{ duration: 1, delay: 0.5 }}
      onMouseMove={handleMouseMove}
      onMouseEnter={() => setIsHovered(true)}
      onMouseLeave={() => setIsHovered(false)}
      className="relative w-full max-w-5xl mx-auto aspect-[16/9] perspective-1000 group"
    >
      {/* Main Container */}
      <div className="relative h-full w-full rounded-xl border border-zinc-200 dark:border-white/10 bg-zinc-50 dark:bg-[#050505] overflow-hidden shadow-2xl">
        {/* Split View: Website vs Code */}
        <div className="absolute inset-0 flex">
          {/* Left: Website Preview */}
          <div className="w-1/2 h-full border-r border-zinc-200 dark:border-white/5 bg-zinc-100 dark:bg-[#0A0A0A] p-6 relative overflow-hidden">
            {/* 3D Wireframe Grid Overlay */}
            <div className="absolute inset-0 bg-[linear-gradient(to_right,#000000_1px,transparent_1px),linear-gradient(to_bottom,#000000_1px,transparent_1px)] dark:bg-[linear-gradient(to_right,#ffffff_1px,transparent_1px),linear-gradient(to_bottom,#ffffff_1px,transparent_1px)] bg-[size:2rem_2rem] opacity-[0.03] pointer-events-none" />
 
            <div className="absolute inset-0 bg-[url('https://images.unsplash.com/photo-1481487484168-9b930d5b7d9f?q=80&w=2661&auto=format&fit=crop')] bg-cover bg-center opacity-20 grayscale mix-blend-luminosity" />
 
            <div className="relative z-10 space-y-4">
              <div className="h-8 w-32 bg-zinc-300 dark:bg-white/10 rounded animate-pulse" />
              <div className="space-y-2">
                <div className="h-4 w-full bg-zinc-200 dark:bg-white/5 rounded" />
                <div className="h-4 w-2/3 bg-zinc-200 dark:bg-white/5 rounded" />
                <div className="h-4 w-4/5 bg-zinc-200 dark:bg-white/5 rounded" />
              </div>
              <div className="grid grid-cols-2 gap-4 mt-8">
                <div className="aspect-video bg-zinc-200 dark:bg-white/5 rounded border border-zinc-300 dark:border-white/5" />
                <div className="aspect-video bg-zinc-200 dark:bg-white/5 rounded border border-zinc-300 dark:border-white/5" />
              </div>
            </div>
 
            {/* Scanning Beam */}
            <motion.div
              animate={{ top: ["0%", "100%"] }}
              transition={{ duration: 3, repeat: Infinity, ease: "linear" }}
              className="absolute left-0 right-0 h-[2px] bg-amber-500 shadow-[0_0_20px_rgba(245,158,11,0.5)] z-20"
            >
              <div className="absolute inset-0 bg-amber-500 blur-sm" />
              {/* Scan Line Text */}
              <div className="absolute right-2 -top-6 text-[8px] font-mono text-amber-500 bg-black/50 px-1 rounded">
                SCANNING_SECTOR_01
              </div>
            </motion.div>
          </div>
 
          {/* Right: Code Extraction */}
          <div className="w-1/2 h-full bg-zinc-950 dark:bg-[#020202] p-6 font-mono text-xs md:text-sm overflow-hidden relative">
            <div className="absolute top-0 right-0 p-2 opacity-50">
              <div className="flex gap-1">
                <div className="h-2 w-2 rounded-full bg-red-500" />
                <div className="h-2 w-2 rounded-full bg-amber-500" />
                <div className="h-2 w-2 rounded-full bg-green-500" />
              </div>
            </div>
 
            <div className="space-y-1 text-zinc-400">
              <div className="flex gap-4 border-b border-white/5 pb-2 mb-4 text-zinc-500">
                <span>OUTPUT.JSON</span>
                <span>24KB</span>
                <span className="text-green-500">● LIVE</span>
              </div>
 
              <motion.div
                initial={{ opacity: 0 }}
                animate={{ opacity: 1 }}
                transition={{ staggerChildren: 0.1 }}
              >
                <div className="text-purple-400">{"{"}</div>
                <div className="pl-4">
                  <span className="text-blue-400">"status"</span>:{" "}
                  <span className="text-green-400">"success"</span>,
                </div>
                <div className="pl-4">
                  <span className="text-blue-400">"extracted_at"</span>:{" "}
                  <span className="text-amber-400">"2024-03-21T10:00:00Z"</span>
                  ,
                </div>
                <div className="pl-4">
                  <span className="text-blue-400">"data"</span>:{" "}
                  <span className="text-purple-400">{"{"}</span>
                </div>
 
                {/* Streaming Content Effect */}
                <motion.div
                  className="pl-8 border-l border-white/10 ml-4 my-2"
                  animate={{ height: ["0%", "100%"] }}
                  transition={{ duration: 3, repeat: Infinity, ease: "linear" }}
                >
                  <div>
                    <span className="text-blue-400">"headline"</span>:{" "}
                    <span className="text-amber-400">"Future of AI"</span>,
                  </div>
                  <div>
                    <span className="text-blue-400">"summary"</span>:{" "}
                    <span className="text-zinc-500">"..."</span>,
                  </div>
                  <div>
                    <span className="text-blue-400">"images"</span>:{" "}
                    <span className="text-purple-400">
                      ["img_1.jpg", "img_2.jpg"]
                    </span>
                    ,
                  </div>
                  <div>
                    <span className="text-blue-400">"sentiment"</span>:{" "}
                    <span className="text-green-400">0.98</span>
                  </div>
                </motion.div>
 
                <div className="pl-4 text-purple-400">{"}"}</div>
                <div className="text-purple-400">{"}"}</div>
              </motion.div>
            </div>
          </div>
        </div>
 
        {/* Overlay UI */}
        <div className="absolute inset-0 pointer-events-none border border-zinc-200 dark:border-white/5 rounded-xl">
          <div className="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-16 h-16 border border-white/10 rounded-full flex items-center justify-center">
            <div className="w-1 h-1 bg-amber-500 rounded-full animate-ping" />
          </div>
          <div className="absolute bottom-4 left-4 text-[10px] font-mono text-zinc-500">
            SCANNING_ENGINE_V2
          </div>
          <div className="absolute bottom-4 right-4 text-[10px] font-mono text-amber-500">
            PROCESSING...
          </div>
        </div>
      </div>
 
      {/* Ambient Glow */}
      <div className="absolute -inset-4 bg-amber-500/20 blur-3xl -z-10 opacity-20" />
    </motion.div>
  );
}
 
export function Hero() {
  return (
    <section className="relative min-h-[100vh] w-full overflow-hidden bg-white dark:bg-[#020202] text-zinc-900 dark:text-white selection:bg-amber-500/30 pt-32 pb-20">
      <GridBackground />
      <TechnicalHUD />
 
      <div className="relative z-10 mx-auto max-w-7xl px-4 sm:px-6 lg:px-8 flex flex-col items-center">
        {/* Top Label */}
        <motion.div
          initial={{ opacity: 0, y: 20 }}
          animate={{ opacity: 1, y: 0 }}
          transition={{ delay: 0.2 }}
          className="flex items-center gap-2 mb-8"
        >
          <div className="h-[1px] w-12 bg-gradient-to-r from-transparent to-amber-500/50" />
          <span className="text-xs font-mono text-amber-500 tracking-widest uppercase">
            Next Generation Extraction Protocol
          </span>
          <div className="h-[1px] w-12 bg-gradient-to-l from-transparent to-amber-500/50" />
        </motion.div>
 
        {/* Massive Headline */}
        <motion.h1
          initial={{ opacity: 0, y: 30 }}
          animate={{ opacity: 1, y: 0 }}
          transition={{
            duration: 0.8,
            delay: 0.3,
            ease: [0.2, 0.65, 0.3, 0.9],
          }}
          className="text-center font-sans text-6xl md:text-8xl lg:text-9xl font-bold tracking-tighter text-zinc-900 dark:text-white mb-8 relative"
        >
          <span className="relative inline-block">
            DATA
            <span className="absolute -top-4 -right-4 text-lg font-mono font-normal text-amber-500 opacity-50">
              01
            </span>
          </span>
          <br />
          <span className="text-transparent bg-clip-text bg-gradient-to-b from-zinc-400 to-zinc-800 dark:from-zinc-200 dark:to-zinc-600">
            REFINED
          </span>
        </motion.h1>
 
        <motion.p
          initial={{ opacity: 0, y: 20 }}
          animate={{ opacity: 1, y: 0 }}
          transition={{ duration: 0.8, delay: 0.5 }}
          className="text-center max-w-2xl text-lg text-zinc-600 dark:text-zinc-400 mb-12 leading-relaxed"
        >
          The universal API that transforms chaos into structure. Turn any URL
          into clean, typed JSON for your LLM pipeline.
        </motion.p>
 
        {/* Action Buttons */}
        <motion.div
          initial={{ opacity: 0, y: 20 }}
          animate={{ opacity: 1, y: 0 }}
          transition={{ duration: 0.8, delay: 0.6 }}
          className="flex flex-wrap justify-center gap-4 mb-20"
        >
          <Button className="h-12 px-8 bg-amber-500 text-black hover:bg-amber-400 rounded-none border-l-4 border-white font-bold tracking-wide transition-all hover:translate-x-1">
            START EXTRACTING
            <ArrowRight className="ml-2 h-4 w-4" />
          </Button>
          <Button
            variant="outline"
            className="h-12 px-8 border-zinc-200 dark:border-zinc-800 bg-zinc-100 dark:bg-zinc-900/50 text-zinc-900 dark:text-white hover:bg-zinc-200 dark:hover:bg-zinc-800 rounded-none font-mono text-xs tracking-widest uppercase"
          >
            <Terminal className="mr-2 h-4 w-4 text-amber-500" />
            View Documentation
          </Button>
        </motion.div>
 
        {/* The Scanner Interface */}
        <ScannerInterface />
 
        {/* Bottom Stats */}
        <motion.div
          initial={{ opacity: 0 }}
          animate={{ opacity: 1 }}
          transition={{ delay: 1 }}
          className="mt-20 grid grid-cols-2 md:grid-cols-4 gap-8 w-full max-w-4xl border-t border-zinc-200 dark:border-white/5 pt-8"
        >
          {[
            { label: "Uptime", value: "99.99%" },
            { label: "Latency", value: "<50ms" },
            { label: "Daily Req", value: "10M+" },
            { label: "Success", value: "99.8%" },
          ].map((stat, i) => (
            <div key={i} className="text-center">
              <div className="text-2xl font-bold text-zinc-900 dark:text-white font-mono">
                {stat.value}
              </div>
              <div className="text-xs text-zinc-500 uppercase tracking-widest mt-1">
                {stat.label}
              </div>
            </div>
          ))}
        </motion.div>
      </div>
    </section>
  );
}

Features

"use client";
 
import { useState } from "react";
import { motion, AnimatePresence } from "framer-motion";
import {
  Cpu,
  Globe,
  Zap,
  Shield,
  Code2,
  Workflow,
  Database,
  Lock,
  ArrowUpRight,
  Terminal,
  ArrowRight,
} from "lucide-react";
import { cn } from "@/lib/utils";
import { Button } from "@/components/ui/button";
 
const features = [
  {
    id: "extraction",
    title: "Intelligent Extraction",
    description:
      "Our AI engine automatically identifies and structures data from any layout.",
    icon: Cpu,
    stats: "99.9% Accuracy",
    gridArea: "md:col-span-2 md:row-span-2",
    visual: "ai-scan",
  },
  {
    id: "global",
    title: "Global Proxy Network",
    description: "Rotate through 50M+ residential IPs to bypass geo-blocks.",
    icon: Globe,
    stats: "190+ Countries",
    gridArea: "md:col-span-1 md:row-span-1",
    visual: "map",
  },
  {
    id: "speed",
    title: "Lightning Fast",
    description:
      "Optimized for speed with edge caching and parallel processing.",
    icon: Zap,
    stats: "<50ms Latency",
    gridArea: "md:col-span-1 md:row-span-1",
    visual: "graph",
  },
  {
    id: "security",
    title: "Enterprise Security",
    description: "SOC2 Type II certified with end-to-end encryption.",
    icon: Shield,
    stats: "Bank-Grade",
    gridArea: "md:col-span-2 md:row-span-1",
    visual: "shield",
  },
  {
    id: "dx",
    title: "Developer First",
    description: "Typed SDKs for every major language.",
    icon: Terminal,
    stats: "100% Typed",
    gridArea: "md:col-span-1 md:row-span-1",
    visual: "code",
  },
];
 
function FeatureCard({
  feature,
  index,
}: {
  feature: (typeof features)[0];
  index: number;
}) {
  const [isHovered, setIsHovered] = useState(false);
 
  return (
    <motion.div
      initial={{ opacity: 1, y: 20 }}
      whileInView={{ opacity: 1, y: 0 }}
      transition={{ delay: index * 0.1 }}
      viewport={{ once: true }}
      className={cn(
        "group relative overflow-hidden rounded-none border border-zinc-200 dark:border-zinc-800 bg-zinc-50 dark:bg-[#050505] p-8 transition-all duration-500 hover:border-amber-500/50",
        feature.gridArea,
      )}
      onMouseEnter={() => setIsHovered(true)}
      onMouseLeave={() => setIsHovered(false)}
    >
      {/* Industrial Screws */}
      <div className="absolute top-2 left-2 h-1.5 w-1.5 rounded-full bg-zinc-200 dark:bg-zinc-800 border border-zinc-300 dark:border-zinc-700 flex items-center justify-center">
        <div className="w-full h-[0.5px] bg-zinc-400 dark:bg-zinc-900 rotate-45" />
      </div>
      <div className="absolute top-2 right-2 h-1.5 w-1.5 rounded-full bg-zinc-200 dark:bg-zinc-800 border border-zinc-300 dark:border-zinc-700 flex items-center justify-center">
        <div className="w-full h-[0.5px] bg-zinc-400 dark:bg-zinc-900 rotate-45" />
      </div>
      <div className="absolute bottom-2 left-2 h-1.5 w-1.5 rounded-full bg-zinc-200 dark:bg-zinc-800 border border-zinc-300 dark:border-zinc-700 flex items-center justify-center">
        <div className="w-full h-[0.5px] bg-zinc-400 dark:bg-zinc-900 rotate-45" />
      </div>
      <div className="absolute bottom-2 right-2 h-1.5 w-1.5 rounded-full bg-zinc-200 dark:bg-zinc-800 border border-zinc-300 dark:border-zinc-700 flex items-center justify-center">
        <div className="w-full h-[0.5px] bg-zinc-400 dark:bg-zinc-900 rotate-45" />
      </div>
 
      {/* Background Grid */}
      <div className="absolute inset-0 bg-[linear-gradient(to_right,#000000_1px,transparent_1px),linear-gradient(to_bottom,#000000_1px,transparent_1px)] dark:bg-[linear-gradient(to_right,#202020_1px,transparent_1px),linear-gradient(to_bottom,#202020_1px,transparent_1px)] bg-[size:2rem_2rem] opacity-[0.03] dark:opacity-[0.05] group-hover:opacity-[0.05] dark:group-hover:opacity-[0.1] transition-opacity" />
 
      <div className="relative z-10 h-full flex flex-col justify-between">
        <div>
          <div className="flex items-start justify-between mb-6">
            <div className="p-3 bg-zinc-100 dark:bg-zinc-900/50 border border-zinc-200 dark:border-zinc-800 group-hover:border-amber-500/50 group-hover:bg-amber-500/10 transition-colors relative overflow-hidden">
              {/* Icon Scan Effect */}
              <div className="absolute inset-0 bg-gradient-to-r from-transparent via-black/5 dark:via-white/10 to-transparent -translate-x-full group-hover:animate-[shimmer_1.5s_infinite]" />
              <feature.icon className="h-6 w-6 text-zinc-500 dark:text-zinc-400 group-hover:text-amber-600 dark:group-hover:text-amber-500 transition-colors" />
            </div>
            <div className="flex flex-col items-end gap-1">
              <div className="flex items-center gap-2 text-[10px] font-mono text-zinc-600 group-hover:text-amber-500/70 transition-colors uppercase">
                <span>MOD.ID_{index + 1}</span>
                <ArrowUpRight className="h-3 w-3" />
              </div>
              <div className="flex gap-1">
                <div className="h-1 w-1 bg-zinc-800 rounded-full group-hover:bg-amber-500 transition-colors delay-75" />
                <div className="h-1 w-1 bg-zinc-800 rounded-full group-hover:bg-amber-500 transition-colors delay-100" />
                <div className="h-1 w-1 bg-zinc-800 rounded-full group-hover:bg-amber-500 transition-colors delay-150" />
              </div>
            </div>
          </div>
 
          <h3 className="text-xl font-bold text-zinc-900 dark:text-white mb-2 font-mono tracking-tight group-hover:text-amber-600 dark:group-hover:text-amber-500 transition-colors uppercase">
            {feature.title}
          </h3>
          <p className="text-zinc-600 dark:text-zinc-400 text-sm leading-relaxed max-w-[90%] font-mono">
            {feature.description}
          </p>
        </div>
 
        {/* Visual Elements based on type */}
        <div className="mt-8 relative h-32 w-full overflow-hidden rounded-sm bg-zinc-100 dark:bg-zinc-900/30 border border-zinc-200 dark:border-zinc-800/50 group-hover:border-amber-500/20 transition-colors">
          {feature.visual === "ai-scan" && (
            <div className="absolute inset-0 flex items-center justify-center">
              <div className="w-full h-[1px] bg-amber-500/20 absolute top-1/2" />
              <div className="h-full w-[1px] bg-amber-500/20 absolute left-1/2" />
              <motion.div
                animate={{ scale: [1, 1.2, 1], opacity: [0.5, 1, 0.5] }}
                transition={{ duration: 2, repeat: Infinity }}
                className="h-16 w-16 border border-amber-500/50 rounded-full flex items-center justify-center"
              >
                <div className="h-1 w-1 bg-amber-500 rounded-full" />
              </motion.div>
              {/* Scanning Line */}
              <motion.div
                animate={{ top: ["0%", "100%"] }}
                transition={{ duration: 2, repeat: Infinity, ease: "linear" }}
                className="absolute left-0 right-0 h-[1px] bg-amber-500/50 shadow-[0_0_10px_rgba(245,158,11,0.5)]"
              />
            </div>
          )}
 
          {feature.visual === "map" && (
            <div className="absolute inset-0 p-4 grid grid-cols-6 gap-1 opacity-30">
              {[...Array(24)].map((_, i) => (
                <motion.div
                  key={i}
                  animate={{ opacity: [0.2, 0.8, 0.2] }}
                  transition={{
                    duration: Math.random() * 2 + 1,
                    repeat: Infinity,
                  }}
                  className="bg-amber-500 rounded-sm"
                />
              ))}
            </div>
          )}
 
          {feature.visual === "graph" && (
            <div className="absolute inset-0 flex items-end justify-between p-4 gap-1">
              {[40, 70, 50, 90, 60, 80, 45].map((h, i) => (
                <motion.div
                  key={i}
                  initial={{ height: 0 }}
                  whileInView={{ height: `${h}%` }}
                  transition={{ duration: 0.5, delay: i * 0.1 }}
                  className="w-full bg-zinc-300 dark:bg-zinc-800 group-hover:bg-amber-500/50 transition-colors"
                />
              ))}
            </div>
          )}
 
          {feature.visual === "shield" && (
            <div className="absolute inset-0 flex items-center justify-center">
              <div className="absolute inset-0 bg-[radial-gradient(circle_at_center,rgba(245,158,11,0.1),transparent)]" />
              <Shield className="h-12 w-12 text-zinc-300 dark:text-zinc-700 group-hover:text-amber-500/50 transition-colors" />
              <motion.div
                animate={{ rotate: 360 }}
                transition={{ duration: 10, repeat: Infinity, ease: "linear" }}
                className="absolute h-20 w-20 border border-dashed border-zinc-300 dark:border-zinc-700 group-hover:border-amber-500/30 rounded-full"
              />
            </div>
          )}
 
          {feature.visual === "code" && (
            <div className="absolute inset-0 flex items-center justify-center bg-zinc-950 dark:bg-[#0A0A0A] p-4 font-mono text-[10px] leading-relaxed select-none">
              <div className="w-full space-y-1 opacity-50 group-hover:opacity-100 transition-opacity">
                <div className="flex gap-2">
                  <span className="text-purple-400">import</span>{" "}
                  <span className="text-white">SDK</span>{" "}
                  <span className="text-purple-400">from</span>{" "}
                  <span className="text-green-400">'pkg'</span>
                </div>
                <div className="flex gap-2">
                  <span className="text-blue-400">const</span>{" "}
                  <span className="text-amber-400">data</span> ={" "}
                  <span className="text-purple-400">await</span>
                </div>
                <div className="pl-4 text-zinc-600">// Type-safe response</div>
                <div className="pl-4">
                  <span className="text-white">SDK.extract()</span>
                </div>
              </div>
            </div>
          )}
        </div>
 
        <div className="mt-4 pt-4 border-t border-zinc-200 dark:border-zinc-800 flex items-center justify-between">
          <span className="text-[10px] font-mono text-zinc-500 uppercase tracking-wider">
            Performance_Metric
          </span>
          <span className="text-xs font-mono font-bold text-zinc-900 dark:text-white group-hover:text-amber-600 dark:group-hover:text-amber-500 transition-colors">
            {feature.stats}
          </span>
        </div>
      </div>
    </motion.div>
  );
}
 
export function Features() {
  return (
    <section className="py-32 bg-white dark:bg-[#020202] text-zinc-900 dark:text-white overflow-hidden relative">
      {/* Section Header */}
      <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 mb-20">
        <div className="flex flex-col md:flex-row md:items-end justify-between gap-8 border-b border-zinc-200 dark:border-zinc-800 pb-8">
          <div className="max-w-2xl">
            <div className="flex items-center gap-2 mb-4">
              <div className="h-1 w-1 bg-amber-500" />
              <span className="text-xs font-mono text-amber-500 tracking-widest uppercase">
                System Capabilities
              </span>
            </div>
            <h2 className="text-4xl md:text-5xl font-sans font-bold tracking-tight text-zinc-900 dark:text-white mb-4">
              Engineered for <br />
              <span className="text-zinc-500 dark:text-zinc-600">
                Scale & Precision
              </span>
            </h2>
            <p className="text-zinc-600 dark:text-zinc-400 text-lg max-w-xl">
              A complete toolkit designed for high-volume data extraction. Built
              to handle the complexity of the modern web.
            </p>
          </div>
 
          <div className="flex flex-col items-end gap-4">
            <div className="flex items-center gap-2 text-sm font-mono text-zinc-500">
              <div className="h-2 w-2 rounded-full bg-green-500 animate-pulse" />
              SYSTEM ONLINE
            </div>
            <Button
              variant="outline"
              className="rounded-none border-zinc-200 dark:border-zinc-800 hover:bg-zinc-100 dark:hover:bg-zinc-900 text-zinc-600 dark:text-zinc-300"
            >
              View Full Specs <ArrowRight className="ml-2 h-4 w-4" />
            </Button>
          </div>
        </div>
      </div>
 
      {/* Features Grid */}
      <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
        <div className="grid grid-cols-1 md:grid-cols-3 gap-4">
          {features.map((feature, index) => (
            <FeatureCard key={feature.id} feature={feature} index={index} />
          ))}
        </div>
      </div>
    </section>
  );
}

Live Demo

"use client";
 
import { useState, useEffect } from "react";
import { motion, AnimatePresence } from "framer-motion";
import {
  Play,
  RotateCcw,
  Loader2,
  Cpu,
  Wifi,
  ShieldCheck,
  Zap,
} from "lucide-react";
import { Button } from "@/components/ui/button";
import { cn } from "@/lib/utils";
 
const processingSteps = [
  {
    id: "ingest",
    label: "INGESTION_LAYER",
    details: "Receiving payload...",
    icon: Wifi,
    duration: 600,
  },
  {
    id: "security",
    label: "SECURITY_GATEWAY",
    details: "WAF & DDoS check...",
    icon: ShieldCheck,
    duration: 800,
  },
  {
    id: "compute",
    label: "COMPUTE_ENGINE",
    details: "JS Rendering & DOM...",
    icon: Cpu,
    duration: 1200,
  },
  {
    id: "extract",
    label: "AI_EXTRACTION",
    details: "LLM Parsing...",
    icon: Zap,
    duration: 1000,
  },
];
 
function BlinkingLed({
  delay,
  color = "bg-green-500",
}: {
  delay: number;
  color?: string;
}) {
  return (
    <div className="relative">
      <motion.div
        animate={{ opacity: [0.3, 1, 0.3] }}
        transition={{
          duration: 0.2,
          repeat: Infinity,
          repeatDelay: delay,
          repeatType: "reverse",
        }}
        className={cn(
          "h-1.5 w-1.5 rounded-full shadow-[inset_0_1px_1px_rgba(255,255,255,0.2)]",
          color,
        )}
      />
      {/* Glow Halo */}
      <motion.div
        animate={{ opacity: [0, 0.5, 0] }}
        transition={{
          duration: 0.2,
          repeat: Infinity,
          repeatDelay: delay,
          repeatType: "reverse",
        }}
        className={cn("absolute inset-0 rounded-full blur-[2px]", color)}
      />
    </div>
  );
}
 
export function LiveDemo() {
  const [isActive, setIsActive] = useState(false);
  const [currentStep, setCurrentStep] = useState(-1);
 
  const startSimulation = () => {
    setIsActive(true);
    setCurrentStep(0);
    processStep(0);
  };
 
  const processStep = (index: number) => {
    if (index >= processingSteps.length) {
      setTimeout(() => {
        setIsActive(false);
        setCurrentStep(processingSteps.length);
      }, 500);
      return;
    }
 
    setCurrentStep(index);
    setTimeout(() => {
      processStep(index + 1);
    }, processingSteps[index].duration);
  };
 
  const reset = () => {
    setIsActive(false);
    setCurrentStep(-1);
  };
 
  return (
    <section className="py-32 bg-white dark:bg-[#020202] text-zinc-900 dark:text-white overflow-hidden relative border-t border-zinc-200 dark:border-zinc-800">
      <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
        <div className="grid lg:grid-cols-2 gap-20 items-center">
          {/* Left: Narrative */}
          <div>
            <div className="flex items-center gap-2 mb-6">
              <div className="h-1 w-1 bg-amber-500" />
              <span className="text-xs font-mono text-amber-500 tracking-widest uppercase">
                Architecture Visualization
              </span>
            </div>
 
            <h2 className="text-4xl md:text-5xl font-sans font-bold tracking-tight text-zinc-900 dark:text-white mb-6">
              Vertical Integration <br />
              <span className="text-zinc-500 dark:text-zinc-600">
                at the Edge
              </span>
            </h2>
 
            <p className="text-zinc-600 dark:text-zinc-400 text-lg mb-10 leading-relaxed">
              Our stack is optimized for a single purpose: turning chaotic HTML
              into pristine JSON. Every request passes through our fortified,
              high-performance pipeline in milliseconds.
            </p>
 
            <div className="flex gap-4">
              <Button
                onClick={startSimulation}
                disabled={isActive}
                className="h-14 px-8 bg-amber-500 text-black hover:bg-amber-400 rounded-none font-bold tracking-wide transition-all hover:translate-x-1 disabled:opacity-50 disabled:hover:translate-x-0 shadow-[0_0_20px_rgba(245,158,11,0.3)]"
              >
                {isActive ? (
                  <>
                    <Loader2 className="mr-2 h-4 w-4 animate-spin" />
                    PROCESSING REQUEST
                  </>
                ) : (
                  <>
                    <Play className="mr-2 h-4 w-4 fill-current" />
                    INITIATE SEQUENCE
                  </>
                )}
              </Button>
 
              {currentStep === processingSteps.length && (
                <Button
                  onClick={reset}
                  variant="outline"
                  className="h-14 px-6 border-zinc-200 dark:border-zinc-800 bg-zinc-100 dark:bg-zinc-900/50 text-zinc-600 dark:text-zinc-400 hover:text-zinc-900 dark:hover:text-white hover:bg-zinc-200 dark:hover:bg-zinc-800 rounded-none font-mono text-xs tracking-widest"
                >
                  <RotateCcw className="mr-2 h-4 w-4" />
                  RESET
                </Button>
              )}
            </div>
          </div>
 
          {/* Right: Server Rack Visualization */}
          <div className="relative">
            {/* Side Beams (The "Left and Right Beam Type Thing") */}
            <div className="absolute -left-4 top-0 bottom-0 w-[1px] bg-gradient-to-b from-transparent via-zinc-800 to-transparent">
              <motion.div
                animate={{ top: ["0%", "100%"], opacity: [0, 1, 0] }}
                transition={{ duration: 3, repeat: Infinity, ease: "linear" }}
                className="absolute w-[2px] h-20 bg-amber-500/50 blur-[2px] -left-[0.5px]"
              />
            </div>
            <div className="absolute -right-4 top-0 bottom-0 w-[1px] bg-gradient-to-b from-transparent via-zinc-800 to-transparent">
              <motion.div
                animate={{ top: ["100%", "0%"], opacity: [0, 1, 0] }}
                transition={{ duration: 4, repeat: Infinity, ease: "linear" }}
                className="absolute w-[2px] h-20 bg-amber-500/50 blur-[2px] -right-[0.5px]"
              />
            </div>
 
            {/* Rack Frame */}
            <div className="relative z-10 bg-zinc-100 dark:bg-[#050505] border-x border-zinc-200 dark:border-zinc-800 p-2 shadow-2xl">
              {/* Rack Mount Rails */}
              <div className="absolute top-0 bottom-0 left-0 w-4 border-r border-zinc-200 dark:border-zinc-800 bg-zinc-200 dark:bg-[#080808] flex flex-col justify-between py-2 items-center">
                {[...Array(10)].map((_, i) => (
                  <div
                    key={i}
                    className="w-1.5 h-1.5 rounded-full bg-zinc-300 dark:bg-[#111] shadow-[inset_0_1px_1px_rgba(255,255,255,0.1)]"
                  />
                ))}
              </div>
              <div className="absolute top-0 bottom-0 right-0 w-4 border-l border-zinc-200 dark:border-zinc-800 bg-zinc-200 dark:bg-[#080808] flex flex-col justify-between py-2 items-center">
                {[...Array(10)].map((_, i) => (
                  <div
                    key={i}
                    className="w-1.5 h-1.5 rounded-full bg-zinc-300 dark:bg-[#111] shadow-[inset_0_1px_1px_rgba(255,255,255,0.1)]"
                  />
                ))}
              </div>
 
              {/* Header */}
              <div className="mx-4 flex items-center justify-between px-4 py-3 border border-zinc-200 dark:border-zinc-800 bg-zinc-50 dark:bg-[#0A0A0A] rounded-t-sm mb-2 relative overflow-hidden">
                {/* Glossy Overlay */}
                <div className="absolute inset-0 bg-gradient-to-b from-white/5 to-transparent pointer-events-none" />
 
                <div className="flex items-center gap-3 relative z-10">
                  <div className="relative">
                    <div
                      className={`h-2 w-2 rounded-full shadow-[inset_0_1px_2px_rgba(0,0,0,0.5)] ${isActive ? "bg-green-500" : "bg-zinc-300 dark:bg-zinc-800"}`}
                    />
                    {isActive && (
                      <div className="absolute inset-0 bg-green-500 rounded-full blur-[2px] animate-pulse" />
                    )}
                  </div>
                  <span className="text-[10px] font-mono text-zinc-500 dark:text-zinc-400 tracking-widest uppercase">
                    Rack_Unit_01 // Main_Blade
                  </span>
                </div>
                <div className="flex items-center gap-3 relative z-10">
                  {!isActive && (
                    <div className="flex gap-1.5">
                      <BlinkingLed delay={0.5} color="bg-amber-500" />
                      <BlinkingLed delay={1.2} color="bg-amber-500" />
                      <BlinkingLed delay={2.0} color="bg-green-500" />
                    </div>
                  )}
                  <div className="text-[10px] font-mono text-zinc-500 uppercase">
                    {isActive ? "STATUS: PROCESSING" : "STATUS: IDLE"}
                  </div>
                </div>
              </div>
 
              {/* Server Blades */}
              <div className="space-y-1 mx-4">
                {processingSteps.map((step, index) => {
                  const isCurrent = currentStep === index;
                  const isDone = currentStep > index;
 
                  return (
                    <div
                      key={step.id}
                      className={cn(
                        "relative h-16 bg-zinc-50 dark:bg-[#0A0A0A] border border-zinc-200 dark:border-zinc-800 flex items-center px-4 transition-all duration-500 overflow-hidden group",
                        isCurrent ? "border-amber-500/50" : "",
                      )}
                    >
                      {/* Blade Handle (Left) */}
                      <div className="absolute left-2 top-1/2 -translate-y-1/2 w-1 h-8 bg-zinc-300 dark:bg-zinc-800 rounded-full" />
 
                      {/* Active Progress Bar Background */}
                      {isCurrent && (
                        <motion.div
                          className="absolute inset-0 bg-amber-500/5 z-0"
                          initial={{ width: "0%" }}
                          animate={{ width: "100%" }}
                          transition={{
                            duration: step.duration / 1000,
                            ease: "linear",
                          }}
                        />
                      )}
 
                      {/* Content */}
                      <div className="relative z-10 flex items-center justify-between w-full pl-6">
                        <div className="flex items-center gap-4">
                          <div
                            className={cn(
                              "p-1.5 rounded bg-zinc-200 dark:bg-zinc-900 border border-zinc-300 dark:border-zinc-800 transition-colors duration-300",
                              isCurrent || isDone
                                ? "border-amber-500/50 text-amber-600 dark:text-amber-500"
                                : "text-zinc-400 dark:text-zinc-600",
                            )}
                          >
                            <step.icon className="h-4 w-4" />
                          </div>
                          <div>
                            <div
                              className={cn(
                                "text-[10px] font-mono font-bold tracking-wider transition-colors duration-300 uppercase",
                                isCurrent
                                  ? "text-amber-500"
                                  : isDone
                                    ? "text-zinc-400"
                                    : "text-zinc-400 dark:text-zinc-600",
                              )}
                            >
                              {step.label}
                            </div>
                            <div className="text-[10px] text-zinc-500 font-mono">
                              {isCurrent ? (
                                <span className="text-amber-500 animate-pulse">
                                  {step.details}
                                </span>
                              ) : isDone ? (
                                <span className="text-green-500">[OK]</span>
                              ) : (
                                <span className="opacity-50">Waiting...</span>
                              )}
                            </div>
                          </div>
                        </div>
 
                        {/* Status LED & Vents */}
                        <div className="flex items-center gap-4">
                          {/* Vents */}
                          <div className="flex gap-0.5">
                            {[...Array(4)].map((_, i) => (
                              <div
                                key={i}
                                className="w-0.5 h-4 bg-zinc-300 dark:bg-zinc-800"
                              />
                            ))}
                          </div>
 
                          <div className="relative">
                            <div
                              className={cn(
                                "h-1.5 w-1.5 rounded-full shadow-[inset_0_1px_2px_rgba(0,0,0,0.5)] transition-colors duration-300",
                                isCurrent
                                  ? "bg-amber-500"
                                  : isDone
                                    ? "bg-green-500"
                                    : "bg-zinc-300 dark:bg-zinc-900",
                              )}
                            />
                            {(isCurrent || isDone) && (
                              <div
                                className={cn(
                                  "absolute inset-0 rounded-full blur-[2px]",
                                  isCurrent
                                    ? "bg-amber-500 animate-pulse"
                                    : "bg-green-500",
                                )}
                              />
                            )}
                          </div>
                        </div>
                      </div>
 
                      {/* Blade Handle (Right) */}
                      <div className="absolute right-2 top-1/2 -translate-y-1/2 w-1 h-8 bg-zinc-300 dark:bg-zinc-800 rounded-full" />
                    </div>
                  );
                })}
              </div>
 
              {/* Footer / Output */}
              <div className="mt-2 mx-4 p-4 bg-zinc-100 dark:bg-[#080808] border border-zinc-200 dark:border-zinc-800 rounded-b-sm font-mono text-[10px] text-zinc-500 h-24 overflow-hidden relative">
                <div className="absolute top-2 right-2 flex gap-1">
                  <div className="h-1.5 w-1.5 rounded-full bg-zinc-300 dark:bg-zinc-800" />
                  <div className="h-1.5 w-1.5 rounded-full bg-zinc-300 dark:bg-zinc-800" />
                </div>
                <div className="space-y-1">
                  <div>System initialized. Ready for input.</div>
                  {currentStep >= 0 && (
                    <div className="text-zinc-600 dark:text-zinc-400">
                      &gt; Ingesting data stream...
                    </div>
                  )}
                  {currentStep >= 1 && (
                    <div className="text-zinc-600 dark:text-zinc-400">
                      &gt; Security checks passed.
                    </div>
                  )}
                  {currentStep >= 2 && (
                    <div className="text-zinc-600 dark:text-zinc-400">
                      &gt; Rendering JavaScript environment...
                    </div>
                  )}
                  {currentStep >= 3 && (
                    <div className="text-zinc-600 dark:text-zinc-400">
                      &gt; Extracting entities...
                    </div>
                  )}
                  {currentStep >= 4 && (
                    <div className="text-green-500">
                      &gt; Payload delivered. 200 OK.
                    </div>
                  )}
                  {!isActive && currentStep === -1 && (
                    <motion.div
                      animate={{ opacity: [0, 1, 0] }}
                      transition={{ duration: 1, repeat: Infinity }}
                      className="text-amber-500/50"
                    >
                      _
                    </motion.div>
                  )}
                </div>
              </div>
            </div>
 
            {/* Background Glows */}
            <div className="absolute -inset-4 bg-amber-500/5 blur-3xl -z-10" />
          </div>
        </div>
      </div>
    </section>
  );
}

Workflow

"use client";
 
import { useState } from "react";
import { motion } from "framer-motion";
import {
  Terminal,
  Settings,
  Database,
  ArrowRight,
  Cpu,
  Code2,
  Share2,
  CheckCircle2,
} from "lucide-react";
import { cn } from "@/lib/utils";
 
const steps = [
  {
    id: "01",
    label: "INSTALLATION",
    title: "Install SDK",
    description: "Single command integration.",
    icon: Terminal,
    code: "npm i @devtools/sdk",
    status: "ready",
  },
  {
    id: "02",
    label: "CONFIGURATION",
    title: "Configure",
    description: "Define schema & rules.",
    icon: Settings,
    code: "const client = new Client()",
    status: "processing",
  },
  {
    id: "03",
    label: "EXECUTION",
    title: "Extract Data",
    description: "Get structured JSON.",
    icon: Database,
    code: "await client.extract()",
    status: "done",
  },
];
 
function CircuitNode({
  step,
  index,
  isHovered,
  onHover,
}: {
  step: any;
  index: number;
  isHovered: boolean;
  onHover: (idx: number) => void;
}) {
  return (
    <div
      className="relative z-10 flex flex-col items-center group"
      onMouseEnter={() => onHover(index)}
    >
      {/* Node Chip (IC Style) */}
      <motion.div
        initial={{ scale: 0.9, opacity: 1 }}
        whileInView={{ scale: 1, opacity: 1 }}
        transition={{ delay: index * 0.2 }}
        className={cn(
          "relative h-32 w-32 bg-zinc-100 dark:bg-[#080808] flex items-center justify-center transition-all duration-300 cursor-pointer z-20",
          isHovered ? "shadow-[0_0_30px_rgba(245,158,11,0.2)]" : "",
        )}
      >
        {/* IC Body */}
        <div
          className={cn(
            "absolute inset-2 bg-white dark:bg-[#111] border transition-colors duration-300 flex items-center justify-center rounded-sm",
            isHovered
              ? "border-amber-500"
              : "border-zinc-300 dark:border-zinc-800",
          )}
        >
          {/* IC Pins - Top/Bottom */}
          <div className="absolute -top-1 left-4 right-4 flex justify-between">
            {[...Array(6)].map((_, i) => (
              <div key={i} className="w-1 h-2 bg-zinc-400 dark:bg-zinc-700" />
            ))}
          </div>
          <div className="absolute -bottom-1 left-4 right-4 flex justify-between">
            {[...Array(6)].map((_, i) => (
              <div key={i} className="w-1 h-2 bg-zinc-400 dark:bg-zinc-700" />
            ))}
          </div>
          {/* IC Pins - Left/Right */}
          <div className="absolute -left-1 top-4 bottom-4 flex flex-col justify-between">
            {[...Array(6)].map((_, i) => (
              <div key={i} className="w-2 h-1 bg-zinc-400 dark:bg-zinc-700" />
            ))}
          </div>
          <div className="absolute -right-1 top-4 bottom-4 flex flex-col justify-between">
            {[...Array(6)].map((_, i) => (
              <div key={i} className="w-2 h-1 bg-zinc-400 dark:bg-zinc-700" />
            ))}
          </div>
 
          {/* Inner Content */}
          <div className="flex flex-col items-center gap-2">
            <step.icon
              className={cn(
                "h-8 w-8 transition-colors duration-300",
                isHovered
                  ? "text-amber-600 dark:text-amber-500"
                  : "text-zinc-400 dark:text-zinc-600",
              )}
            />
            <div className="text-[8px] font-mono text-zinc-500 uppercase tracking-widest">
              IC_{step.id}
            </div>
          </div>
        </div>
      </motion.div>
 
      {/* Label & Code */}
      <div className="mt-8 text-center relative z-20">
        <div className="text-[10px] font-mono text-zinc-500 tracking-widest mb-2 uppercase">
          // Sequence_{step.id}
        </div>
        <h3
          className={cn(
            "text-xl font-bold font-mono mb-3 transition-colors duration-300 uppercase",
            isHovered
              ? "text-amber-600 dark:text-amber-500"
              : "text-zinc-800 dark:text-zinc-300",
          )}
        >
          {step.title}
        </h3>
 
        <div
          className={cn(
            "inline-flex items-center gap-2 px-4 py-2 bg-zinc-50 dark:bg-[#050505] border rounded-sm font-mono text-xs transition-colors duration-300",
            isHovered
              ? "border-amber-500/30 text-amber-600 dark:text-amber-400"
              : "border-zinc-200 dark:border-zinc-800 text-zinc-600 dark:text-zinc-500",
          )}
        >
          <Code2 className="h-3 w-3" />
          {step.code}
        </div>
      </div>
    </div>
  );
}
 
export function Workflow() {
  const [hoveredStep, setHoveredStep] = useState(0);
 
  return (
    <section className="py-32 bg-white dark:bg-[#020202] text-zinc-900 dark:text-white overflow-hidden relative">
      {/* Background Grid */}
      <div className="absolute inset-0 bg-[linear-gradient(to_right,#000000_1px,transparent_1px),linear-gradient(to_bottom,#000000_1px,transparent_1px)] dark:bg-[linear-gradient(to_right,#202020_1px,transparent_1px),linear-gradient(to_bottom,#202020_1px,transparent_1px)] bg-[size:2rem_2rem] opacity-[0.03] dark:opacity-[0.05] pointer-events-none" />
 
      <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
        <div className="mb-20 flex flex-col md:flex-row md:items-end justify-between gap-6 border-b border-zinc-200 dark:border-zinc-800 pb-8">
          <div className="max-w-2xl">
            <div className="flex items-center gap-2 mb-4">
              <div className="h-1 w-1 bg-amber-500" />
              <span className="text-xs font-mono text-amber-500 tracking-widest uppercase">
                Integration Protocol
              </span>
            </div>
            <h2 className="text-4xl md:text-5xl font-sans font-bold tracking-tight text-zinc-900 dark:text-white mb-4">
              Three steps to <br />
              <span className="text-zinc-500 dark:text-zinc-600">
                structured data
              </span>
            </h2>
          </div>
          <div className="text-right hidden md:block">
            <div className="text-xs font-mono text-zinc-500">
              EST. SETUP TIME: &lt; 5 MIN
            </div>
          </div>
        </div>
 
        <div className="relative">
          {/* Circuit Line Background */}
          <div className="absolute top-16 left-0 w-full h-[2px] bg-zinc-200 dark:bg-zinc-900 hidden md:block">
            {/* Circuit Traces */}
            <div className="absolute top-0 left-0 w-full h-full bg-[linear-gradient(90deg,transparent_50%,#e4e4e7_50%)] dark:bg-[linear-gradient(90deg,transparent_50%,#27272a_50%)] bg-[size:20px_100%]" />
          </div>
 
          {/* Active Circuit Line */}
          <motion.div
            className="absolute top-16 left-0 h-[2px] bg-amber-500 hidden md:block shadow-[0_0_15px_rgba(245,158,11,0.8)] z-10"
            initial={{ width: "0%" }}
            whileInView={{ width: "100%" }}
            transition={{ duration: 1.5, ease: "easeInOut" }}
          >
            <div className="absolute right-0 top-1/2 -translate-y-1/2 w-2 h-2 bg-white rounded-full shadow-[0_0_10px_white]" />
          </motion.div>
 
          <div className="grid grid-cols-1 md:grid-cols-3 gap-12 relative">
            {steps.map((step, index) => (
              <CircuitNode
                key={step.id}
                step={step}
                index={index}
                isHovered={hoveredStep === index}
                onHover={setHoveredStep}
              />
            ))}
          </div>
        </div>
      </div>
    </section>
  );
}

Code Examples

"use client";
 
import { useState } from "react";
import { motion, AnimatePresence } from "framer-motion";
import {
  Check,
  Copy,
  Terminal,
  FileCode,
  Hash,
  Command,
  ChevronRight,
} from "lucide-react";
import { cn } from "@/lib/utils";
 
const languages = [
  {
    id: "typescript",
    filename: "extract.ts",
    icon: FileCode,
    language: "typescript",
    code: `import { DevTools } from '@devtools/sdk';
 
// Initialize the client
const client = new DevTools({
  apiKey: process.env.DEVTOOLS_API_KEY,
});
 
// Extract structured data
const { data, error } = await client.extract({
  url: 'https://example.com/product/123',
  schema: {
    name: 'string',
    price: 'number',
    inStock: 'boolean',
    specs: 'object'
  }
});
 
if (error) throw error;
console.log('Extracted:', data);`,
  },
  {
    id: "python",
    filename: "main.py",
    icon: Hash,
    language: "python",
    code: `from devtools import DevTools
import os
 
# Initialize the client
client = DevTools(
    api_key=os.getenv("DEVTOOLS_API_KEY")
)
 
# Extract structured data
result = client.extract(
    url="https://example.com/product/123",
    schema={
        "name": "string",
        "price": "number",
        "in_stock": "boolean",
        "specs": "object"
    }
)
 
if result.error:
    raise Exception(result.error)
 
print(f"Extracted: {result.data}")`,
  },
  {
    id: "curl",
    filename: "request.sh",
    icon: Terminal,
    language: "bash",
    code: `# Submit extraction request
curl -X POST https://api.devtools.com/v1/extract \\
  -H "Authorization: Bearer $DEVTOOLS_API_KEY" \\
  -H "Content-Type: application/json" \\
  -d '{
    "url": "https://example.com/product/123",
    "options": {
      "render_js": true,
      "premium_proxy": true
    },
    "schema": {
      "name": "string",
      "price": "number",
      "inStock": "boolean",
      "specs": "object"
    }
  }'
 
# Returns structured JSON`,
  },
];
 
function SyntaxHighlighter({ code }: { code: string }) {
  const parts = code.split(/(\n)/);
  return (
    <>
      {parts.map((part, i) => {
        if (part === "\n") return <br key={i} />;
 
        // Escape HTML to prevent XSS and rendering issues
        let content = part
          .replace(/&/g, "&amp;")
          .replace(/</g, "&lt;")
          .replace(/>/g, "&gt;");
 
        // Tokenize strings and comments to protect them from keyword replacement
        const tokens: string[] = [];
        const saveToken = (str: string) => {
          tokens.push(str);
          return `__TOKEN_${tokens.length - 1}__`;
        };
 
        // 1. Strings and Comments (High priority, opaque)
        content = content
          .replace(/(\/\/.*|#.*)/g, (match) =>
            saveToken(`<span class="text-zinc-500 italic">${match}</span>`),
          )
          .replace(/(['"`])(.*?)\1/g, (match) =>
            saveToken(`<span class="text-amber-500">${match}</span>`),
          );
 
        // 2. Keywords
        content = content.replace(
          /\b(import|from|const|new|await|if|throw|class|def|return|print|curl)\b/g,
          '<span class="text-purple-600 dark:text-purple-400 font-bold">$1</span>',
        );
 
        // 3. Types/Functions
        content = content.replace(
          /\b(extract|log|DevTools)\b/g,
          '<span class="text-blue-600 dark:text-blue-400">$1</span>',
        );
 
        // 4. Restore tokens
        tokens.forEach((token, index) => {
          content = content.replace(`__TOKEN_${index}__`, token);
        });
 
        return <span key={i} dangerouslySetInnerHTML={{ __html: content }} />;
      })}
    </>
  );
}
 
export function CodeTabs() {
  const [activeTab, setActiveTab] = useState(0);
  const [copied, setCopied] = useState(false);
  const activeLang = languages[activeTab];
 
  const copyToClipboard = () => {
    navigator.clipboard.writeText(activeLang.code);
    setCopied(true);
    setTimeout(() => setCopied(false), 2000);
  };
 
  return (
    <section className="py-32 bg-white dark:bg-[#020202] text-zinc-900 dark:text-white relative overflow-hidden border-t border-zinc-200 dark:border-zinc-800">
      {/* Industrial Grid Background */}
      <div className="absolute inset-0 bg-[linear-gradient(to_right,#000000_1px,transparent_1px),linear-gradient(to_bottom,#000000_1px,transparent_1px)] dark:bg-[linear-gradient(to_right,#202020_1px,transparent_1px),linear-gradient(to_bottom,#202020_1px,transparent_1px)] bg-[size:4rem_4rem] opacity-[0.03] dark:opacity-[0.05] pointer-events-none" />
 
      <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 relative z-10">
        <div className="grid lg:grid-cols-2 gap-20 items-start">
          {/* Left Content */}
          <div>
            <div className="flex items-center gap-2 mb-4">
              <div className="h-1 w-1 bg-amber-500" />
              <span className="text-xs font-mono text-amber-500 tracking-widest uppercase">
                SDK Integration
              </span>
            </div>
 
            <h2 className="text-4xl md:text-5xl font-sans font-bold tracking-tight text-zinc-900 dark:text-white mb-6">
              Native to your <br />
              <span className="text-zinc-400 dark:text-zinc-600">
                tech stack
              </span>
            </h2>
 
            <p className="text-zinc-600 dark:text-zinc-400 text-lg mb-8 leading-relaxed">
              Drop our SDK into any project. We provide fully typed libraries
              for TypeScript, Python, Go, and more. No complex configuration,
              just install and extract.
            </p>
 
            <div className="space-y-4">
              {[
                "Type-safe responses",
                "Automatic retries & backoff",
                "Built-in proxy rotation",
                "Async/Await support",
              ].map((item, i) => (
                <div key={i} className="flex items-center gap-3 group">
                  <div className="h-1.5 w-1.5 rounded-sm bg-zinc-300 dark:bg-zinc-700 group-hover:bg-amber-500 transition-colors" />
                  <span className="text-zinc-600 dark:text-zinc-400 font-mono text-sm group-hover:text-zinc-900 dark:group-hover:text-zinc-200 transition-colors">
                    {item}
                  </span>
                </div>
              ))}
            </div>
          </div>
 
          {/* Right: Industrial Code Console */}
          <div className="relative">
            {/* Decorative 'Hardware' Elements */}
            <div className="absolute -top-3 -left-3 w-6 h-6 border-t-2 border-l-2 border-zinc-200 dark:border-zinc-800 rounded-tl-lg" />
            <div className="absolute -bottom-3 -right-3 w-6 h-6 border-b-2 border-r-2 border-zinc-200 dark:border-zinc-800 rounded-br-lg" />
 
            <div className="relative rounded-lg border border-zinc-200 dark:border-zinc-800 bg-zinc-50 dark:bg-[#050505] shadow-2xl overflow-hidden">
              {/* Console Header */}
              <div className="flex items-center justify-between border-b border-zinc-200 dark:border-zinc-800 bg-zinc-100 dark:bg-[#0A0A0A] px-4 py-3">
                <div className="flex items-center gap-4">
                  <div className="flex gap-1.5">
                    <div className="h-2.5 w-2.5 rounded-full bg-zinc-300 dark:bg-zinc-800 border border-zinc-400 dark:border-zinc-700" />
                    <div className="h-2.5 w-2.5 rounded-full bg-zinc-300 dark:bg-zinc-800 border border-zinc-400 dark:border-zinc-700" />
                    <div className="h-2.5 w-2.5 rounded-full bg-zinc-300 dark:bg-zinc-800 border border-zinc-400 dark:border-zinc-700" />
                  </div>
                  <div className="h-4 w-[1px] bg-zinc-300 dark:bg-zinc-800" />
                  <div className="flex items-center gap-2 text-xs font-mono text-zinc-500">
                    <Command className="h-3 w-3" />
                    <span>devtools-sdk</span>
                  </div>
                </div>
                <div className="flex items-center gap-2">
                  <div className="px-2 py-0.5 rounded bg-zinc-200 dark:bg-zinc-900 border border-zinc-300 dark:border-zinc-800 text-[10px] font-mono text-zinc-500">
                    READ_ONLY
                  </div>
                </div>
              </div>
 
              {/* Tab Bar - Industrial Style */}
              <div className="flex border-b border-zinc-200 dark:border-zinc-800 bg-zinc-50 dark:bg-[#080808]">
                {languages.map((lang, index) => (
                  <button
                    key={lang.id}
                    onClick={() => setActiveTab(index)}
                    className={cn(
                      "flex items-center gap-2 px-6 py-2.5 text-xs font-mono font-medium transition-colors border-r border-zinc-200 dark:border-zinc-800 relative",
                      activeTab === index
                        ? "text-amber-600 dark:text-amber-500 bg-white dark:bg-[#050505]"
                        : "text-zinc-500 hover:text-zinc-800 dark:hover:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-zinc-900",
                    )}
                  >
                    {activeTab === index && (
                      <div className="absolute top-0 left-0 right-0 h-[2px] bg-amber-500" />
                    )}
                    <lang.icon className="h-3.5 w-3.5" />
                    {lang.filename}
                  </button>
                ))}
              </div>
 
              {/* Code Area */}
              <div className="p-6 overflow-x-auto min-h-[320px] relative bg-zinc-50 dark:bg-[#050505]">
                <button
                  onClick={copyToClipboard}
                  className="absolute top-4 right-4 p-2 rounded bg-zinc-200 dark:bg-zinc-900 border border-zinc-300 dark:border-zinc-800 text-zinc-500 hover:text-zinc-900 dark:hover:text-white hover:border-zinc-400 dark:hover:border-zinc-700 transition-all z-20"
                >
                  {copied ? (
                    <Check className="h-4 w-4 text-green-500" />
                  ) : (
                    <Copy className="h-4 w-4" />
                  )}
                </button>
 
                <div className="flex font-mono text-sm leading-relaxed relative z-10">
                  {/* Line Numbers */}
                  <div className="flex flex-col text-right pr-4 border-r border-zinc-200 dark:border-zinc-800/50 text-zinc-400 dark:text-zinc-700 select-none mr-4">
                    {Array.from({ length: 15 }).map((_, i) => (
                      <span key={i} className="h-6 text-[10px] pt-0.5">
                        {i + 1}
                      </span>
                    ))}
                  </div>
 
                  {/* Code Content */}
                  <div className="flex-1 text-zinc-800 dark:text-zinc-300">
                    <AnimatePresence mode="wait">
                      <motion.div
                        key={activeTab}
                        initial={{ opacity: 0, x: 5 }}
                        animate={{ opacity: 1, x: 0 }}
                        exit={{ opacity: 0, x: -5 }}
                        transition={{ duration: 0.15 }}
                      >
                        <SyntaxHighlighter code={activeLang.code} />
                        <motion.span
                          animate={{ opacity: [0, 1, 0] }}
                          transition={{ duration: 0.8, repeat: Infinity }}
                          className="inline-block w-2 h-4 bg-amber-500 ml-1 align-middle"
                        />
                      </motion.div>
                    </AnimatePresence>
                  </div>
                </div>
              </div>
 
              {/* Status Bar */}
              <div className="flex items-center justify-between px-4 py-1.5 border-t border-zinc-200 dark:border-zinc-800 bg-zinc-100 dark:bg-[#0A0A0A] text-[10px] font-mono text-zinc-500">
                <div className="flex gap-4">
                  <div className="flex items-center gap-1.5">
                    <div className="h-1.5 w-1.5 rounded-full bg-green-500/50" />
                    <span>READY</span>
                  </div>
                  <span>{activeLang.filename}</span>
                </div>
                <div className="flex gap-4">
                  <span>UTF-8</span>
                  <span className="uppercase">{activeLang.language}</span>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </section>
  );
}

Comparison

"use client";
 
import { useState } from "react";
import { motion } from "framer-motion";
import {
  Check,
  X,
  Zap,
  Shield,
  Clock,
  Globe,
  AlertTriangle,
  Terminal,
  Server,
  Database,
} from "lucide-react";
import { cn } from "@/lib/utils";
 
export function Comparison() {
  const [hoveredSide, setHoveredSide] = useState<"left" | "right" | null>(null);
 
  return (
    <section className="py-32 bg-white dark:bg-[#020202] text-zinc-900 dark:text-white overflow-hidden relative border-t border-zinc-200 dark:border-zinc-800">
      <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
        {/* Header */}
        <div className="text-center max-w-3xl mx-auto mb-20">
          <div className="flex items-center justify-center gap-2 mb-4">
            <div className="h-1 w-1 bg-amber-500" />
            <span className="text-xs font-mono text-amber-500 tracking-widest uppercase">
              System Benchmark
            </span>
          </div>
          <h2 className="text-4xl md:text-5xl font-sans font-bold tracking-tight text-zinc-900 dark:text-white mb-6">
            A generational leap in <br />
            <span className="text-zinc-500 dark:text-zinc-600">
              data extraction
            </span>
          </h2>
        </div>
 
        {/* 3D Comparison Container */}
        <div className="relative h-[600px] flex items-center justify-center perspective-1000">
          {/* LEFT CARD (DEVTOOLS) */}
          <motion.div
            className="absolute left-0 md:left-[10%] w-full md:w-[45%] h-[500px] z-20 cursor-pointer"
            initial={{ x: -50, rotateY: 5 }}
            whileHover={{ x: 0, rotateY: 0, scale: 1.05, zIndex: 30 }}
            animate={{
              x: hoveredSide === "right" ? -100 : 0,
              scale: hoveredSide === "right" ? 0.9 : 1,
              opacity: hoveredSide === "right" ? 0.5 : 1,
            }}
            onMouseEnter={() => setHoveredSide("left")}
            onMouseLeave={() => setHoveredSide(null)}
            transition={{ duration: 0.4 }}
          >
            <div className="h-full w-full rounded-2xl border border-amber-500/50 bg-zinc-50 dark:bg-[#050505] shadow-[0_0_50px_-10px_rgba(245,158,11,0.3)] overflow-hidden relative group backdrop-blur-sm">
              {/* Amber Glow */}
              <div className="absolute inset-0 bg-gradient-to-br from-amber-500/20 via-transparent to-transparent opacity-50" />
              {/* Scanning Beam */}
              <div className="absolute top-0 left-0 right-0 h-[2px] bg-amber-500 shadow-[0_0_20px_rgba(245,158,11,0.8)] animate-[scan_3s_ease-in-out_infinite] z-20" />
 
              {/* Content */}
              <div className="relative z-10 p-8 flex flex-col h-full">
                <div className="flex items-center justify-between mb-8">
                  <div className="flex items-center gap-2">
                    <div className="h-8 w-8 rounded bg-amber-500 flex items-center justify-center text-black">
                      <Terminal className="h-5 w-5" />
                    </div>
                    <span className="font-bold text-xl tracking-tight font-mono">
                      DevTools_SDK
                    </span>
                  </div>
                  <div className="px-2 py-1 rounded bg-amber-500/20 border border-amber-500/30 text-amber-500 text-xs font-mono">
                    V2.4.0_STABLE
                  </div>
                </div>
 
                <div className="space-y-6 flex-1">
                  <div className="p-4 rounded-xl bg-zinc-100 dark:bg-zinc-900/50 border border-zinc-200 dark:border-zinc-800 backdrop-blur-sm relative overflow-hidden">
                    <div className="absolute inset-0 bg-amber-500/5 animate-pulse" />
                    <div className="text-xs text-zinc-500 mb-2 font-mono uppercase">
                      Extraction_Success_Rate
                    </div>
                    <div className="text-3xl font-bold text-zinc-900 dark:text-white flex items-end gap-2 font-mono">
                      99.99%
                      <span className="text-sm text-green-500 mb-1"></span>
                    </div>
                    <div className="h-1 w-full bg-zinc-300 dark:bg-zinc-800 rounded-full mt-3 overflow-hidden">
                      <div className="h-full bg-amber-500 w-[99.9%]" />
                    </div>
                  </div>
 
                  <div className="space-y-3">
                    {[
                      "AI-Powered Parsing",
                      "Residential Proxy Network",
                      "JavaScript Rendering",
                      "Type-Safe SDKs",
                    ].map((feat, i) => (
                      <div
                        key={i}
                        className="flex items-center gap-3 text-sm text-zinc-700 dark:text-zinc-300 font-mono"
                      >
                        <div className="h-5 w-5 rounded-full bg-green-500/20 flex items-center justify-center">
                          <Check className="h-3 w-3 text-green-500" />
                        </div>
                        {feat}
                      </div>
                    ))}
                  </div>
                </div>
 
                <div className="mt-auto pt-6 border-t border-zinc-200 dark:border-zinc-800">
                  <div className="text-xs font-mono text-zinc-500 flex items-center gap-2">
                    <div className="h-2 w-2 rounded-full bg-green-500 animate-pulse" />
                    SYSTEM STATUS: OPTIMAL
                  </div>
                </div>
              </div>
            </div>
          </motion.div>
 
          {/* RIGHT CARD (LEGACY) */}
          <motion.div
            className="absolute right-0 md:right-[10%] w-full md:w-[45%] h-[480px] z-10 cursor-pointer"
            initial={{ x: 50, rotateY: -5 }}
            whileHover={{ x: 0, rotateY: 0, scale: 1.05, zIndex: 30 }}
            animate={{
              x: hoveredSide === "left" ? 100 : 0,
              scale: hoveredSide === "left" ? 0.9 : 1,
              opacity: hoveredSide === "left" ? 0.5 : 1,
            }}
            onMouseEnter={() => setHoveredSide("right")}
            onMouseLeave={() => setHoveredSide(null)}
            transition={{ duration: 0.4 }}
          >
            <div className="h-full w-full rounded-2xl border border-zinc-200 dark:border-zinc-800 bg-zinc-100 dark:bg-[#0A0A0A] overflow-hidden relative group grayscale hover:grayscale-0 transition-all duration-500 hover:border-red-500/30">
              {/* Noise Overlay */}
              <div className="absolute inset-0 bg-[url('https://grainy-gradients.vercel.app/noise.svg')] opacity-40 mix-blend-overlay" />
              {/* Glitch Overlay */}
              <div className="absolute inset-0 bg-red-500/10 opacity-0 group-hover:opacity-100 animate-pulse pointer-events-none z-20" />
 
              {/* Content */}
              <div className="relative z-10 p-8 flex flex-col h-full opacity-60 group-hover:opacity-100 transition-opacity">
                <div className="flex items-center justify-between mb-8">
                  <div className="flex items-center gap-2">
                    <div className="h-8 w-8 rounded bg-zinc-300 dark:bg-zinc-800 flex items-center justify-center text-zinc-500 dark:text-zinc-400">
                      <Server className="h-5 w-5" />
                    </div>
                    <span className="font-bold text-xl tracking-tight text-zinc-500 dark:text-zinc-400 font-mono line-through decoration-red-500/50">
                      Legacy_APIs
                    </span>
                  </div>
                  <div className="px-2 py-1 rounded bg-zinc-200 dark:bg-zinc-900 border border-zinc-300 dark:border-zinc-800 text-zinc-600 dark:text-zinc-400 text-xs font-mono">
                    DEPRECATED
                  </div>
                </div>
 
                <div className="space-y-6 flex-1">
                  <div className="p-4 rounded-xl bg-zinc-200 dark:bg-zinc-900/30 border border-zinc-300 dark:border-zinc-800 relative">
                    {/* Error Icon */}
                    <div className="absolute -right-2 -top-2">
                      <AlertTriangle className="h-6 w-6 text-red-500/50" />
                    </div>
                    <div className="text-xs text-zinc-600 dark:text-zinc-400 mb-2 font-mono uppercase">
                      Success_Rate
                    </div>
                    <div className="text-3xl font-bold text-zinc-500 dark:text-zinc-400 flex items-end gap-2 font-mono">
                      65.4%
                      <span className="text-sm text-red-500 mb-1"></span>
                    </div>
                    <div className="h-1 w-full bg-zinc-300 dark:bg-zinc-800 rounded-full mt-3 overflow-hidden">
                      <div className="h-full bg-zinc-400 dark:bg-zinc-600 w-[65%]" />
                    </div>
                  </div>
 
                  <div className="space-y-3">
                    {[
                      "Manual Parsing Rules",
                      "Datacenter Proxies Only",
                      "No JS Support",
                      "Rest API Only",
                    ].map((feat, i) => (
                      <div
                        key={i}
                        className="flex items-center gap-3 text-sm text-zinc-500 dark:text-zinc-400 font-mono"
                      >
                        <div className="h-5 w-5 rounded-full bg-red-500/10 flex items-center justify-center">
                          <X className="h-3 w-3 text-red-500" />
                        </div>
                        {feat}
                      </div>
                    ))}
                  </div>
                </div>
 
                <div className="mt-auto pt-6 border-t border-zinc-300 dark:border-zinc-800">
                  <div className="text-xs font-mono text-red-500 flex items-center gap-2">
                    <AlertTriangle className="h-3 w-3" />
                    HIGH_MAINTENANCE_REQUIRED
                  </div>
                </div>
              </div>
            </div>
          </motion.div>
        </div>
      </div>
    </section>
  );
}

Documentation Preview

"use client";
 
import { useState, useEffect } from "react";
import { motion, AnimatePresence } from "framer-motion";
import {
  FileText,
  Code,
  Terminal,
  Search,
  Book,
  ChevronRight,
  Command,
  Zap,
} from "lucide-react";
import { cn } from "@/lib/utils";
 
export function Preview() {
  const [activeSidebarItem, setActiveSidebarItem] = useState(0);
  const [searchPlaceholder, setSearchPlaceholder] = useState("");
  const [isTyping, setIsTyping] = useState(true);
 
  // Sidebar auto-navigation simulation
  useEffect(() => {
    const interval = setInterval(() => {
      setActiveSidebarItem((prev) => (prev + 1) % 3);
    }, 4000);
    return () => clearInterval(interval);
  }, []);
 
  // Search typing simulation
  useEffect(() => {
    const phrases = [
      "Search documentation...",
      "How to rotate proxies...",
      "Rate limits...",
      "Authentication...",
    ];
    let currentPhraseIndex = 0;
    let currentCharIndex = 0;
    let isDeleting = false;
    let timeout: NodeJS.Timeout;
 
    const type = () => {
      const currentPhrase = phrases[currentPhraseIndex];
 
      if (isDeleting) {
        setSearchPlaceholder(currentPhrase.substring(0, currentCharIndex - 1));
        currentCharIndex--;
      } else {
        setSearchPlaceholder(currentPhrase.substring(0, currentCharIndex + 1));
        currentCharIndex++;
      }
 
      if (!isDeleting && currentCharIndex === currentPhrase.length) {
        isDeleting = true;
        timeout = setTimeout(type, 2000); // Pause at end
      } else if (isDeleting && currentCharIndex === 0) {
        isDeleting = false;
        currentPhraseIndex = (currentPhraseIndex + 1) % phrases.length;
        timeout = setTimeout(type, 500); // Pause before next
      } else {
        timeout = setTimeout(type, isDeleting ? 50 : 100);
      }
    };
 
    timeout = setTimeout(type, 1000);
    return () => clearTimeout(timeout);
  }, []);
 
  return (
    <section className="py-32 bg-white dark:bg-[#020202] text-zinc-900 dark:text-white overflow-hidden relative border-t border-zinc-200 dark:border-zinc-800">
      <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
        <div className="grid lg:grid-cols-2 gap-20 items-start">
          {/* Left Content */}
          <div>
            <div className="flex items-center gap-2 mb-6">
              <div className="h-1 w-1 bg-amber-500" />
              <span className="text-xs font-mono text-amber-500 tracking-widest uppercase">
                Developer Resources
              </span>
            </div>
 
            <h2 className="text-4xl md:text-5xl font-sans font-bold tracking-tight text-zinc-900 dark:text-white mb-6">
              Documentation that <br />
              <span className="text-zinc-500 dark:text-zinc-600">
                actually helps
              </span>
            </h2>
 
            <p className="text-zinc-600 dark:text-zinc-400 text-lg mb-10 leading-relaxed">
              We treat documentation as a product. Interactive examples,
              auto-generated API references, and dark mode by default.
              Everything you need to ship faster.
            </p>
 
            <div className="space-y-6">
              {[
                {
                  title: "Interactive Playground",
                  desc: "Test API endpoints directly from your browser.",
                  icon: Terminal,
                },
                {
                  title: "Auto-generated Types",
                  desc: "Get TypeScript definitions for every endpoint.",
                  icon: Code,
                },
                {
                  title: "Guides & Tutorials",
                  desc: "Step-by-step guides for common use cases.",
                  icon: Book,
                },
              ].map((item, i) => (
                <div key={i} className="flex gap-5 group">
                  <div className="mt-1 h-10 w-10 shrink-0 rounded-lg bg-zinc-100 dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 flex items-center justify-center group-hover:border-amber-500/30 group-hover:bg-amber-500/10 transition-colors duration-300">
                    <item.icon className="h-5 w-5 text-zinc-500 dark:text-zinc-500 group-hover:text-amber-600 dark:group-hover:text-amber-500 transition-colors" />
                  </div>
                  <div>
                    <h3 className="text-zinc-900 dark:text-white font-sans font-bold text-lg mb-1 group-hover:text-amber-600 dark:group-hover:text-amber-500 transition-colors">
                      {item.title}
                    </h3>
                    <p className="text-zinc-500 text-sm leading-relaxed">
                      {item.desc}
                    </p>
                  </div>
                </div>
              ))}
            </div>
          </div>
 
          {/* Right: Docs Preview */}
          <div className="relative group">
            {/* Glow */}
            <div className="absolute -inset-1 bg-gradient-to-r from-amber-500/10 to-purple-500/10 rounded-xl blur-2xl opacity-20 group-hover:opacity-40 transition-opacity duration-500" />
 
            <div className="relative rounded-xl border border-zinc-200 dark:border-zinc-800 bg-zinc-50 dark:bg-[#050505] shadow-2xl overflow-hidden min-h-[500px] flex flex-col">
              {/* Header */}
              <div className="flex items-center justify-between border-b border-zinc-200 dark:border-zinc-800 bg-zinc-100 dark:bg-[#0A0A0A] px-4 py-3">
                <div className="flex items-center gap-3">
                  <div className="h-6 w-6 rounded-sm bg-amber-500/20 flex items-center justify-center border border-amber-500/30">
                    <Terminal className="h-3 w-3 text-amber-500" />
                  </div>
                  <div className="flex flex-col">
                    <span className="font-mono font-bold text-xs text-zinc-700 dark:text-zinc-300 uppercase tracking-wider">
                      System_Manual_v2.4
                    </span>
                    <span className="text-[8px] text-zinc-600 font-mono">
                      ACCESS_LEVEL: PUBLIC
                    </span>
                  </div>
                </div>
 
                {/* Search Bar Mockup */}
                <div className="hidden sm:flex items-center gap-2 px-3 py-1.5 rounded-none bg-zinc-50 dark:bg-[#050505] border border-zinc-200 dark:border-zinc-800 text-xs text-zinc-500 w-64 relative overflow-hidden group/search hover:border-zinc-400 dark:hover:border-zinc-700 transition-colors">
                  <span className="text-amber-500 font-mono mr-1">&gt;</span>
                  <span className="text-zinc-400 min-w-[100px] whitespace-nowrap font-mono">
                    {searchPlaceholder}
                    <span className="animate-pulse bg-amber-500/50 text-transparent ml-0.5 w-2 inline-block">
                      _
                    </span>
                  </span>
                  <div className="ml-auto flex items-center gap-1">
                    <div className="h-1 w-1 bg-zinc-400 dark:bg-zinc-700 rounded-full" />
                    <div className="h-1 w-1 bg-zinc-400 dark:bg-zinc-700 rounded-full" />
                    <div className="h-1 w-1 bg-zinc-400 dark:bg-zinc-700 rounded-full" />
                  </div>
                </div>
              </div>
 
              <div className="flex flex-1">
                {/* Sidebar */}
                <div className="w-48 border-r border-zinc-200 dark:border-zinc-800 bg-zinc-50 dark:bg-[#080808] p-0 hidden sm:block">
                  <div className="flex flex-col h-full">
                    <div className="p-4 border-b border-zinc-200 dark:border-zinc-800/50">
                      <div className="text-[10px] font-mono text-zinc-500 uppercase tracking-wider mb-3 flex items-center gap-2">
                        <div className="h-1 w-1 bg-amber-500 rounded-full" />
                        Modules
                      </div>
                      <div className="space-y-0.5">
                        {["Introduction", "Quickstart", "Authentication"].map(
                          (item, i) => (
                            <div
                              key={item}
                              className={cn(
                                "px-3 py-2 text-xs cursor-pointer transition-all duration-300 flex items-center justify-between group/item font-mono border-l-2",
                                activeSidebarItem === i
                                  ? "bg-zinc-200 dark:bg-zinc-900/50 text-amber-600 dark:text-amber-500 border-amber-500"
                                  : "text-zinc-500 hover:text-zinc-800 dark:hover:text-zinc-300 border-transparent hover:bg-zinc-200 dark:hover:bg-zinc-900/30",
                              )}
                            >
                              {item}
                              {activeSidebarItem === i && (
                                <span className="text-[10px] opacity-50">
                                  &lt;
                                </span>
                              )}
                            </div>
                          ),
                        )}
                      </div>
                    </div>
 
                    <div className="p-4">
                      <div className="text-[10px] font-mono text-zinc-500 uppercase tracking-wider mb-3 flex items-center gap-2">
                        <div className="h-1 w-1 bg-zinc-400 dark:bg-zinc-700 rounded-full" />
                        Reference
                      </div>
                      <div className="space-y-0.5">
                        {["Extraction API", "Proxy Networks", "Webhooks"].map(
                          (item, i) => (
                            <div
                              key={i}
                              className="px-3 py-2 text-zinc-600 text-xs hover:text-zinc-900 dark:hover:text-zinc-400 cursor-pointer font-mono border-l-2 border-transparent hover:border-zinc-400 dark:hover:border-zinc-700 transition-colors"
                            >
                              {item}
                            </div>
                          ),
                        )}
                      </div>
                    </div>
 
                    <div className="mt-auto p-4 border-t border-zinc-200 dark:border-zinc-800/50">
                      <div className="flex items-center gap-2 text-[10px] text-zinc-600 font-mono">
                        <div className="h-2 w-2 bg-green-900 rounded-full border border-green-700" />
                        API STATUS: ONLINE
                      </div>
                    </div>
                  </div>
                </div>
 
                {/* Content */}
                <div className="flex-1 p-8 bg-zinc-50 dark:bg-[#050505] relative">
                  {/* Content Transition */}
                  <AnimatePresence mode="wait">
                    <motion.div
                      key={activeSidebarItem}
                      initial={{ opacity: 0, y: 10 }}
                      animate={{ opacity: 1, y: 0 }}
                      exit={{ opacity: 0, y: -10 }}
                      transition={{ duration: 0.3 }}
                    >
                      <div className="flex items-center gap-2 text-amber-500 text-xs font-mono mb-4">
                        {activeSidebarItem === 0 && <span>DOCS / INTRO</span>}
                        {activeSidebarItem === 1 && (
                          <span>DOCS / QUICKSTART</span>
                        )}
                        {activeSidebarItem === 2 && <span>DOCS / AUTH</span>}
                      </div>
 
                      <h3 className="text-2xl font-bold text-zinc-900 dark:text-white mb-4">
                        {activeSidebarItem === 0 && "Introduction"}
                        {activeSidebarItem === 1 && "Quickstart Guide"}
                        {activeSidebarItem === 2 && "Authentication"}
                      </h3>
 
                      <p className="text-zinc-600 dark:text-zinc-400 text-sm leading-relaxed mb-8 min-h-[60px]">
                        {activeSidebarItem === 0 &&
                          "DevTools is a powerful API for extracting structured data from any website. It handles proxies, browsers, and CAPTCHAs automatically."}
                        {activeSidebarItem === 1 &&
                          "Get up and running in less than 5 minutes. Install our SDK and make your first request with a single line of code for instant data extraction."}
                        {activeSidebarItem === 2 &&
                          "Secure your API requests using Bearer tokens. We support both API Key and OAuth2 authentication methods for maximum security."}
                      </p>
 
                      {/* Code Block */}
                      <div className="rounded-sm border border-zinc-200 dark:border-zinc-800 bg-zinc-100 dark:bg-[#0A0A0A] overflow-hidden relative group/code shadow-lg">
                        <div className="flex items-center justify-between px-4 py-2 border-b border-zinc-200 dark:border-zinc-800 bg-zinc-200 dark:bg-[#080808]">
                          <span className="text-[10px] text-zinc-500 font-mono uppercase">
                            Terminal // Bash
                          </span>
                          <div className="flex gap-1.5">
                            <div className="h-1.5 w-1.5 rounded-full bg-zinc-400 dark:bg-zinc-800" />
                            <div className="h-1.5 w-1.5 rounded-full bg-zinc-400 dark:bg-zinc-800" />
                          </div>
                        </div>
                        <div className="p-6 font-mono text-xs leading-relaxed overflow-x-auto h-[200px]">
                          {activeSidebarItem === 0 && (
                            <>
                              <div className="text-zinc-500 mb-2 select-none">
                                # Install the SDK via NPM
                              </div>
                              <div className="text-zinc-800 dark:text-zinc-300 flex items-center mb-2">
                                <span className="text-green-500 mr-2">$</span>
                                npm install{" "}
                                <span className="text-amber-600 dark:text-amber-500 ml-2">
                                  @devtools/sdk
                                </span>
                              </div>
                              <div className="text-zinc-500 mb-2 select-none mt-4">
                                # Initialize the project
                              </div>
                              <div className="text-zinc-800 dark:text-zinc-300 flex items-center">
                                <span className="text-green-500 mr-2">$</span>
                                npx devtools init
                                <span className="animate-pulse ml-1 w-2 h-4 bg-zinc-500 inline-block align-middle opacity-50" />
                              </div>
                            </>
                          )}
                          {activeSidebarItem === 1 && (
                            <>
                              <div className="text-purple-600 dark:text-purple-400">
                                import{" "}
                                <span className="text-zinc-800 dark:text-zinc-300">
                                  {"{ DevTools }"}
                                </span>{" "}
                                from{" "}
                                <span className="text-green-600 dark:text-green-400">
                                  '@devtools/sdk'
                                </span>
                              </div>
                              <div className="text-zinc-800 dark:text-zinc-300 mt-2">
                                const client ={" "}
                                <span className="text-blue-600 dark:text-blue-400">
                                  new DevTools()
                                </span>
                              </div>
                              <div className="text-zinc-800 dark:text-zinc-300 mt-2">
                                <span className="text-purple-600 dark:text-purple-400">
                                  await
                                </span>{" "}
                                client.
                                <span className="text-blue-600 dark:text-blue-400">
                                  extract
                                </span>
                                ({`{`}
                              </div>
                              <div className="text-zinc-800 dark:text-zinc-300 pl-4">
                                url:{" "}
                                <span className="text-green-600 dark:text-green-400">
                                  'https://example.com'
                                </span>
                              </div>
                              <div className="text-zinc-800 dark:text-zinc-300">
                                {`})`}
                              </div>
                            </>
                          )}
                          {activeSidebarItem === 2 && (
                            <>
                              <div className="text-zinc-500 mb-2 select-none">
                                # Authenticated Request
                              </div>
                              <div className="text-purple-600 dark:text-purple-400">
                                curl{" "}
                                <span className="text-zinc-800 dark:text-zinc-300">
                                  -X POST https://api.devtools.com/v1/extract \
                                </span>
                              </div>
                              <div className="pl-4 text-zinc-800 dark:text-zinc-300">
                                -H{" "}
                                <span className="text-amber-600 dark:text-amber-500">
                                  "Authorization: Bearer sk_..."
                                </span>{" "}
                                \
                              </div>
                              <div className="pl-4 text-zinc-800 dark:text-zinc-300">
                                -d{" "}
                                <span className="text-green-600 dark:text-green-400">
                                  {'\'{"url": "https://example.com" }\''}
                                </span>
                              </div>
                            </>
                          )}
                        </div>
                      </div>
                    </motion.div>
                  </AnimatePresence>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </section>
  );
}

Testimonials

"use client";
 
import { useState, useEffect } from "react";
import { motion, AnimatePresence } from "framer-motion";
import { Star, MessageSquare, Quote, MapPin } from "lucide-react";
import { cn } from "@/lib/utils";
 
// Custom X (Twitter) Logo Component
const XLogo = ({ className }: { className?: string }) => (
  <svg
    viewBox="0 0 24 24"
    aria-hidden="true"
    className={className}
    fill="currentColor"
  >
    <path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z" />
  </svg>
);
 
const testimonials = [
  {
    id: 1,
    name: "Alex Chen",
    handle: "@alexchen_dev",
    role: "Senior Engineer @ Vercel",
    content:
      "I've tried every scraping API out there. DevTools is the only one that actually works reliably at scale. The DX is incredible.",
    image:
      "https://images.unsplash.com/photo-1535713875002-d1d0cf377fde?w=100&auto=format&fit=crop&q=60",
    location: "San Francisco, CA",
    verified: true,
  },
  {
    id: 2,
    name: "Sarah Miller",
    handle: "@sarah_codes",
    role: "CTO @ TechFlow",
    content:
      "We replaced our entire in-house scraping infrastructure with DevTools. Saved us $5k/month and countless engineering hours.",
    image:
      "https://images.unsplash.com/photo-1494790108377-be9c29b29330?w=100&auto=format&fit=crop&q=60",
    location: "London, UK",
    verified: true,
  },
  {
    id: 3,
    name: "James Wilson",
    handle: "@jwilson",
    role: "Indie Hacker",
    content:
      "The structured data output is a game changer for LLM apps. I can feed the JSON directly into OpenAI without any cleaning.",
    image:
      "https://images.unsplash.com/photo-1599566150163-29194dcaad36?w=100&auto=format&fit=crop&q=60",
    location: "Austin, TX",
    verified: false,
  },
  {
    id: 4,
    name: "Emily Zhang",
    handle: "@emilyz",
    role: "AI Researcher",
    content:
      "Finally, a tool that handles dynamic JS rendering perfectly. Essential for our dataset collection pipeline.",
    image:
      "https://images.unsplash.com/photo-1438761681033-6461ffad8d80?w=100&auto=format&fit=crop&q=60",
    location: "Toronto, CA",
    verified: true,
  },
  {
    id: 5,
    name: "Michael Brown",
    handle: "@mike_builds",
    role: "Founder",
    content:
      "Setup took literally 2 minutes. The SDK is type-safe and intuitive. Highly recommended.",
    image:
      "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=100&auto=format&fit=crop&q=60",
    location: "Berlin, DE",
    verified: true,
  },
];
 
export function Testimonials() {
  const [activeIndex, setActiveIndex] = useState(0);
 
  // Auto-rotate spotlight
  useEffect(() => {
    const interval = setInterval(() => {
      setActiveIndex((prev) => (prev + 1) % testimonials.length);
    }, 5000);
    return () => clearInterval(interval);
  }, []);
 
  const activeTestimonial = testimonials[activeIndex];
 
  return (
    <section className="py-32 bg-white dark:bg-[#020202] text-zinc-900 dark:text-white overflow-hidden relative border-t border-zinc-200 dark:border-zinc-800">
      {/* Background Map Decoration */}
      <div className="absolute inset-0 opacity-20 pointer-events-none">
        <div className="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[800px] h-[400px] bg-[radial-gradient(ellipse_at_center,rgba(245,158,11,0.15),transparent_70%)]" />
      </div>
 
      <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 relative z-10">
        {/* Header */}
        <div className="flex flex-col md:flex-row md:items-end justify-between gap-6 mb-20 border-b border-zinc-200 dark:border-zinc-800 pb-8">
          <div className="max-w-2xl">
            <div className="flex items-center gap-2 mb-4">
              <div className="h-1 w-1 bg-amber-500" />
              <span className="text-xs font-mono text-amber-500 tracking-widest uppercase">
                Incoming transmissions
              </span>
            </div>
            <h2 className="text-4xl md:text-5xl font-sans font-bold tracking-tight text-zinc-900 dark:text-white">
              Trusted by the <br />
              <span className="text-zinc-500 dark:text-zinc-600">
                global elite
              </span>
            </h2>
          </div>
          <div className="flex items-center gap-4">
            <div className="text-right hidden md:block">
              <div className="text-2xl font-bold text-zinc-900 dark:text-white">
                12,405
              </div>
              <div className="text-xs font-mono text-zinc-500">
                ACTIVE_USERS
              </div>
            </div>
            <div className="h-10 w-[1px] bg-zinc-200 dark:bg-zinc-800 hidden md:block" />
            <div className="text-right hidden md:block">
              <div className="text-2xl font-bold text-amber-500">99.9%</div>
              <div className="text-xs font-mono text-zinc-500">
                SATISFACTION
              </div>
            </div>
          </div>
        </div>
 
        <div className="grid lg:grid-cols-12 gap-12 items-start">
          {/* Left: Spotlight Card (Signal Decoder) */}
          <div className="lg:col-span-7 relative">
            <AnimatePresence mode="wait">
              <motion.div
                key={activeTestimonial.id}
                initial={{ opacity: 0, scale: 0.95, x: -20 }}
                animate={{ opacity: 1, scale: 1, x: 0 }}
                exit={{ opacity: 0, scale: 1.05, x: 20 }}
                transition={{ duration: 0.4 }}
                className="relative"
              >
                <div className="relative bg-zinc-50 dark:bg-[#050505] border border-zinc-200 dark:border-zinc-800 rounded-lg overflow-hidden shadow-2xl">
                  {/* Decoder Header */}
                  <div className="h-10 bg-zinc-100 dark:bg-[#0A0A0A] border-b border-zinc-200 dark:border-zinc-800 flex items-center justify-between px-4">
                    <div className="flex items-center gap-2 text-[10px] font-mono text-zinc-500 uppercase">
                      <div className="h-2 w-2 rounded-full bg-green-500 animate-pulse" />
                      Signal_Locked
                    </div>
                    <div className="text-[10px] font-mono text-zinc-400 dark:text-zinc-600">
                      FREQ: 142.842 MHz
                    </div>
                  </div>
 
                  <div className="p-8 md:p-12 relative">
                    {/* Signal Strength Meter */}
                    <div className="absolute top-12 right-12 flex flex-col gap-1 w-12">
                      <div className="flex justify-between items-end h-8 gap-1">
                        {[20, 40, 60, 80, 100].map((h, i) => (
                          <div
                            key={i}
                            className="w-1.5 bg-amber-500/20 rounded-sm overflow-hidden relative"
                          >
                            <motion.div
                              initial={{ height: 0 }}
                              animate={{ height: `${h}%` }}
                              className="absolute bottom-0 w-full bg-amber-500"
                            />
                          </div>
                        ))}
                      </div>
                      <div className="text-[8px] font-mono text-amber-500 text-center">
                        STR
                      </div>
                    </div>
 
                    <div className="flex items-center gap-6 mb-8">
                      <div className="relative">
                        <div className="absolute inset-0 rounded-full border border-amber-500/30 animate-[spin_10s_linear_infinite]" />
                        <img
                          src={activeTestimonial.image}
                          alt={activeTestimonial.name}
                          className="h-20 w-20 rounded-full object-cover border-2 border-zinc-200 dark:border-zinc-800 relative z-10"
                        />
                        {activeTestimonial.verified && (
                          <div className="absolute -bottom-1 -right-1 bg-zinc-50 dark:bg-[#050505] rounded-full p-1 z-20 border border-zinc-200 dark:border-zinc-800">
                            <div className="bg-blue-500/20 border border-blue-500/50 rounded-full p-0.5">
                              <CheckIcon className="h-3 w-3 text-blue-400" />
                            </div>
                          </div>
                        )}
                      </div>
                      <div>
                        <div className="text-xl font-bold text-zinc-900 dark:text-white font-mono tracking-tight">
                          {activeTestimonial.name}
                        </div>
                        <div className="text-sm text-zinc-500 font-mono flex items-center gap-2">
                          <span className="text-amber-600 dark:text-amber-500">
                            ID:
                          </span>{" "}
                          {activeTestimonial.handle}
                        </div>
                        <div className="text-xs text-zinc-500 dark:text-zinc-600 font-mono mt-1 uppercase">
                          {activeTestimonial.role}
                        </div>
                      </div>
                    </div>
 
                    <div className="relative">
                      <Quote className="absolute -top-4 -left-6 h-8 w-8 text-zinc-200 dark:text-zinc-800 fill-current opacity-50" />
                      <p className="text-xl md:text-2xl text-zinc-700 dark:text-zinc-300 leading-relaxed mb-8 font-light font-mono relative z-10">
                        "{activeTestimonial.content}"
                      </p>
                    </div>
 
                    <div className="flex items-center justify-between pt-8 border-t border-zinc-200 dark:border-zinc-900">
                      <div className="flex items-center gap-2 text-xs font-mono text-zinc-500 uppercase">
                        <MapPin className="h-3 w-3 text-amber-500" />
                        Origin: {activeTestimonial.location}
                      </div>
                      <div className="flex gap-1">
                        {[...Array(5)].map((_, i) => (
                          <Star
                            key={i}
                            className="h-3 w-3 text-amber-500 fill-current"
                          />
                        ))}
                      </div>
                    </div>
                  </div>
                </div>
              </motion.div>
            </AnimatePresence>
          </div>
 
          {/* Right: Feed List (Transmission Log) */}
          <div className="lg:col-span-5 space-y-4">
            <div className="flex items-center justify-between text-xs font-mono text-zinc-500 mb-4 uppercase tracking-wider border-b border-zinc-200 dark:border-zinc-800 pb-2">
              <span>Transmission_Log</span>
              <span className="animate-pulse text-amber-500">Receiving...</span>
            </div>
 
            <div className="space-y-2">
              {testimonials.map((item, index) => (
                <div
                  key={item.id}
                  onClick={() => setActiveIndex(index)}
                  className={cn(
                    "group cursor-pointer p-3 rounded border transition-all duration-300 flex items-start gap-3 relative overflow-hidden",
                    activeIndex === index
                      ? "bg-zinc-100 dark:bg-zinc-900/80 border-amber-500/50"
                      : "bg-transparent border-zinc-200 dark:border-zinc-800/50 hover:bg-zinc-50 dark:hover:bg-zinc-900/30 hover:border-zinc-300 dark:hover:border-zinc-700",
                  )}
                >
                  {activeIndex === index && (
                    <div className="absolute left-0 top-0 bottom-0 w-0.5 bg-amber-500" />
                  )}
 
                  <div className="relative shrink-0">
                    <img
                      src={item.image}
                      alt={item.name}
                      className={cn(
                        "h-8 w-8 rounded-sm object-cover border border-zinc-200 dark:border-zinc-800 transition-all",
                        activeIndex === index
                          ? "grayscale-0"
                          : "grayscale group-hover:grayscale-0",
                      )}
                    />
                    <div
                      className={cn(
                        "absolute -bottom-1 -right-1 w-2 h-2 rounded-full border border-zinc-50 dark:border-[#050505]",
                        activeIndex === index
                          ? "bg-green-500"
                          : "bg-zinc-300 dark:bg-zinc-700",
                      )}
                    />
                  </div>
 
                  <div className="flex-1 min-w-0">
                    <div className="flex items-center justify-between mb-1">
                      <div
                        className={cn(
                          "font-bold text-xs font-mono truncate transition-colors",
                          activeIndex === index
                            ? "text-amber-600 dark:text-amber-500"
                            : "text-zinc-500 group-hover:text-zinc-800 dark:group-hover:text-zinc-300",
                        )}
                      >
                        {item.handle}
                      </div>
                      <div className="text-[10px] font-mono text-zinc-400 dark:text-zinc-700">
                        T-{index + 1}00
                      </div>
                    </div>
                    <p
                      className={cn(
                        "text-xs line-clamp-1 font-mono transition-colors",
                        activeIndex === index
                          ? "text-zinc-800 dark:text-zinc-300"
                          : "text-zinc-500 dark:text-zinc-600 group-hover:text-zinc-600 dark:group-hover:text-zinc-500",
                      )}
                    >
                      {item.content}
                    </p>
                  </div>
                </div>
              ))}
            </div>
          </div>
        </div>
      </div>
    </section>
  );
}
 
function CheckIcon({ className }: { className?: string }) {
  return (
    <svg
      className={className}
      viewBox="0 0 24 24"
      fill="none"
      stroke="currentColor"
      strokeWidth="4"
      strokeLinecap="round"
      strokeLinejoin="round"
    >
      <polyline points="20 6 9 17 4 12" />
    </svg>
  );
}

Pricing

"use client";
 
import { useState } from "react";
import { motion, AnimatePresence } from "framer-motion";
import {
  Check,
  Zap,
  Shield,
  Globe,
  Calculator,
  ArrowRight,
} from "lucide-react";
import { Button } from "@/components/ui/button";
import { cn } from "@/lib/utils";
 
const plans = [
  {
    id: "starter",
    name: "DEVELOPER",
    price: 0,
    description: "For individual researchers.",
    limit: 5000,
    features: [
      "Standard Extraction",
      "Community Support",
      "1 Concurrent Request",
      "Public Proxy Pool",
    ],
  },
  {
    id: "pro",
    name: "STARTUP",
    price: 49,
    description: "For scaling applications.",
    limit: 100000,
    features: [
      "Advanced Extraction (JS)",
      "Priority Email Support",
      "50 Concurrent Requests",
      "Premium Proxy Pool",
      "Webhook Integration",
    ],
  },
  {
    id: "scale",
    name: "BUSINESS",
    price: 249,
    description: "For high-volume needs.",
    limit: 1000000,
    features: [
      "Residential Proxies",
      "Dedicated Success Manager",
      "500 Concurrent Requests",
      "SLA Guarantee",
      "Custom Extraction Rules",
    ],
  },
];
 
export function Pricing() {
  const [usage, setUsage] = useState(10000);
  const [activePlan, setActivePlan] = useState("pro");
 
  // Determine active plan based on usage
  const calculatePlan = (val: number) => {
    setUsage(val);
    if (val <= 5000) setActivePlan("starter");
    else if (val <= 100000) setActivePlan("pro");
    else setActivePlan("scale");
  };
 
  const currentPlan = plans.find((p) => p.id === activePlan) || plans[1];
 
  return (
    <section className="py-32 bg-white dark:bg-[#020202] text-zinc-900 dark:text-white overflow-hidden relative border-t border-zinc-200 dark:border-zinc-800">
      <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
        <div className="grid lg:grid-cols-12 gap-16">
          {/* Left: Calculator */}
          <div className="lg:col-span-5">
            <div className="flex items-center gap-2 mb-4">
              <div className="h-1 w-1 bg-amber-500" />
              <span className="text-xs font-mono text-amber-500 tracking-widest uppercase">
                Cost Estimator
              </span>
            </div>
 
            <h2 className="text-4xl md:text-5xl font-sans font-bold tracking-tight text-zinc-900 dark:text-white mb-6">
              Predictable <br />
              <span className="text-zinc-500 dark:text-zinc-600">
                scaling costs
              </span>
            </h2>
 
            <p className="text-zinc-600 dark:text-zinc-400 text-lg mb-12 leading-relaxed">
              Estimate your monthly cost based on request volume. No hidden
              fees, pay only for what you need.
            </p>
 
            {/* Slider Component */}
            <div className="p-8 rounded-2xl border border-zinc-200 dark:border-zinc-800 bg-zinc-50 dark:bg-[#050505] relative overflow-hidden">
              {/* Decorative Corner Brackets */}
              <div className="absolute top-0 left-0 w-4 h-4 border-t border-l border-zinc-300 dark:border-zinc-700" />
              <div className="absolute top-0 right-0 w-4 h-4 border-t border-r border-zinc-300 dark:border-zinc-700" />
              <div className="absolute bottom-0 left-0 w-4 h-4 border-b border-l border-zinc-300 dark:border-zinc-700" />
              <div className="absolute bottom-0 right-0 w-4 h-4 border-b border-r border-zinc-300 dark:border-zinc-700" />
 
              <div className="flex flex-col gap-2 mb-8 relative z-10">
                <div className="flex justify-between items-end">
                  <div className="text-xs font-mono text-zinc-500 uppercase tracking-wider">
                    Target_Volume
                  </div>
                  <div className="flex items-baseline gap-1">
                    <span className="text-amber-500 font-mono text-xs">
                      VOL:
                    </span>
                    <span className="text-2xl font-bold text-zinc-900 dark:text-white font-mono tracking-tight">
                      {usage.toLocaleString()}
                    </span>
                  </div>
                </div>
              </div>
 
              <div className="relative mb-12">
                {/* Custom Range Input */}
                <input
                  type="range"
                  min="1000"
                  max="1000000"
                  step="1000"
                  value={usage}
                  onChange={(e) => calculatePlan(parseInt(e.target.value))}
                  className="w-full h-2 bg-zinc-200 dark:bg-zinc-800 rounded-none appearance-none cursor-pointer accent-amber-500 relative z-20"
                />
                {/* Ticks */}
                <div className="absolute top-4 left-0 right-0 flex justify-between text-[10px] font-mono text-zinc-600">
                  <span>| 1K</span>
                  <span>| 250K</span>
                  <span>| 500K</span>
                  <span>| 750K</span>
                  <span>| 1M+</span>
                </div>
              </div>
 
              <div className="pt-6 border-t border-zinc-200 dark:border-zinc-800/50 flex justify-between items-center">
                <div>
                  <div className="text-[10px] text-zinc-500 font-mono uppercase mb-1">
                    Recommended_Module
                  </div>
                  <div className="text-sm text-zinc-900 dark:text-white font-bold tracking-wide">
                    {currentPlan.name}
                  </div>
                </div>
                <div className="text-right">
                  <div className="text-3xl font-bold text-amber-500 font-mono">
                    ${currentPlan.price}
                  </div>
                  <div className="text-[10px] text-zinc-600 font-mono uppercase">
                    /MONTHLY_CYCLE
                  </div>
                </div>
              </div>
            </div>
          </div>
 
          {/* Right: Plan Cards */}
          <div className="lg:col-span-7 grid gap-4">
            {plans.map((plan) => (
              <motion.div
                key={plan.id}
                className={cn(
                  "relative p-6 border transition-all duration-300 cursor-pointer group overflow-hidden",
                  activePlan === plan.id
                    ? "bg-zinc-100 dark:bg-zinc-900/40 border-amber-500/50"
                    : "bg-zinc-50 dark:bg-[#050505] border-zinc-200 dark:border-zinc-800 opacity-60 hover:opacity-100",
                )}
                onClick={() => {
                  setActivePlan(plan.id);
                  setUsage(plan.limit);
                }}
              >
                {/* Selection Indicator */}
                {activePlan === plan.id && (
                  <div className="absolute left-0 top-0 bottom-0 w-1 bg-amber-500" />
                )}
 
                <div className="flex items-center justify-between relative z-10">
                  <div className="flex items-center gap-4">
                    <div
                      className={cn(
                        "h-10 w-10 flex items-center justify-center border transition-colors",
                        activePlan === plan.id
                          ? "bg-amber-500/10 border-amber-500/20 text-amber-600 dark:text-amber-500"
                          : "bg-zinc-200 dark:bg-zinc-900 border-zinc-300 dark:border-zinc-800 text-zinc-500",
                      )}
                    >
                      {plan.id === "starter" && <Zap className="h-5 w-5" />}
                      {plan.id === "pro" && <Shield className="h-5 w-5" />}
                      {plan.id === "scale" && <Globe className="h-5 w-5" />}
                    </div>
                    <div>
                      <div className="font-bold text-zinc-900 dark:text-white text-base tracking-wide uppercase font-mono">
                        {plan.name}
                      </div>
                      <div className="text-xs text-zinc-500 font-mono">
                        {plan.description}
                      </div>
                    </div>
                  </div>
                  <div className="text-right hidden sm:block">
                    <div className="text-lg font-bold text-zinc-900 dark:text-white font-mono">
                      {plan.price === 0 ? "FREE" : `$${plan.price}`}
                    </div>
                  </div>
                </div>
 
                {/* Expandable Features */}
                <AnimatePresence>
                  {activePlan === plan.id && (
                    <motion.div
                      initial={{ height: 0, opacity: 0 }}
                      animate={{ height: "auto", opacity: 1 }}
                      exit={{ height: 0, opacity: 0 }}
                      className="overflow-hidden"
                    >
                      <div className="pt-4 mt-4 border-t border-zinc-200 dark:border-zinc-800/50 grid sm:grid-cols-2 gap-x-4 gap-y-2">
                        {plan.features.map((feat, i) => (
                          <div
                            key={i}
                            className="flex items-center gap-2 text-xs font-mono text-zinc-600 dark:text-zinc-400"
                          >
                            <div className="h-1 w-1 bg-amber-500 rounded-full" />
                            {feat}
                          </div>
                        ))}
                      </div>
                      <div className="mt-6">
                        <Button className="w-full bg-amber-500 text-black hover:bg-amber-400 font-mono text-xs font-bold h-9 tracking-wider uppercase rounded-sm">
                          Initialize_Module{" "}
                          <ArrowRight className="ml-2 h-3 w-3" />
                        </Button>
                      </div>
                    </motion.div>
                  )}
                </AnimatePresence>
              </motion.div>
            ))}
          </div>
        </div>
      </div>
    </section>
  );
}

Community

"use client";
 
import { motion } from "framer-motion";
import {
  Github,
  Twitter,
  MessageCircle,
  ArrowUpRight,
  Users,
  GitFork,
  Star,
  Terminal,
} from "lucide-react";
import { Button } from "@/components/ui/button";
import { cn } from "@/lib/utils";
 
const stats = [
  {
    label: "GITHUB_STARS",
    value: "12.5k",
    icon: Star,
  },
  {
    label: "ACTIVE_FORKS",
    value: "1.2k",
    icon: GitFork,
  },
  {
    label: "CONTRIBUTORS",
    value: "140+",
    icon: Users,
  },
];
 
export function Community() {
  return (
    <section className="py-32 bg-white dark:bg-[#020202] text-zinc-900 dark:text-white overflow-hidden relative border-t border-zinc-200 dark:border-zinc-800">
      {/* Background Mesh */}
      <div className="absolute inset-0 bg-[linear-gradient(to_right,#000000_1px,transparent_1px),linear-gradient(to_bottom,#000000_1px,transparent_1px)] dark:bg-[linear-gradient(to_right,#202020_1px,transparent_1px),linear-gradient(to_bottom,#202020_1px,transparent_1px)] bg-[size:4rem_4rem] opacity-[0.05] pointer-events-none" />
 
      <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 relative z-10">
        <div className="grid lg:grid-cols-2 gap-20 items-center">
          {/* Left: Content */}
          <div>
            <div className="flex items-center gap-2 mb-4">
              <div className="h-1 w-1 bg-amber-500" />
              <span className="text-xs font-mono text-amber-500 tracking-widest uppercase">
                Ecosystem Online
              </span>
            </div>
            <h2 className="text-4xl md:text-5xl font-sans font-bold tracking-tight text-zinc-900 dark:text-white mb-6">
              Built by developers, <br />
              <span className="text-zinc-500 dark:text-zinc-600">
                for developers
              </span>
            </h2>
 
            <p className="text-zinc-600 dark:text-zinc-400 text-lg mb-10 leading-relaxed">
              We're building the future of data extraction in public. Join our
              growing community of engineers, researchers, and hackers.
            </p>
 
            <div className="flex flex-wrap gap-4">
              <Button className="h-12 px-8 bg-amber-500 text-black hover:bg-amber-400 rounded-lg font-mono text-xs tracking-wider font-bold">
                <Github className="mr-2 h-4 w-4" />
                STAR_ON_GITHUB
              </Button>
              <Button
                variant="outline"
                className="h-12 px-8 border-zinc-200 dark:border-zinc-800 bg-zinc-100 dark:bg-zinc-900/50 text-zinc-900 dark:text-white hover:bg-zinc-200 dark:hover:bg-zinc-900 rounded-lg font-mono text-xs tracking-wider"
              >
                <MessageCircle className="mr-2 h-4 w-4" />
                JOIN_DISCORD
              </Button>
            </div>
          </div>
 
          {/* Right: Stats Grid */}
          <div className="grid gap-4">
            {/* Main Github Card - Terminal Style */}
            <div className="bg-zinc-50 dark:bg-[#050505] border border-zinc-200 dark:border-zinc-800 rounded-lg overflow-hidden relative group">
              {/* Terminal Header */}
              <div className="h-8 bg-zinc-100 dark:bg-[#0A0A0A] border-b border-zinc-200 dark:border-zinc-800 flex items-center justify-between px-4">
                <div className="flex gap-1.5">
                  <div className="h-2 w-2 rounded-full bg-zinc-300 dark:bg-zinc-800" />
                  <div className="h-2 w-2 rounded-full bg-zinc-300 dark:bg-zinc-800" />
                  <div className="h-2 w-2 rounded-full bg-zinc-300 dark:bg-zinc-800" />
                </div>
                <div className="text-[10px] font-mono text-zinc-500 dark:text-zinc-600">
                  gh_network.exe
                </div>
              </div>
 
              <div className="p-8 relative">
                <div className="absolute top-0 right-0 p-4 opacity-0 group-hover:opacity-100 transition-opacity">
                  <ArrowUpRight className="h-5 w-5 text-amber-500" />
                </div>
 
                <div className="flex items-center gap-4 mb-8">
                  <div className="h-12 w-12 bg-zinc-200 dark:bg-zinc-900 border border-zinc-300 dark:border-zinc-800 flex items-center justify-center group-hover:bg-amber-500/10 group-hover:border-amber-500/20 transition-colors">
                    <Github className="h-6 w-6 text-zinc-700 dark:text-white group-hover:text-amber-600 dark:group-hover:text-amber-500 transition-colors" />
                  </div>
                  <div>
                    <div className="font-bold text-zinc-900 dark:text-white text-lg group-hover:text-amber-600 dark:group-hover:text-amber-500 transition-colors font-mono">
                      devtools/sdk
                    </div>
                    <div className="text-zinc-500 text-xs font-mono uppercase">
                      Repository_Status: Public
                    </div>
                  </div>
                </div>
 
                <div className="grid grid-cols-3 gap-4 border-t border-zinc-200 dark:border-zinc-800 pt-8">
                  {stats.map((stat, i) => (
                    <div key={i}>
                      <div className="flex items-center gap-2 mb-2">
                        <stat.icon className="h-3 w-3 text-zinc-500" />
                        <span className="text-[10px] font-mono text-zinc-500 uppercase">
                          {stat.label}
                        </span>
                      </div>
                      <div className="text-2xl font-mono font-bold text-zinc-900 dark:text-white group-hover:text-amber-600 dark:group-hover:text-amber-500 transition-colors">
                        {stat.value}
                      </div>
                    </div>
                  ))}
                </div>
              </div>
            </div>
 
            {/* Secondary Cards */}
            <div className="grid grid-cols-2 gap-4">
              <a
                href="#"
                className="p-6 bg-zinc-50 dark:bg-[#050505] border border-zinc-200 dark:border-zinc-800 hover:border-amber-500/30 transition-colors group rounded-lg relative overflow-hidden"
              >
                <div className="absolute top-0 left-0 w-2 h-2 border-t border-l border-zinc-300 dark:border-zinc-700 group-hover:border-amber-500/50 transition-colors" />
                <div className="flex items-center justify-between mb-4">
                  <MessageCircle className="h-6 w-6 text-zinc-400 group-hover:text-amber-600 dark:group-hover:text-amber-500 transition-colors" />
                  <ArrowUpRight className="h-4 w-4 text-zinc-600 group-hover:text-amber-600 dark:group-hover:text-amber-500 transition-colors" />
                </div>
                <div className="font-bold text-zinc-900 dark:text-white mb-1 font-mono uppercase text-sm">
                  Discord_Hub
                </div>
                <div className="text-xs text-zinc-500 font-mono">
                  5,000+ ONLINE
                </div>
              </a>
              <a
                href="#"
                className="p-6 bg-zinc-50 dark:bg-[#050505] border border-zinc-200 dark:border-zinc-800 hover:border-amber-500/30 transition-colors group rounded-lg relative overflow-hidden"
              >
                <div className="absolute top-0 right-0 w-2 h-2 border-t border-r border-zinc-300 dark:border-zinc-700 group-hover:border-amber-500/50 transition-colors" />
                <div className="flex items-center justify-between mb-4">
                  <Twitter className="h-6 w-6 text-zinc-400 group-hover:text-amber-600 dark:group-hover:text-amber-500 transition-colors" />
                  <ArrowUpRight className="h-4 w-4 text-zinc-600 group-hover:text-amber-600 dark:group-hover:text-amber-500 transition-colors" />
                </div>
                <div className="font-bold text-zinc-900 dark:text-white mb-1 font-mono uppercase text-sm">
                  X_Feed
                </div>
                <div className="text-xs text-zinc-500 font-mono">
                  LATEST_INTEL
                </div>
              </a>
            </div>
          </div>
        </div>
      </div>
    </section>
  );
}
"use client";
 
import Link from "next/link";
import {
  Terminal,
  Github,
  Twitter,
  Linkedin,
  Activity,
  Server,
  Shield,
  ArrowRight,
} from "lucide-react";
import { Button } from "@/components/ui/button";
 
export function Footer() {
  return (
    <footer className="bg-white dark:bg-[#020202] border-t border-zinc-200 dark:border-zinc-800 pt-20 pb-10">
      <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
        <div className="grid grid-cols-1 md:grid-cols-12 gap-12 mb-20">
          {/* Brand Column */}
          <div className="md:col-span-4">
            <Link href="#" className="flex items-center gap-2 mb-6 group">
              <div className="flex h-8 w-8 items-center justify-center rounded bg-amber-500 text-black font-bold">
                <Terminal className="h-4 w-4" />
              </div>
              <span className="font-mono text-xl font-bold tracking-tight text-zinc-900 dark:text-white group-hover:text-amber-600 dark:group-hover:text-amber-500 transition-colors">
                DEVTOOLS_SDK
              </span>
            </Link>
            <p className="text-zinc-500 mb-8 max-w-sm leading-relaxed text-sm font-mono">
              // The complete toolkit for data extraction. <br />
              // Built for scale. Designed for developers.
            </p>
 
            {/* Newsletter Input */}
            <div className="flex gap-2 max-w-xs">
              <div className="relative flex-1 group">
                <div className="absolute inset-y-0 left-3 flex items-center pointer-events-none">
                  <span className="text-amber-500 font-mono text-xs">
                    {">"}
                  </span>
                </div>
                <input
                  type="email"
                  placeholder="subscribe --email"
                  className="w-full h-10 pl-6 pr-3 bg-zinc-100 dark:bg-zinc-900/50 border border-zinc-200 dark:border-zinc-800 rounded-none text-xs font-mono text-zinc-900 dark:text-white placeholder:text-zinc-400 dark:placeholder:text-zinc-600 focus:outline-none focus:border-amber-500/50 transition-colors"
                />
                {/* Blinking Cursor Simulation */}
                <div className="absolute inset-y-0 right-3 flex items-center pointer-events-none">
                  <div className="h-4 w-2 bg-amber-500/50 animate-pulse" />
                </div>
              </div>
              <Button
                size="icon"
                className="h-10 w-10 bg-zinc-100 dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 hover:bg-amber-500 hover:text-black hover:border-amber-500 transition-all rounded-none text-zinc-900 dark:text-white"
              >
                <ArrowRight className="h-4 w-4" />
              </Button>
            </div>
          </div>
 
          {/* Links Columns */}
          <div className="md:col-span-2 md:col-start-6">
            <h3 className="font-mono text-xs font-bold text-zinc-900 dark:text-white mb-6 uppercase tracking-wider">
              Product
            </h3>
            <ul className="space-y-3">
              {["Features", "SDKs", "Pricing", "Changelog", "Docs"].map(
                (item) => (
                  <li key={item}>
                    <Link
                      href="#"
                      className="text-zinc-500 hover:text-amber-600 dark:hover:text-amber-500 transition-colors text-sm font-mono flex items-center gap-2 group"
                    >
                      <span className="w-0 group-hover:w-2 h-[1px] bg-amber-600 dark:bg-amber-500 transition-all duration-300" />
                      {item}
                    </Link>
                  </li>
                ),
              )}
            </ul>
          </div>
 
          <div className="md:col-span-2">
            <h3 className="font-mono text-xs font-bold text-zinc-900 dark:text-white mb-6 uppercase tracking-wider">
              Company
            </h3>
            <ul className="space-y-3">
              {["About", "Blog", "Careers", "Contact", "Partners"].map(
                (item) => (
                  <li key={item}>
                    <Link
                      href="#"
                      className="text-zinc-500 hover:text-amber-600 dark:hover:text-amber-500 transition-colors text-sm font-mono flex items-center gap-2 group"
                    >
                      <span className="w-0 group-hover:w-2 h-[1px] bg-amber-600 dark:bg-amber-500 transition-all duration-300" />
                      {item}
                    </Link>
                  </li>
                ),
              )}
            </ul>
          </div>
 
          <div className="md:col-span-2">
            <h3 className="font-mono text-xs font-bold text-zinc-900 dark:text-white mb-6 uppercase tracking-wider">
              Legal
            </h3>
            <ul className="space-y-3">
              {["Privacy", "Terms", "Security", "Cookies"].map((item) => (
                <li key={item}>
                  <Link
                    href="#"
                    className="text-zinc-500 hover:text-amber-600 dark:hover:text-amber-500 transition-colors text-sm font-mono flex items-center gap-2 group"
                  >
                    <span className="w-0 group-hover:w-2 h-[1px] bg-amber-600 dark:bg-amber-500 transition-all duration-300" />
                    {item}
                  </Link>
                </li>
              ))}
            </ul>
          </div>
        </div>
 
        {/* System Status Bar */}
        <div className="pt-8 border-t border-zinc-200 dark:border-zinc-800 flex flex-col md:flex-row justify-between items-center gap-6 relative">
          {/* Rack Mount Screws */}
          <div className="absolute left-0 top-8 bottom-0 w-1 bg-zinc-200 dark:bg-zinc-900 hidden md:block">
            <div className="h-2 w-full bg-zinc-300 dark:bg-zinc-800 mb-1" />
            <div className="h-2 w-full bg-zinc-300 dark:bg-zinc-800" />
          </div>
          <div className="absolute right-0 top-8 bottom-0 w-1 bg-zinc-200 dark:bg-zinc-900 hidden md:block">
            <div className="h-2 w-full bg-zinc-300 dark:bg-zinc-800 mb-1" />
            <div className="h-2 w-full bg-zinc-300 dark:bg-zinc-800" />
          </div>
 
          <div className="flex items-center gap-4 pl-4">
            <p className="text-zinc-500 dark:text-zinc-600 text-[10px] font-mono uppercase tracking-wider">
              © 2024 DevTools_Inc. All_Systems_Nominal.
            </p>
            <div className="flex gap-2">
              {[Github, Twitter, Linkedin].map((Icon, i) => (
                <Link
                  key={i}
                  href="#"
                  className="text-zinc-500 dark:text-zinc-600 hover:text-amber-600 dark:hover:text-amber-500 transition-colors"
                >
                  <Icon className="h-4 w-4" />
                </Link>
              ))}
            </div>
          </div>
 
          <div className="flex items-center gap-6 px-4 py-2 bg-zinc-100 dark:bg-zinc-900/50 border border-zinc-200 dark:border-zinc-800 relative overflow-hidden">
            {/* Scanline */}
            <div className="absolute inset-0 bg-gradient-to-r from-transparent via-white/5 to-transparent -translate-x-full animate-[shimmer_2s_infinite]" />
 
            <div className="flex items-center gap-2 text-[10px] font-mono text-zinc-500">
              <div className="h-1.5 w-1.5 rounded-full bg-green-500 animate-pulse" />
              <span>
                API: <span className="text-green-500">ONLINE</span>
              </span>
            </div>
            <div className="w-[1px] h-3 bg-zinc-300 dark:bg-zinc-800" />
            <div className="flex items-center gap-2 text-[10px] font-mono text-zinc-500">
              <Server className="h-3 w-3 text-zinc-400 dark:text-zinc-600" />
              <span>
                LATENCY:{" "}
                <span className="text-amber-600 dark:text-amber-500">24ms</span>
              </span>
            </div>
            <div className="w-[1px] h-3 bg-zinc-300 dark:bg-zinc-800" />
            <div className="flex items-center gap-2 text-[10px] font-mono text-zinc-500">
              <Shield className="h-3 w-3 text-zinc-400 dark:text-zinc-600" />
              <span>
                VER:{" "}
                <span className="text-zinc-700 dark:text-zinc-300">2.4.0</span>
              </span>
            </div>
          </div>
        </div>
      </div>
    </footer>
  );
}