import * as React from "react";
import { cn } from "@/lib/utils";
/** Dashed, animated connector. Vertical on small screens, horizontal from lg. Decorative only. */
function Flow({ className }: { className?: string }) {
return (
{/* vertical (mobile) */}
{/* horizontal (desktop) */}
);
}
function Node({ step, title, subtitle, children, className, highlight }: { step: string; title: string; subtitle: string; children?: React.ReactNode; className?: string; highlight?: boolean }) {
return (
{step}
{highlight ? : null}
{title}
{subtitle}
{children ?
{children}
: null}
);
}
const NETWORKS: Array<{ label: string; live: boolean }> = [
{ label: "Datacenter", live: false },
{ label: "Residential", live: true },
{ label: "ISP", live: false },
{ label: "Mobile", live: false },
{ label: "Browser", live: true },
];
export function ArchitectureDiagram() {
return (
POST /v1/fetch
{"{"} url, country {"}"}
Bearer key · scopes
Request ID on every call
Redacted logging
{NETWORKS.map((n) => (
{n.label}
{!n.live ? (coming soon) : null}
))}
Residential and the managed browser are live today. Other classes are coming soon; auto resolves to the best available and escalates to the browser on JavaScript challenges.
200 example.com
residential · CA · 842 ms
Your app → Fetcha API → Smart routing → Global web. You never manage proxies, IP pools or retries yourself.
);
}