I built this webpage as a personal narrative, not as a static resume. My goal is simple. I want visitors to understand how I think, how I work, and what I can build before they ever send me a message.
I designed this site to guide people from first impression to informed trust. Every section has a job.
- Hero sets context and direction.
- About frames my background with measurable signals.
- Projects shows applied work with real visuals.
- Current Focus shows what I am building right now.
- Thesis and Certifications document my academic and technical depth.
- Experience and Skills connect timeline with capability.
- Contact makes it easy to start a conversation.
I use motion to support reading flow, not to distract. I keep typography clean, spacing intentional, and contrast high enough for clarity. I treat interaction as part of storytelling. Hover states, progressive reveals, and scroll transitions are all used to reduce friction and increase comprehension.
- Next.js App Router
- TypeScript
- Tailwind CSS
- GSAP for advanced motion and scroll behavior
- Lucide for iconography
- Client side canvas effects for selective visual depth
I separated runtime code from source material and archived assets so the project stays readable as it grows.
appfor routing and page compositioncomponents/layoutfor page shell elementscomponents/sectionsfor top level page blockscomponents/ui/basefor shared primitivescomponents/ui/backgroundsfor ambient visual systemscomponents/ui/contentfor galleries and content utilitiescomponents/ui/effectsfor interaction and behavior layerscomponents/ui/errorsfor error viewscomponents/ui/systemfor structural helperslibfor utilities and reusable hookspublicfor served assetsassetsfor source image materialdocsfor guides, references, and workspace filesarchivefor historical or large non runtime files
- Install dependencies with
npm install. - Build with
npm run build. - Start with
npm run start.
I use this repository as both a portfolio and a craft log. When I refine the site, I am refining how I communicate value.