Things I build to learn, not to ship. Some become libraries. Some become blog posts. Most just become better instincts.
A personal monorepo of motion-aware, accessible UI primitives for React. Built because every project I work on ends up needing the same set of thoughtfully animated, keyboard-navigable components — so I am building them once, properly.
Exploring the gap between CSS transitions and physically correct spring behaviour. Most hover effects feel mechanical because they use cubic-bezier curves instead of actual spring models. These experiments test what changes when you use GSAP elastic easing or CSS linear() to approximate real spring physics.
Working through Three.js scene architecture — lighting models, material systems, and how to structure a scene so it is maintainable, not just impressive on first load. Currently studying shader basics and how to write GLSL that integrates cleanly with a React render cycle.
Every project I start, I spend too long picking a type scale. This is an attempt to build a utility that generates fluid, clamp()-based scales from a set of design constraints — minimum viewport, maximum viewport, minimum size, maximum size, scale ratio. The output is a Tailwind config you can drop in.