You’ve probably done this: you want to build a visual effect on the web, so you immediately reach for a library. Three.js. PixiJS. p5.js. Maybe even D3. You install 47 dependencies, wait for the build to compile, and then spend two hours debugging a webpack config before you’ve drawn a single pixel.
I’ve been there. We all have. But here’s the thing — the most powerful graphics API on the web doesn’t require an npm install. It doesn’t need a package.json. It doesn’t need anything at all.
It’s HTML Canvas. And it’s been sitting in your browser this entire time.
The best graphics library is the one that ships with nothing.
A developer named Kanevskyy recently compiled something that proves this point with visceral clarity: a gallery of Canvas effects, built entirely from scratch, using zero external libraries. No frameworks. No abstractions. Just raw drawing primitives — lines, arcs, gradients, pixels — arranged into visual experiences that rival anything you’d see in a modern creative coding showcase.
The tension here is almost absurd. Canvas gives you a handful of commands: draw a rectangle. Draw a line. Fill a path. Put an image. That’s it. And from those primitives, this gallery produces particle systems, generative art, fluid simulations, interactive visualizers — effects that most developers would assume require WebGL or a heavy library.
Every modern graphics framework is just someone else’s opinion about how you should draw pixels.
Here’s what happens when you use a library for everything: you lose touch with the fundamental language of the screen. You stop thinking in terms of pixels and paths. You start thinking in terms of components and props and scene graphs. And slowly, without noticing, you forget that the browser already knows how to draw.
This is the same feeling that made the demoscene so captivating. Those early programmers didn’t have libraries. They had a framebuffer and audacity. They pushed minimal tools to produce maximum spectacle. Canvas carries that same DNA — a low-level surface where the only limit is your understanding of how rendering actually works.
Abstraction is a loan you take out against understanding. Eventually, the bill comes due.
When you explore the Canvas gallery, something shifts. You start seeing patterns. You realize that a particle system is just a loop of arcs with velocity. That a gradient is two colors arguing. That a glow is just a blur you were too lazy to compute properly. The magic dissolves into mechanics, and that’s when you start building real things.
The gallery isn’t just a reference. It’s a provocation. Every effect comes with its source code visible, reusable, forkable. No build step. No dependencies. You copy a snippet, drop it into an HTML file, and it runs. Immediately. In any browser. On any device.
Try that with your 200MB node_modules folder.
The web was built on the radical idea that anyone should be able to build something with nothing. Canvas is the last honest relic of that promise.
Most developers will read this and move on. They’ll reach for the same libraries tomorrow. They’ll add another abstraction layer. They’ll wonder why their site loads slowly and their bundle is bloated. And they’ll never connect the dots.
But some of you — the ones who still feel a flicker of something when you see a raw <canvas> tag — you already know. You know that the best tools aren’t the ones with the most stars on GitHub. They’re the ones that teach you how to see.
Canvas doesn’t need a framework. It needs your curiosity.
Go look at the gallery. Copy the code. Break it. Rebuild it. Remember what it feels like to draw pixels with your bare hands.
The frameworks will come and go. The primitives will outlast them all.
FAQ
Q: But isn't Canvas limited compared to WebGL for serious graphics?
A: For 3D rendering at scale, yes. But for 90% of visual effects — particles, generative art, interactive visualizers — Canvas is not just sufficient, it's superior. You get instant iteration, zero build overhead, and code that runs anywhere.
Q: What's the practical takeaway if I'm already using Three.js in production?
A: Keep using it. But spend a weekend building something with raw Canvas. You'll understand your abstractions better, debug faster, and probably discover that half your library usage was overkill for the effect you actually needed.
Q: Is this just nostalgia for the old web?
A: No. It's a recognition that abstraction has a cost, and most developers have stopped paying attention to the receipt. Canvas isn't about going backwards — it's about remembering that the fundamentals still matter, and that the simplest tools often produce the most creative results.