A polished, three-dimensional graph of API services connected by glowing lines, with pulses of light traveling along each connection like requests in flight. Built for developer-tools, API-platforms, and infrastructure landing pages.
import HeroApiNetworkMap from '@crazygl/hero-api-network-map';
export default function Hero() {
return (
<HeroApiNetworkMap
nodeLabels={['auth', 'payments', 'db', 'queue', 'edge', 'gateway']}
connectionDensity={0.45}
pulseSpeed={0.45}
onCTAClick="/docs"
/>
);
}ctaLabel, onCTAClick, colours).nodeLabels (one service per line), nodeColor / accentColor, nodeSize, nodeMetalness / nodeRoughness, and five label styles (glass / solid / outline / terminal / minimal) with their own colours, scale and offsets.connectionDensity (fraction of node pairs linked), lineColor / lineOpacity / lineWidth, and pulse controls pulseColor / pulseSpeed / pulseIntensity / pulsesPerLine.autoRotate, driftSpeed, pointerParallax, cameraDistance.bgTop / bgBottom, or transparentBackground.npm install @crazygl/hero-api-network-mapThe component takes the same props you see in the live customizer on the right — every default ships poster-quality.
import APINetworkMap from '@crazygl/hero-api-network-map';
export default function Landing() {
return (
<APINetworkMap />
);
}The wrapper renders static HTML on the server and only initialises the canvas after hydration, so search engines see your copy.
// app/page.tsx — works in SSR-first frameworks (Next, Remix, Astro, etc.)
'use client';
import APINetworkMap from '@crazygl/hero-api-network-map';
export default function Page() {
return (
<section>
<APINetworkMap
heading="Say hi."
subheading="Your new hero."
/>
<article>
<h2>Welcome</h2>
<p>Your content keeps its own voice below the hero.</p>
</article>
</section>
);
}