My personal website and digital resume / portfolio.
- Next.js (App Router) + TypeScript
- CSS Modules with a token-based design system (
styles/globals.css) - Light / dark theming via a
data-themeattribute - Deployed on Vercel
| Path | Purpose |
|---|---|
content/content.ts |
All site copy/data (identity, experiences, capabilities). |
styles/globals.css |
Design tokens, typography, light/dark themes, a11y helpers. |
components/layout.tsx |
Layout primitives: Container, Section. |
components/text.tsx |
Text primitives: Mono, Highlight, Amber, Prose. |
components/tag.tsx |
Tag primitives: Tag, TagRow. |
components/actions.tsx |
Action primitives: Action, MoreDetailsLink. |
components/SystemDiagram.tsx |
Animated hero topology. |
app/layout.tsx |
Root layout: header + footer + SEO/OpenGraph metadata. |
components/Reveal.tsx |
Restrained, reduced-motion-aware scroll reveal. |
app/page.tsx |
Homepage — the brief sections. |
components/Experience.module.css |
Styles for the Highlighted Experience article pages. |
app/experiences/[id]/page.tsx |
Highlighted Experiences. |
npm install
npm run dev # http://localhost:3000
npm run build # production build
npm run start # serve the production build