Personal portfolio for Hadi Paul Scharbrodt.
Stack: Next.js 15 (App Router) · TypeScript · Tailwind v4 · React Three Fiber · GSAP · Lenis · Framer Motion · next-themes.
npm install
npm run dev
Open http://localhost:3000.
npm run build
npm start
Targets Vercel out of the box. Push to a GitHub repo and import in Vercel — no env vars required.
app/ — App Router routes (home, about, experience, activities, projects + 4 case studies)components/three/ — R3F hero scene, lazy-loadedcomponents/motion/ — Lenis smooth scroll, magnetic cursor, reveal animations, marqueecomponents/projects/ — shared CaseStudy layout, live SortingCanvas (merge-sort viz), PsychQuiz (flashcards)components/intro/NameLoader.tsx — name-reveal intro (plays once per session)components/theme/ — light/dark toggle via next-themescontent/ — typed source-of-truth for profile, experience, projects, activitieslegacy/index.html (gitignored). Source of all content was migrated from there.Fraunces_Regular.json font isn’t present in public/fonts/. Drop a Text3D-compatible font there to render extruded “HADI” letters.prefers-reduced-motion.