Building Kyuto Fit: A Case Study in Glassmorphism
When I set out to build my personal brand website, I had three core goals:
- Elite Performance - Sub-second page loads, perfect Lighthouse scores
- Playful Aesthetics - Glassmorphism with bouncy micro-interactions
- Developer Experience - Clean architecture that's easy to maintain
Tech Stack
I chose Next.js 16 (App Router) for its server components and built-in optimizations. The entire site is statically generated at build time, resulting in blazing-fast page loads.
For animations, Framer Motion was the obvious choice. The spring physics and gesture support made it trivial to add the bouncy, playful feel I was going for.
Design System
The glassmorphism aesthetic required careful attention to:
- Backdrop blur - Using
backdrop-blur-xlwith subtle transparency - Border gradients - Pink/cyan accents on glass cards
- Layered shadows - Multiple shadow layers for depth
- Micro-interactions - Hover states with spring animations
Performance Optimizations
Despite the heavy use of animations and effects, the site maintains excellent performance:
- Code splitting - Dynamic imports for heavy components
- Image optimization - Next.js Image component with WebP
- Font optimization - Self-hosted fonts with
font-display: swap
Lessons Learned
Building this site taught me that performance and aesthetics aren't mutually exclusive. With the right tools and careful optimization, you can have both.
The key is to:
- Use CSS transforms for animations (GPU-accelerated)
- Lazy load non-critical components
- Minimize JavaScript bundle size
- Leverage server components where possible
What's Next?
I'm planning to add more interactive experiments to the Lab section, including:
- Real-time collaboration demos
- WebGL particle systems
- AI-powered code playgrounds
Stay tuned!