Three.js vs Spline vs Unity WebGL for a marketing site
Three ways to put 3D on a website, compared on what actually decides it: file size, control, cost, lock-in and year two. With a recommendation for each case.
Three tools come up in almost every conversation about putting 3D on a website. They are not three answers to the same question. They are answers to three different questions, and picking the wrong one is expensive in a way that only shows up after launch.
The short version
- Three.js when the scene is part of the product and you want it to be fast, yours, and still working in three years.
- Spline when you need something good-looking on a page quickly, the budget is small, and you can live with what the tool allows.
- Unity WebGL almost never for a marketing site. For an actual game or a heavy simulation, sometimes.
The rest of this post is why.
Three.js
A JavaScript library that gives you direct control of WebGL without writing raw WebGL. It is what most of the memorable 3D sites you have seen are built on, and it is what we use.
What you get. Complete control over the scene, the loading order, the fallbacks and the file size. The renderer is code in your repository, so it can be loaded after the page has painted, gated by device, and compressed like any other asset. Custom shaders are available when the effect needs them. The library is open source, twelve years old, and not going anywhere.
What it costs. Engineering time. There is no visual editor; someone has to write the scene, the interaction and the pipeline. That is a real cost and it is the reason the other two tools exist.
Lock-in. None. The scene is yours; the models are standard formats; any developer who knows the library can pick it up.
Year two. The library updates a few times a year and occasionally changes an API. A well-built scene needs an afternoon of maintenance a year, not a rebuild.
Spline
A visual 3D design tool with a web export. You build the scene in an editor that feels like a design tool, and embed the result.
What you get. Speed. A designer can produce something genuinely attractive in days without a developer. For a launch page, a small brand moment or a prototype to test whether 3D is worth pursuing at all, that is hard to argue with.
What it costs. Control, and usually kilobytes. The export includes Spline’s runtime; you do not decide how or when the scene loads relative to your content, and optimising for a slow phone means working within the tool’s options rather than the browser’s. Interactions beyond what the editor offers need workarounds or are not possible.
Lock-in. Real. The scene lives in Spline’s format and depends on Spline’s runtime and, for some features, Spline’s hosting. If the pricing or the product changes, you change with it.
Year two. Fine as long as the tool is fine. That is the bet.
Unity WebGL
A game engine exporting to the browser.
What you get. Everything a game engine has: physics, animation systems, a mature editor, an enormous asset ecosystem. If you are building something that is actually a game or a serious simulation, it is a legitimate route.
What it costs. Weight, mostly. Unity WebGL builds start at several megabytes before you have added a model, load with a progress bar, and are hostile to the loading-order tricks that let a website pass Core Web Vitals. On a phone the story is worse — browser support is uneven and battery cost is high. It also requires a Unity developer, which is a different hire from a web developer.
Lock-in. Substantial, including licensing.
Year two. Unity’s own pricing history is the cautionary tale.
The comparison people actually need
| Three.js | Spline | Unity WebGL | |
|---|---|---|---|
| Time to first result | Weeks | Days | Weeks |
| Control over loading and fallbacks | Total | Limited | Poor |
| Realistic mobile behaviour | Still frame or light scene, your choice | Tool-dependent | Often unusable |
| Custom interaction | Anything | Editor’s options | Anything, expensively |
| Who can maintain it | Any front-end developer | Designer, within the tool | Unity developer |
| Lock-in | None | Runtime + format | Engine + licence |
| Best for | Scenes that are part of the product | Quick, good-looking moments | Games and simulations |
What we would actually recommend
If the budget is small and the goal is “make the launch page feel special”, use Spline, know its limits, and treat it as a step rather than a foundation. If you are testing whether 3D helps your conversion at all, Spline is a cheap experiment before a real investment.
If the 3D is doing real work — a configurator, a walkthrough, a brand site where the scene is the point — build it in Three.js, with a performance budget and fallbacks, and own it. That is what we do, and this is how.
If someone proposes Unity for a marketing site, ask them what the mobile experience is. The answer will make the decision for you.
Sources and further reading
// TAGS
// RELATED POSTS
(02) // LET'S BUILD
START APROJECT
