← All projects
yusufsaitdirektas.com
A portfolio that wears its own code: one persistent Canvas, a decode engine and scroll choreography.
2026
- Next.js
- TypeScript
- React Three Fiber
- GLSL
- GSAP
- Lenis
Problem
Portfolio sites all look alike: a hero, three cards, a form. The skill list says "I know React" but the site itself never proves it. The goal was an experience where every pixel is living proof of what I've learned — a demonstration, not a shop window.
Solution
This site wears its own code. On load a terminal compiles itself, the portrait materializes glyph by glyph from real repository code, and every piece of text "decodes" onto the screen. A single persistent WebGL Canvas lives across the whole page; scrolling becomes a camera journey and each section is a stop in the scene.
Approach
- One-Canvas architecture: the R3F Canvas mounts once at layout level; sections swap scene content based on scroll state. No per-page Canvas.
- A two-layer decode language: a handwritten scramble engine in the DOM (accessibility and SEO intact), and a shader family sharing a single glyph atlas in WebGL.
- Choreography as data: camera stops, scroll windows and shader targets aren't baked into components; they live as configuration in
lib/choreography.ts. - Performance is non-negotiable: the particle budget adapts to the device, zero allocations inside
useFrame, and underprefers-reduced-motionthe site stays fully static and usable. - Two languages: TR/EN via next-intl; all visible text comes from the messages files.