Hire intent · vet before you pay
Your search, knit on a live loom. Pull it apart — that is the real interview.
Hire a Three.js developer you can actually vet.
You searched "three js developer" to hire one, not to read another intro-to-WebGL post. The hard part is not finding someone who can spin a cube. It is telling a developer who ships production WebGL from one who followed a tutorial last week — they use the same words and the same demo reel.
A real Three.js developer delivers a scene that survives a mid-range Android, a build that keeps the H1 as the largest paint, source you can maintain after they leave, and honest numbers on draw calls and bundle weight. Everything else is a screenshot. This page hands you the questions that expose the difference, plus a live snippet playground so you can judge craft before you book a call.
I'm David Weaver — engineer, novelist, Roblox shipper. I built the WebGL loom on this site's homepage; you can grab it and pull it apart right now. That is the interview I would want run on me: not a video, a running thing on your own phone. One person scopes, builds, and answers your message. No junior handoff.
01
Test the craft: a live Three.js snippet playground
Three.js snippet playground
Static poster first. WebGL mounts only when you ask — the same discipline that keeps heroes green on Core Web Vitals. Snippets are illustrative, not a full IDE.
Snippet
// R3F — spinning box (illustrative)
<mesh rotation={[t, t * 0.4, 0]}>
<boxGeometry />
<meshStandardMaterial color="#ff6b4a" />
</mesh>02
Six questions that separate a Three.js developer from a tutorial follower
Ask these on the first call. The specifics of the answers matter more than the confidence:
How do you keep the canvas off the LCP path?
A real answer names the H1 as the largest paint and mounts the scene after it. A vague answer means your hero will drag Core Web Vitals down.
What is your draw-call and triangle budget on mobile?
Working developers quote numbers and how they hit them — instancing, merged geometry, atlased textures. No numbers means no phone testing.
Show me a scene running live, not a video.
Video hides jank, crashes, and load time. A URL you can open on your own phone does not.
How do you handle reduced motion and WebGL failure?
A static fallback and a designed reduced-motion state are the mark of someone who ships to real users, not just to their own gaming laptop.
What ships with the handoff?
Source, a note on how to change the scene, and where the assets live. "It's all in my head" is a maintenance bill you pay later.
Raw Three.js or React Three Fiber, and why?
Either is fine; the reasoning is the tell. Someone who only knows one and cannot say when it hurts you is guessing.
03
Green flags and red flags when you vet a Three.js developer
Watch for these while you interview. One red flag is not a verdict; a cluster is.
| What you look at | Green flag | Red flag |
|---|---|---|
| Their own site | A live scene, fast on your phone | A video loop or a case-study PDF |
| Talking performance | Names LCP, draw calls, bundle size | "It runs great on my machine" |
| Pricing | Written scope and a range | A day rate with no scope, or "contact us" |
| Handoff | Source and notes promised up front | Silence until you ask |
| Failure modes | Fallback and reduced-motion by default | Assumes every visitor has a fast GPU |
None of these needs you to read a line of GLSL. They are all things you can see from the outside.
04
What you are actually buying
A Three.js commission is not the scene. It is the scene plus everything that keeps it from hurting the business around it. My builds keep the meaning in HTML the crawler reads without running WebGL, lazy-mount the 3D after first paint, and treat a phone on a weak connection as the default device, not the exception. The spectacle earns its kilobytes or it gets cut before launch.
The proof is not this paragraph — it is the homepage loom, a real interactive WebGL cloth you can pull apart, and the live work at /work, including shipped web products and Roblox games you can play right now. Open them, throttle your connection, and judge the craft before you send a dollar. The contact form on this page tags your message "An app" so it lands labeled, and I answer it myself.
Proof over promises
Open the work. Judge it live.

2026 · Software · Shipped
Black Nile
A conversational website builder where small businesses talk, a site appears, and their own AI answers customers — metered to the credit.

2026 · Sound · Shipped
DWeaveAi Fan Funnel
A static fan funnel, live at dweaveai.space — one owned landing page per song, routing listeners to every streaming platform.
2026 · Games · Prototype
Star Hopper: Midnight Ascent
Run. Slide. Survive. One engine that outlived three different game concepts.
Straight answers
Asked often. Answered honestly.
- How do I vet a Three.js developer if I can't read the code?
- You don't need to read GLSL. Open their own site on your phone on a normal connection: does the scene load fast, stay smooth, and not drain the battery? Ask for a live URL instead of a video, and ask what happens on a weak device. Those answers tell you more than any résumé.
- What should a Three.js developer actually deliver besides the scene?
- A build that keeps the H1 as the largest paint, a scene that lazy-loads after first paint, a static or reduced-motion fallback, honest numbers on draw calls and bundle weight, and source plus notes at handoff. If any of those is missing, you bought a demo, not a system.
- Raw Three.js or React Three Fiber — which should I ask for?
- Either works. R3F fits React and Next.js codebases and keeps the scene declarative; raw Three.js gives tighter control for heavy custom rendering. The right choice depends on your stack, and a developer who can explain the tradeoff both ways is the one to trust.
- Will a Three.js hero wreck my Core Web Vitals?
- Only if it's built wrong. Keep the headline as LCP, mount the canvas after first paint, cap the bundle, and give reduced-motion users a still frame. The homepage loom here is the public proof that a heavy WebGL scene and green vitals can share one page.
- Can you add WebGL to my existing site, or does it need a rebuild?
- Usually a surgical add — a hero, a product configurator, an interactive section — not a rewrite. I work inside your codebase and brand. If a rebuild is genuinely cheaper than fighting the current stack, I say so in writing before you commit.
- How do I know I'm hiring the person who does the work?
- On my commissions there is no bench. The person who scopes it, writes the shaders, and answers at 9 PM when staging breaks is me. Ask any agency the same question; if the answer changes between the pitch and the invoice, that is your red flag.
Run the questions above on every candidate — then run them on me. Describe what your scene should do and get a written scope back, from the builder.