BigChecklist
A big checklist app that lets you easily create tasks, sort, and use keyboard shortcuts.
2026 · Next.js, PayloadCMS
rgbjoy is the online identity and portfolio of Tom Fletcher.
Tom Fletcher is a full-stack engineer and creative developer who designs and builds for the web, from client sites and product systems to shader experiments. Available for new work.
A big checklist app that lets you easily create tasks, sort, and use keyboard shortcuts.
2026 · Next.js, PayloadCMS
A small native macOS app for recording a live website inside a presentation frame, with your cursor, as an MP4.
2026 · Swift
A native Mac app for running, watching, and stopping package.json scripts while coding agents work.
2026 · Swift
An interactive savings calculator for exploring how daily contributions could grow over time, comparing risk levels, and planning toward a savings goal.
2026 · vinext, StyleX
Something weird for golf, in the works. All it takes is one good look.
2026 · vinext, Three.js
A patient-focused site for a multigenerational dental practice, built with Payload CMS and Next.js.
2026 · Next.js, Payload CMS
A curated guide to the best bars, restaurants, and local hangouts in Vero Beach, with clear vibes for every spot.
2026 · Next.js, PayloadCMS
A portfolio site for a New York City photographer and filmmaker, built with Payload CMS.
2025 · Next.js, PayloadCMS
Reader-facing features and custom editorial CMS tooling for the magazine, built and shipped front to back.
2026 · React
Design and website for a brewery in Vero Beach, FL, with a complete online shop for selling merch, including checkout and payments.
2025 · Next.js, PayloadCMS, Stripe
Soft blocks of colour, crisp in one place and smeared in the next, ghosted like a video starved of bitrate and seen through a CRT's slot mask. Click for a new frame, R to roll the dice on every setting, S to save it at 4K.
Generative & Visual · wip · Three.js, R3F, GLSL, lil-gui
The same sunlit concrete box, ported to WebGPU, with a striped plus tumbling through the sun shaft. The path tracer runs as a compute shader and keeps a short memory while the plus moves the light around; an edge-aware à-trous filter cleans what that leaves noisy, so orbiting stays smooth. Each light probe gets a workgroup of 64 lanes that trace its rays side by side. Panel (H) shows each pass's GPU time.
3D & Spatial · wip · WebGPU, WGSL, Three.js, R3F, lil-gui
A concrete box in the sky: sun shafts through one window, lit a second time by its own bounce light — one blue-noise ray a pixel, averaged frame over frame until the grain settles, while a chrome torus mirrors the room. Orbit in and out through the walls, and click an object to move or turn it.
3D & Spatial · wip · Three.js, R3F, GLSL, lil-gui
A sculpted hand in grainy black and white, fingers rolling in a seamless loop. Bring the cursor into its grasp and the hand catches it.
3D & Spatial · wip · Three.js, R3F, GLSL, glTF
An endless vertical list of names — fast, smooth scrolling and paired background and preview colors that crossfade on hover.
Generative & Visual · live · React, CSS, Lenis
A quietly waiting sheet ghost — simulated cloth, wandering idle motion, and a gaze that notices you in the dark.
3D & Spatial · live · Three.js, R3F, GLSL
Staple images to a telephone pole — drop one anywhere and it sticks where it lands, a few degrees off true.
Play · live · Three.js, R3F, drei
Shape a low-poly island with seeded noise, elevation bands, and live terrain controls.
Play · wip · Three.js, R3F, WebGL
Capsules and beads pile up against a pane — depth is spent as blur, so the far ones smear into the fog.
Glass & Refraction · live · Three.js, R3F, GLSL, box3d.js, lil-gui
A chill driving range. Read the wind, pull back, and send a golf ball toward flags out to 250 yards down a striped fairway.
Play · wip · Three.js, R3F, GLSL, glTF
Raymarched aurora curtains after kishimisu — spectral ribbons that drift and fold in deep space, pulsing to a generated beat.
Generative & Visual · live · Three.js, R3F, GLSL, Web Audio, lil-gui
Living gradients that cross-fade curated palettes, blended in OKLab for natural color.
Generative & Visual · live · Three.js, R3F, GLSL, thi.ng, lil-gui
A pane of segmented log-compression flutes over the left half of a soft drifting wash. The cursor sits behind the glass.
Glass & Refraction · live · Three.js, R3F, GLSL
A vertical glass line warping thin black wavy lines on white.
Glass & Refraction · live · Three.js, R3F, GLSL
Refracted line-field glass lighting. The lines bend away from the pointer and spring back.
Glass & Refraction · live · Three.js, R3F, GLSL
A 5×3 grid of point lenses refracting a flowing cosine wash background. They shy away from the pointer and spring back.
Glass & Refraction · live · Three.js, R3F, GLSL
Straight vertical glass lines refracting a gold cosine palette. The strips under the pointer grow wider.
Glass & Refraction · live · Three.js, R3F, GLSL
A fixed strip of bent glass near the top refracts the article text with chromatic aberration as you scroll.
Glass & Refraction · live · Three.js, R3F, GLSL
Concrete column field, refracting glass cubes, and whirling colored light trails over base fog.
3D & Spatial · live · Three.js, R3F, GLSL, Postprocessing
Five orbiting petal blobs with palette flow and soft fog wash.
Generative & Visual · live · Three.js, R3F, GLSL, lil-gui
Noise-warped diagonal stripes with live-tweakable colors and warp.
Generative & Visual · live · Three.js, R3F, GLSL, lil-gui
Tropical light filtering through large fronds.
3D & Spatial · live · Three.js, R3F
Rotating physical blocks in a neat field layout.
3D & Spatial · live · Three.js, R3F
Procedural sky gradients and atmospheric depth.
Generative & Visual · live · Three.js, R3F, GLSL, lil-gui
A slow monochrome ink wash shaped by layered noise.
Generative & Visual · live · Three.js, R3F, GLSL
Shader tunnel with a deep-space motion feel.
Generative & Visual · live · Three.js, R3F, GLSL