Shaders are still the hardest thing to ship on a normal web team. WebGPU gives you the hardware, then hands you adapters, bind group layouts, and pipeline descriptors before a single pixel moves. Vercel spent that cost internally building the shaders on vercel.com, and has now open-sourced the result. vgpu is a TypeScript library that treats .wgsl files as importable modules, exposes one Gpu context, and runs the same shader in a browser canvas, in headless Node.js, and in a CI snapshot test.
Is it deployable?
Yes,vgpu is MIT licensed and published to npm, so pnpm add vgpu is the entire acquisition path. It is a library, not a hosted service, so there is no account, quota, or inference bill.
One context, no hidden global state
init() acquires an adapter and device and returns a single Gpu handle. Everything else hangs off it. The browser quick start in the README is four lines:
const gpu = await init();
const surface = gpu.surface(canvas, { dpr: [1, 2] });
const wave = gpu.effect(WAVE_WGSL, { set: { speed: 2 } });
gpu.frame.loop(() => { wave.set({ time: gpu.time }); wave.draw(); });surface wraps the canvas and clamps device pixel ratio between 1 and 2. effect compiles WGSL into a fullscreen effect whose uniforms are addressed by their WGSL names through set(). Frames are explicit: passes, clears, and draws are calls, never implicit scene-graph state.
WGSL as a Module System
The differentiator is shader tooling. .wgsl files import and export like TypeScript modules. vgpu resolves the module graph, reflects bindings, removes unused declarations, and emits compact shader source at build time. That removes the hand-written binding declarations that normally drift out of sync with the shader. The README states a complete fullscreen effect ships in 25 KB gzipped, and that the budget is enforced in CI.
Three Runtimes, One API
The package exposes subpath exports for vgpu, vgpu/node, vgpu/mock, vgpu/scene, vgpu/client, and vgpu/core. The Node path is Dawn-backed and renders offscreen:
const target = gpu.target({ size: [256, 256], format: "rgba8unorm" });
const pixels = await target.read();That is what makes CI rendering practical. pixelmatch and pngjs are direct dependencies of the published package, consistent with the documented workflow where CI compiles the shader, renders a headless frame, and compares the snapshot. The mock adapter is deterministic and exists for tests that should not touch a GPU at all.
The Agent Surface
Vercel calls this an agent-first library, and the packaging backs that up. The package ships a vgpu binary, so npx vgpu docs, npx vgpu examples, and npx vgpu check work without a global install. vgpu.sh publishes agents.md, llms.txt, and a full documentation export, plus a tokenless examples discovery API with an OpenAPI 3.1 description. A hosted read-only MCP server is available at vgpu.sh/api/mcp, and @modelcontextprotocol/server is a direct dependency. There is also an installable agent skill in the repo.
Comparison


Key Takeaways
- Vercel open-sourced
vgpu, the WebGPU library it built to ship shaders on vercel.com. - One API surface runs in the browser, in headless Node.js via Dawn, and in a deterministic mock.
.wgslfiles import and export like TypeScript modules, with reflection for bindings and layouts.- A complete fullscreen effect ships in 25 KB gzipped, a budget the repo says CI enforces.
- MIT licensed, on npm at v0.3.1, with a CLI,
llms.txt, and a hosted read-only MCP endpoint.
Check out the GitHub Repo, Docs and Examples, and the npm package. Also, feel free to follow us on Twitter and don’t forget to join our 150k+ML SubReddit and Subscribe to our Newsletter. Wait! are you on telegram? now you can join us on telegram as well.
Asif Razzaq is the CEO of Marktechpost Media Inc.. As a visionary entrepreneur and engineer, Asif is committed to harnessing the potential of Artificial Intelligence for social good. His most recent endeavor is the launch of an Artificial Intelligence Media Platform, Marktechpost, which stands out for its in-depth coverage of machine learning and deep learning news that is both technically sound and easily understandable by a wide audience. The platform boasts of over 2 million monthly views, illustrating its popularity among audiences.
