Almost every website that has ever made you stop scrolling was running the same library. Three.js is MIT, free, and pulled 14,707,584 npm downloads in the week to 25 August 2026, against 114,842 GitHub stars.
You do not need raw WebGL
About a third of that traffic arrives through React Three Fiber — 4,978,321 downloads in the same week. You write JSX and it renders 3D. If you are already on React, start there rather than the raw API.
npm i three @react-three/fiber<Canvas>
<ambientLight intensity={0.4} />
<directionalLight position={[4, 6, 5]} />
<mesh>
<icosahedronGeometry args={[1.5, 1]} />
<meshStandardMaterial flatShading />
</mesh>
</Canvas>That is a lit 3D scene in nine lines. No scene graph to assemble by hand, no render loop to write.
It is a renderer, not a look
This is the part people miss, and it is why so many WebGL landing pages feel like the same page. Three.js does not make a site good — it draws triangles quickly. Left to its own devices everyone reaches for the identical default: a shape, rotating, on a dark background, with bloom on it.
Bloom on a bad idea is still a bad idea. Post-processing is the last thing to reach for, not the first.
Give it an idea instead of an object
The strongest 3D heroes are the ones where the 3D IS the subject rather than decoration sitting near it. Apsis is a company that services satellites in geostationary orbit, and its hero draws thousands of orbital traces live. The scene is the pitch. Nothing about it would survive being swapped for a rotating logo.
- Ask what the scene is ABOUT before you ask what it looks like.
- If the object could be replaced by any other object, it is decoration.
- One idea, rendered properly, beats five effects stacked on nothing.
The honest cost
three is a large dependency. Whether it earns its place is a judgement call rather than a rule — a hero that could just as easily be a video probably should be one. Ship the video, keep the weight, and spend the budget where the interactivity actually matters.
Figures here are from the npm registry and the GitHub API on 27 August 2026. Download counts move week to week; treat them as scale, not as precision.