This is my personal website, where I share my work, experience and frontend experiments. I designed it in Figma and built it with Next.js, and I keep evolving it as a place to try out ideas in a real, deployed codebase.
Technical decisions
Content as code. Work and blog content lives in MDX files inside the repository. Each file's frontmatter is validated with Zod at build time, so missing or malformed content fails the build instead of reaching production. The site originally used Sanity as a headless CMS; moving the content into the repository removed an external dependency that this project didn't need.
Static by default. Pages, including blog posts and case studies, are prerendered at build time, and social preview images are generated with Next.js instead of maintained by hand.
A small component system. The UI is built from typed, composable components with variants defined through class-variance-authority, inspired by shadcn/ui. Animations are built with Framer Motion and encapsulated in reusable animated primitives, so pages stay declarative.
Design
I aimed for a minimal layout that puts content first, with motion used to add rhythm without getting in the way of reading. Responsiveness and load performance were treated as requirements from the start, not as polish.