Skip to content

Repository files navigation

✦ Aditya Dixit β€” Portfolio

Editorial Β· Motion Β· AI-Native Engineering

Full-Stack & AI Engineer β€” Kanpur, India Β· Crafting production-grade, human-centered products

Live Portfolio React TypeScript Vite Vercel

National Finalist β€” India Innovates 2026 Β· 300+ DSA Β· MERN + RAG Β· Bharat Mandapam, New Delhi

Live Site Β· LinkedIn Β· GitHub Β· Book a Call Β· Resume


πŸ–ΌοΈ Preview

Replace with a real screenshot after deploy β€” public/images/preview.png

Portfolio Preview

Hero β€” Editorial Projects β€” Dark Photography β€” Spotlight
Champagne / Navy / Gold typography, pillars 3 featured dark cards + 4 secondary 16-frame fanned carousel β†’ FLIP focus

✨ What Makes This Portfolio Different

  • Editorial luxury system β€” Champagne #FAF7F0 / Navy #0F1F3D / Gold #C89B3C / Burgundy #7A263A, Playfair Display + JetBrains Mono, hairlines and grain
  • Motion without jank β€” Lenis smooth scroll + GSAP ScrollTrigger + Framer Motion FLIP, prefers-reduced-motion aware, rAF-lerped carousel
  • Photography spotlight β€” 16-image fanned stack (Aβ†’P), wheel/drag/arrows, true FLIP: tapped card lifts from its exact spot leaving a dashed vacancy, blurs the bunch, shows full object-contain frame, sinks back on outside/βœ•/Esc
  • Single source of truth β€” every word, link, and image in src/data/portfolio.ts
  • Production-grade DX β€” Vite 6 + React 18 + TS strict, Tailwind 3, code-split chunks (gsap/motion/three), Vercel zero-config

πŸ› οΈ Tech Stack

Layer Choice Why
Build Vite 6 Instant HMR, Rollup code-split
Framework React 18 + TypeScript 5.7 Strict, component MVVM
Styling Tailwind CSS 3.4 + custom vars Editorial tokens, no CSS bloat
Motion GSAP 3.12 + @gsap/react + Framer Motion 11 + Lenis 1.1 Scroll, FLIP, spring physics
3D Three.js 0.174 Hero particle field
Icons react-icons Minimal bundle
Deploy Vercel Edge, preview deploys

πŸ—οΈ Architecture

graph TD
  A[portfolio.ts β€” Single Source of Truth] --> B[App.tsx β€” Layout + LenisContext]
  B --> C[Editorial Shell]
  C --> C1[NavbarEditorial]
  C --> C2[HeroEditorial β€” 3D + Pillars]
  C --> C3[ProjectsEditorial β€” 3 featured + 4 secondary]
  C --> C4[ProcessSkills β€” Workflow + Skills Grid]
  C --> C5[ExperienceEditorial]
  C --> C6[EducationEditorial β€” MilestoneRail + useScroll]
  C --> C7[HackathonsEditorial]
  C --> C8[PhotographyEditorial β€” Fanned FLIP Carousel]
  C --> C9[ContactEditorial β€” Form + Calendly]
  C2 & C3 & C4 & C5 & C6 & C7 & C8 & C9 --> D[Vite Build β€” chunk: gsap / motion / three]
  D --> E[Vercel Edge β€” aditya-dixit.vercel.app]
Loading

Data Flow

flowchart LR
  P[portfolio.ts] -- import --> H[Hero] & PR[Projects] & EX[Experience] & ED[Education] & PH[Photography] & CO[Contact]
  PR -- props --> Card[ProjectCard β€” badge/lang/snippet]
  PH -- photos A→P --> Fan[Fanned Stack — translate 800%/200% rotate 120deg]
  Fan -- layoutId photo-i --> Spot[Spotlight β€” FLIP spring 380/32]
  CO -- mailto + clipboard --> Mail[User Inbox]
Loading

User Journey

journey
  title Visitor journey
  section Discover
    Land on Hero: 5: Visitor
    Read Pillars: 4: Visitor
  section Explore
    Scan Projects: 5: Visitor
    Follow Workflow: 4: Visitor
    Check Experience & Education: 4: Recruiter
  section Delight
    Play Photography FLIP: 5: Visitor
    Open Spotlight & navigate: 5: Visitor
  section Convert
    Copy email / Book call: 5: Recruiter
    Submit contact form: 5: Visitor
Loading

πŸ“‚ Project Structure

