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.
Gallery




