Back to Projects

ezhou.dev - Personal Website

Portfolio site built with Next.js 14, fully statically generated

Next.jsTypeScriptTailwind CSSFramer Motion

Overview

A personal portfolio site designed to showcase engineering projects and experience. Built with a minimalist dark aesthetic and deployed on Vercel, with every page pre-rendered at build time.

Architecture

Next.js 14 App Router with static site generation. Project pages are generated from a single typed data source via generateStaticParams. Framer Motion handles scroll-triggered animations and a custom command palette (Cmd+K) provides keyboard navigation. Tailwind CSS provides the design system.

Key Challenges

  • Navigating Next.js 14 App Router patterns and RSC/client component boundaries
  • Designing a minimal aesthetic that feels engineered, not templated
  • Building an accessible command palette with full keyboard support

What I Learned

  • Next.js 14 App Router architecture and SSG patterns
  • Framer Motion animation patterns for scroll-triggered reveals
  • Deploying and configuring custom domains on Vercel with Cloudflare DNS

Future Improvements

  • Add dark/light mode toggle
  • Add a technical blog with real write-ups of Northbound and rUNSWift work
  • Add interactive project visualisations