portfolio/
β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ images/
β”‚   β”‚   β”œβ”€β”€ photography/   # A.jpeg β†’ P.jpeg (16, alphabetical)
β”‚   β”‚   β”œβ”€β”€ hackathons/    # 4 event covers
β”‚   β”‚   β”œβ”€β”€ aditya-hero-3d.png
β”‚   β”‚   β”œβ”€β”€ college.jpg / school.jpg
β”‚   β”‚   └── contact-profile.png
β”‚   └── resume/SDE-Resume.pdf
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   └── editorial/     # Hero, Projects, ProcessSkills, Experience,
β”‚   β”‚                      # Education, Hackathons, Photography, Contact,
β”‚   β”‚                      # Navbar, Reveal, ScrollProgress, useMagnetic
β”‚   β”œβ”€β”€ context/LenisContext.tsx
β”‚   β”œβ”€β”€ data/portfolio.ts  # ← EDIT EVERYTHING HERE
β”‚   β”œβ”€β”€ hooks/             # cursor, magnet, scramble
β”‚   β”œβ”€β”€ lib/gsap.ts
β”‚   β”œβ”€β”€ index.css          # editorial tokens
β”‚   └── App.tsx
β”œβ”€β”€ tailwind.config.ts
└── vite.config.ts

πŸš€ Getting Started

# clone
git clone https://github.com/Aditya-dxt/Portfolio.git
cd Portfolio

# install (Node >=18)
npm install

# develop β€” http://localhost:5173
npm run dev

# production build
npm run build
npm run preview

✏️ Content Editing β€” One File

src/data/portfolio.ts β€” change once, everywhere updates.

To change Edit
Name, roles, bio, pillars name, rolesCycle, bio, pillars
Projects (3 featured) projectsFeatured β€” badge/lang/snippet/title/subtitle/desc/tags/live/github
Projects (secondary) projectsSecondary
Skills grid skills β€” abbr/name/cat/icon
Workflow process β€” 01β†’05
Experience experience β€” period/badge/title/role/desc/tags
Education + milestones education.college / education.school β€” milestones with current/upcoming/grade/badge
Hackathons hackathons β€” venue/date/role/tags/image
Photography alts PhotographyEditorial.tsx → photos[] — title A→P, alt text
Nav / Social / Booking nav, social, bookingUrl, resumePath

Photography: add new shots as Q.jpeg, R.jpg … in public/images/photography/ and append to photos[] alphabetically. Counter/dots adapt automatically.


πŸŒ— Editorial Sections

# Section Anchor Signature Interaction
1 Hero # 3D tilt hero image, pillars, rotating roles
2 Projects #projects 3 dark featured cards (no load flicker) + 4 secondaries
3 Workflow + Skills #process 5-step process + branded skill grid
4 Experience #experience Timeline editorial
5 Education #education MilestoneRail with useScroll gold growth
6 Hackathons #hackathons 4 national events
7 Photography #photography Fanned FLIP carousel, 16 frames, spotlight
8 Contact #contact Magnetic CTAs, copy email, Calendly, validated form

πŸ”§ Photography Carousel β€” UX Spec

stateDiagram-v2
  [*] --> Fan: drag / wheel / ←→
  Fan --> Fan: smoothTo β€” rAF lerp 0.14
  Fan --> Spotlight: tap card β€” jumpTo + 360ms + FLIP layoutId photo-i
  Spotlight --> Spotlight: ←→ / PrevΒ·Next β€” step selected
  Spotlight --> Fan: click backdrop / βœ• / Esc β€” spring back to dashed gap
  Fan --> [*]
Loading
  • Frame isolation: wheel with {passive:false} + preventDefault+stopPropagation inside navy rounded-[20px] border gold 18% frame; page doesn't scroll when cursor is inside.
  • Physics: progress 0β†’100, active = floor(progress/100*(n-1)), translate(800%*off, 200%*off) rotate(120deg*off), zIndex n-|i-active|, opacity curving.
  • A11y: tabIndex 0, focus-visible:ring, aria-label, keyboard focus on hover.

πŸ“¬ Contact Wiring

Form in ContactEditorial.tsx uses mailto: + validation and clipboard copy today. To make it live with an endpoint:

  1. Create endpoint at Formspree or FormSubmit
  2. Replace handleSubmit to fetch(ENDPOINT, {method:'POST', body: FormData})
  3. Keep mailto: fallback for no-JS.

Calendly button uses bookingUrl from portfolio.ts.


🚒 Deployment

npm run build   # β†’ dist/ (ignored by git, built on Vercel)

Connect repo at vercel.com β€” framework auto-detected as Vite. No env vars required. Each push to main deploys.

Custom domain: aditya-dixit.vercel.app (add your domain in Vercel β†’ Settings β†’ Domains).


πŸ“œ Scripts

Script What it does
npm run dev Vite dev server + HMR
npm run build tsc -b && vite build β€” type-check + bundle
npm run preview Serve dist locally
npm run lint ESLint on src

🀝 Contributing / Reuse

MIT β€” fork, customize portfolio.ts, replace public/images/*, ship. A ⭐ is appreciated.


πŸ“ˆ Roadmap

  • Light/Dark editorial toggle (persisted)
  • MDX case-study pages per project
  • View transitions API for route morphs
  • OG image generation per project

Built with ❀️ by Aditya Dixit β€” Kanpur, India

Photography is not just a hobby β€” it's how I see the world.

About

🌌 Personal portfolio β€” React 18 Β· TypeScript Β· Three.js Β· GSAP Β· dark void aesthetic with cyan accents

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages