For years I had a list. Not a task list, more of a "someday" list. Perlin noise flow fields. WebGL shaders. Three.js displacement maps. Generative art experiments. Things I genuinely wanted to explore, concepts I found fascinating, ideas I wanted to see running in a browser. And for years, that list barely moved.
Not because I lacked interest. Because I lacked time. After a full day of production work, the energy required to start something from scratch (the boilerplate, the unfamiliar API surface, the inevitable first two hours of setup before you even touch the interesting part) was just too high. The list stayed a list.
Claude Code changed that. Not in a vague, motivational way. In a very concrete, measurable way: the things on that list are now on this site.
The Real Problem Was Never Skill
I want to be honest about what was actually blocking me, because I think a lot of developers are in the same position. It was not capability. I knew how to build these things. It was the startup cost. Every new experiment meant:
- ·Setting up the canvas and render loop from scratch
- ·Re-reading documentation for an API I touch once a year
- ·Writing the same boilerplate state and ref wiring I write in every project
- ·Getting through the first hour before the interesting decisions start
None of that is hard. All of it is slow. And after work, slow is the same as impossible. You run out of evening before you run out of ideas.
The Developer Advantage Is Infrastructure
Here is the insight that took me a few weeks to fully appreciate: Claude Code is not equally powerful for everyone. The output quality scales directly with the quality of the context you provide. And as a developer, I have something that most users do not. I can build the infrastructure that makes that context excellent.
On this site, that means three things in practice.
- 01A design system with real tokens
Every color, spacing value, and animation is a CSS custom property. When Claude writes a new component, it reaches for text-violet, bg-bg2, font-mono, not arbitrary hex values. The design language is legible in the codebase, so the output speaks it automatically.
- 02Reusable components with consistent APIs
Section, Button, ExperimentLayout: small, focused, and used everywhere. Claude can infer how new things should work from how existing things work. There is less to specify because the pattern is already the spec.
- 03A structure that mirrors intent
Routes live where you expect them. Data in data/. Components in components/. One source of truth for experiments and blog posts. Claude knows where new things go without being told, because the folder structure communicates it.
This is the part that is hard to explain to someone who has not experienced it. A strong design system is not just good engineering. When working with Claude, it is the shared vocabulary that makes every request land on the first pass. You stop spending time correcting style decisions and start spending time on what actually matters: the behavior, the feel, the thing that makes it interesting.
Quality Without Slowdown
The other thing that surprised me: the quality did not drop. I expected that moving faster would mean accepting more mess. It did not. Because the infrastructure enforces consistency automatically, Claude stays on-pattern. A new experiment looks like the other experiments. A new blog post uses the same prose components. The brand holds.
That is the compounding payoff of building the right foundation first. Every good decision you make in the codebase (consistent naming, clear component boundaries, real design tokens) translates directly into AI output that needs less correction. You speed up without loosening up.
The List Is Moving
The flow field on this site started as a sentence: "help me build a Perlin noise particle system with controls on the left." It was running in minutes. The interesting work (tuning the cursor distortion, getting the color fade right, finding the trail opacity that looks good) happened in a tight loop of trying and seeing.
That loop used to be hours long. Now it is minutes. And that difference is everything. It is the difference between something staying on a list and something existing in the world.
I still write a lot of code by hand. There is thinking that happens at the keyboard that I would not want to skip. But the ceiling on what I can explore after work, alone, in an evening: that ceiling moved. And I am still figuring out how high it goes.