A high-performance, visually immersive personal portfolio
built with React 18 Β· TypeScript Β· Three.js Β· GSAP Β· Tailwind CSS
(Add a screenshot here β drag a PNG into this file on GitHub)
- π Three.js particle field in the hero with rotating role titles and a live clock
- π¬ GSAP ScrollTrigger animations β scroll-pinned sections, horizontal project gallery
- π±οΈ Lenis smooth scrolling with a custom cursor and magnetic hover effects
- π€ Email scramble effect and animated contact form in the Contact section
- π§± Single source of truth β all content lives in
src/data/portfolio.ts - π± Fully responsive with mobile-first layout and
prefers-reduced-motionsupport - β‘ Lazy-loaded sections, grain overlay, preloader, scroll progress bar
| Layer | Technology |
|---|---|
| Build Tool | Vite 6 |
| Framework | React 18 |
| Language | TypeScript |
| Styling | Tailwind CSS v3 |
| 3D Graphics | Three.js |
| Animations | GSAP + Framer Motion |
| Smooth Scroll | Lenis + GSAP ScrollTrigger |
| Icons | react-icons |
| Fonts | Space Grotesk + Inter |
| Deployment | Vercel |
portfolio/
βββ public/
β βββ images/ # Photos, project screenshots
β βββ resume/ # Resume PDF
βββ src/
β βββ components/ # All section & UI components
β βββ data/
β β βββ portfolio.ts # β Edit ALL your content here
β βββ hooks/ # Cursor, magnet, scramble effects
β βββ context/
β β βββ LenisContext.tsx # Smooth scroll setup
β βββ App.tsx # Root layout with lazy-loaded sections
βββ vite.config.ts
# Clone
git clone https://github.com/Aditya-dxt/Portfolio.git
cd Portfolio
# Install
npm install
# Develop
npm run dev # β http://localhost:5173
# Build
npm run build
npm run previewAll portfolio data lives in one file: src/data/portfolio.ts
Edit it to update your name, bio, skills, projects, education, timeline, social links, and resume path β no hunting through components needed.
| Section | What to edit |
|---|---|
| Hero / About | name, bio, roles, socialLinks |
| Skills | skills array with categories |
| Projects | projects array with title, stack, links, images |
| Education | education with school and college entries |
| Experience | timeline milestones |
| Contact | email, resumePath |
| # | Section | Description |
|---|---|---|
| 1 | Hero | Three.js particles, rotating roles, live clock |
| 2 | About | Scroll-pinned narrative with stats |
| 3 | Skills | Category tabs with animated lists |
| 4 | Projects | Horizontal scroll gallery with filters |
| 5 | Education | School & college timelines |
| 6 | Timeline | Experience & leadership milestones |
| 7 | GitHub Stats | Profile metrics & activity |
| 8 | Testimonials | Client and peer quotes |
| 9 | Contact | Form, resume download, social cards |
The form currently shows a demo success state. To make it live:
- Create a free endpoint at Formspree
- Update
handleSubmitinsrc/components/Contact.tsxto POST to your endpoint
Works on any static host. Recommended: Vercel (zero config).
npm run build # Output goes to /distJust connect your GitHub repo on vercel.com β it auto-detects Vite.
MIT β feel free to use this as a template for your own portfolio. A credit or star β is appreciated!
