If I start a new project now either with vanilla Three.js or R3F, is it better to use WebGPU renderer? Is it mature enough? Are there some pitfalls?
If you’re starting a new project right now, here’s the realistic take.
If you want a stable app that just works, use WebGL. Three.js with WebGL is mature, predictable, and runs everywhere. Desktop, mobile, older browsers, no surprises. The ecosystem is complete, especially with R3F. Loaders, materials, postprocessing, helpers, and examples are all solid. If this is something you plan to ship or rely on long term, WebGL is still the safest option.
If you’re investing in a future facing project and you’re okay with some friction, WebGPU is worth considering. It’s clearly where web graphics is heading and it unlocks more modern GPU features with better long term performance potential. Three.js and R3F both support WebGPU, but it’s still in the catching up phase.
Right now WebGPU still has gaps. Some Three.js features and helpers are missing or behave differently, postprocessing and materials are not at full parity, browser support is improving but not universal, and you may need to deal with more low level GPU details than you would with WebGL.
The practical recommendation is simple. If you need reliability and broad compatibility today, use WebGL. If you’re intentionally building something meant to evolve over the next few years and you’re comfortable adapting as the ecosystem matures, start with WebGPU. A common approach is to ship on WebGL and experiment with WebGPU in parallel so you’re ready when it fully lands.
Thank you so much for taking the time to write this reply, that was really informative. ![]()