I'm trying to use a preset web shader from Shaders.com or Paper on a website. I'm comfortable with front-end work, but I'm new to modern JavaScript tooling and NPM. I installed NPM and downloaded the shader package, but I'm not sure how to add the shader to a local project, import it, or get it running. I'm looking for the basic setup needed to run an existing shader—not instructions for writing one from scratch. Eventually I'd like to use it in Webflow, but first I need to understand how to test it locally.
2 Answers
For the least confusing first test, use a tiny Vite project rather than trying to install packages directly into your home folder: run `npm create vite@latest shader-test`, choose a basic JavaScript template, then run `npm install` and `npm run dev`. Put the shader package installation and import in the generated JavaScript file, and follow the package’s preset example for creating the canvas and passing its options. Once it works locally, you can either copy the library’s browser script into Webflow or host the bundled JavaScript and load it with a script tag. NPM itself does not compile or display a shader; it only installs dependencies, while the bundler prepares the JavaScript for the browser.
Start with the package’s documentation, since each shader library usually exposes a different setup function and expects specific HTML or canvas elements. In a normal local project, create a package file with `npm init`, install the shader package with `npm install `, and use a build tool such as Vite. Your JavaScript would then import the package, select a canvas or container, and initialize the preset according to the library’s example. Running the Vite development server will bundle the imported code for you. If the library provides a browser build, you may also be able to use a regular `` tag instead of NPM, which may be easier for a Webflow embed.

That helps clarify the missing piece. I was expecting installing a package to make it available automatically, but I still need an HTML page, JavaScript entry file, and a bundler or browser-ready script to connect everything.