All projects/experience

Portfolio Website

Personal portfolio built with Next.js 15, TypeScript, Tailwind CSS v4, and Framer Motion.

Next.jsTypeScriptTailwind CSSFramer Motion

Overview

A modern personal portfolio and blog built from scratch with Next.js App Router. Designed for performance and developer experience — every page is statically generated at build time.

Features

Technical decisions

The App Router's server components are used wherever possible, keeping client JavaScript small. 'use client' is added only where needed (Navbar, ThemeToggle, animation wrappers).

Tailwind CSS v4's new @custom-variant directive handles the dark mode selector, replacing the old darkMode: 'class' config option.