← Back to projects

Personal Portfolio Website (Next.js + Tailwind)

This portfolio site, built with Next.js 16 (App Router), TypeScript, and Tailwind CSS v4, and deployed to Vercel. The site serves as both a public-facing portfolio and a demonstration of the patterns it's built with. The architecture uses a mix of React Server Components and client components where appropriate — project and photo data is fetched server-side from Supabase for fast initial renders, while interactive gallery components (rotating photos, admin forms) are client-only. Media (project images, videos, gallery photos) is stored in Vercel Blob and served via CDN URLs. An admin dashboard (protected by NextAuth.js GitHub OAuth) allows managing projects, announcements, and the photo gallery entirely through the UI — no redeployment needed. The stack also includes rate-limited contact and meeting-request forms, a Google Calendar integration for scheduling, and Vercel Analytics for traffic monitoring. All environment-sensitive data flows through Vercel environment variables with no secrets in source.

Next.jsReactTypeScriptTailwind CSSNode.jsSharp

Gallery

Photograph of Portfolio home — hero section with a brief introduction and primary links to projects and resume.
Portfolio home — hero section with a brief introduction and primary links to projects and resume.
Photograph of About page — personal bio, skills summary, and contact links.
About page — personal bio, skills summary, and contact links.
Photograph of Projects list — grid of featured projects with short summaries and tech tags.
Projects list — grid of featured projects with short summaries and tech tags.
Photograph of Resume preview — embedded résumé PDF providing experience and education highlights.
Resume preview — embedded résumé PDF providing experience and education highlights.
Photograph of Portfolio Administrator Content Management Page
Portfolio Administrator Content Management Page