Notes from the build.
Debugging diaries, build retrospectives, and the occasional opinion. All posts are tied to real PRs and shipped commits.
- May 21, 2026·4 min read·uxwebgpueaster-eggs
Secret scenes: easter eggs that reward the curious
A hidden 7th WebGPU scene unlocked by typing a word or long-pressing, plus the Konami overlay — why delight-for-the-attentive is worth the code.
Read post - May 20, 2026·5 min read·webgpuarchitecturewgsl
One UBO, seven scenes: architecting a WebGPU scene switcher
A single shared uniform layout plus a small Scene type that lets fullscreen-triangle scenes and a GPU compute scene coexist in one component — and how a stable byte layout let me add scenes for weeks without refactoring.
Read post - May 20, 2026·4 min read·uxportfolioconversion
Hide the price: making a portfolio's 'Hire me' section opt-in
A small UX bet that pricing should be revealed on intent, not pushed at every visitor who lands on the home page.
Read post - May 19, 2026·5 min read·webgpuwgslraymarching
A raymarched Mandelbulb in WGSL
Rendering the power-8 Mandelbulb — the 3D analog of the Mandelbrot set — as a distance estimator raymarched in a fragment shader, with orbit-trap coloring that tracks the active theme.
Read post - May 19, 2026·5 min read·webgpuweb-audiowgsl
Audio-reactive WebGPU: from mic FFT to a 64-bin spectrum
Piping Web Audio FFT data into WGSL two ways — coarse four-band modulation every scene shares, and a dedicated 64-bin storage-buffer visualizer.
Read post - May 18, 2026·5 min read·webgpumobileux
Gyroscope-steered shaders: making a WebGPU lab fun on phones
Tilt the phone to steer the scene, plus haptics, unified touch input, and an auto-cycle demo mode for hands-off viewing.
Read post - May 18, 2026·5 min read·webgpuwgslcompute
Compute shaders in the browser: 25k GPU particles in WebGPU
A real WebGPU compute pipeline driving a curl-noise particle field — 25,000 particles integrated entirely on the GPU, the one thing WebGL fundamentally cannot do.
Read post - May 17, 2026·6 min read·webgpuwgslshaders
WebGPU at /lab: raymarched metaballs in 120 lines of WGSL
How the lab page renders smoothly-blended SDF metaballs at 60fps using pure WebGPU — no R3F, no Three.js. The full shader + render pipeline walked through.
Read post - May 17, 2026·5 min read·performancenextjsbundle
−22 KB in one PR: how I split the chat panel and deferred the easter egg
A perf retrospective. The bottleneck was eager imports of features that 95% of visitors never use. The fix: dynamic-import them, and gate non-visible components behind requestIdleCallback.
Read post - May 17, 2026·4 min read·positioningaicareer
Why I now call myself a Full-Stack AI Systems Engineer
A title change isn't a re-skin. It's a commitment to a specific category of work — RAG systems, LLM agents, and cloud-native architecture — and to refusing the kind of AI work that doesn't actually do anything.
Read post - May 16, 2026·4 min read·csstailwindtheming
Six themes in OKLCH: a CSS variable theme studio
How zaidxshaikh's six themes work — Tailwind 4 @theme tokens, a single data-attribute swap, smooth body transitions, and a 3D canvas that re-tints to match.
Read post - May 16, 2026·5 min read·pwaservice-workernextjs
Making zaidxshaikh installable: PWA without next-pwa
The full PWA pipeline — Next 15 manifest route, dynamic icon endpoint, hand-rolled service worker with smart caching, branded offline page, custom install pill — all without the next-pwa dependency.
Read post - May 15, 2026·2 min read·debuggingperformancescroll
Why I removed Lenis from zaidxshaikh
Smooth-scroll libraries can fight native scroll on platforms they were supposed to enhance. Here's the diagnosis.
Read post - May 14, 2026·3 min read·portfoliouiperformance
The shareability pack: Konami, View Transitions, dynamic OG, sound
Phase 2 of zaidxshaikh was four small features designed for one big screenshot moment each. +3 KB total, zero new npm deps.
Read post - May 12, 2026·2 min read·portfolionextjsr3f
Building zaidxshaikh: foundation → viral hooks in one week
How v2 of my portfolio went from empty branch to WebGL + ⌘K palette + streaming AI chat + audience switching, in a week of focused work.
Read post