How I Built This Website
June 23, 2026 4 min read
When I set out to build this site, I wanted something that felt like me — interactive, a little playful, and technically interesting under the hood. Here's how it came together.
The stack
I built this on Next.js (the App Router), styled everything with Tailwind CSS, and added motion with Framer Motion. The spinning cube on the home page is rendered with Three.js through React Three Fiber.
What I learned
- Server vs. client components. Next.js renders as much as possible on the server. Anything interactive — the cube, the floating bubbles, the typewriter — has to be a client component marked with
"use client". - Loading 3D safely. The Three.js cube only works in the browser, so I load it dynamically with
ssr: falseand show a spinner while it boots up. - Keeping dependencies pinned. A loose dependency version once broke the whole site with a cryptic "client-side exception." Lesson learned: pin the versions that matter.
What's next
I want to keep adding interactive pieces and write more often here. This blog itself is built so I can publish just by dropping a new Markdown file into the project — no code required.
Thanks for reading!