A minimal, premium personal portfolio for a Data Analyst / Aspiring ML Engineer. Warm beige palette, day/night toggle, an "Analytics Snapshot" dashboard card instead of a hero photo, and project cards wired to real GitHub repositories.
- Next.js (App Router) + TypeScript
- Tailwind CSS (theme via CSS variables,
darkMode: "class") - Motion (
motion/react) for subtle scroll animations - next-themes for the day/night toggle
- lucide-react + react-icons for icons
npm install
npm run dev # http://localhost:3000
npm run build # production buildapp/
layout.tsx # fonts (Inter + Playfair), metadata, ThemeProvider
page.tsx # composes all sections
globals.css # palette CSS variables + component utility classes
components/
Navbar.tsx # sticky blur nav + mobile menu + theme toggle
Hero.tsx # intro + AnalyticsSnapshot
AnalyticsSnapshot.tsx # SVG dashboard card (no photo)
TechStack.tsx # tech strip
About.tsx # intro + 3 cards
Experience.tsx # timeline
Projects.tsx # project cards (GitHub-linked)
Skills.tsx # grouped pill badges
Contact.tsx # contact links
Footer.tsx
Reveal.tsx # scroll fade-in wrapper (Motion)
ThemeProvider.tsx # next-themes wrapper
ThemeToggle.tsx # day/night button
lib/
data.ts # ALL editable content: nav, socials, projects, experience, skills
Everything lives in lib/data.ts:
- Projects — title, description, tech, GitHub link, optional
demo, andisPrivate(shows a "Private" badge instead of a dead link). Add ademoURL to a project and its Live Demo button appears automatically. - Experience, Skills, About cards, tech strip — plain arrays.
- Socials — update
emailandlinkedin(GitHub is already set).
Colours are CSS variables in app/globals.css (:root for
light, .dark for night) and surfaced to Tailwind as bg, surface, fg,
muted, accent, line.
- Add your CV at
public/cv.pdf(the Download CV button points there). - Update your LinkedIn URL and email in
lib/data.ts.