This repository contains the final code for the Portfolio Website in ReactJS.
For the Demo and Final Code check out this link 👇:
Checkout this Responsive Portfolio in ReactJS
If you want to learn how to create it, follow the tutorial below 👇:
https://youtu.be/jcohAIaSy2M
✨ Checkout my brand new SaaS application -> AI Headshot Generator
The original tutorial code targeted Create React App and an older set of libraries. The current main branch has been brought up to date. If you want the original tutorial code, check out commit 5cef54f (or any commit before this update) — the older version is preserved in git history.
- Build tool: removed
react-scripts(Create React App) and migrated to Vite 8 with@vitejs/plugin-react. Faster dev server, faster builds, plain ES modules. - Package manager: project now uses Bun instead of npm/yarn (works fine with either, but
bun.lockbis the source of truth). - React 19 + react-dom 19 (was React 18).
- react-router-dom 7 (was 6) — declarative
BrowserRouter/Routes/RouteAPI used here is unchanged. - framer-motion → motion 12. The package was renamed; imports moved from
framer-motiontomotion/react. - styled-components 6 (was 5). All non-DOM props (
click,color,img,top,left,right) were converted to transient props ($-prefixed) so they don't leak onto the DOM. - tsparticles 3 with the new
@tsparticles/reactwrapper.react-tsparticlesis deprecated. The component now usesinitParticlesEngine+loadFullandoptionsinstead of the oldparamsprop. - Removed unnecessary CRA leftovers:
reportWebVitals.js,setupTests.js,App.test.js,App.css,index.css,logo.svg,manifest.json,logo192.png,logo512.png,package-lock.json, plusdata/AllSvg.txtanddata/Text.txtscratch files. - JSX-bearing files were renamed from
.jsto.jsx(Vite/Rolldown only treats.jsxas JSX by default).
Every previous version is kept in git history. To run the original CRA-based version:
git checkout 5cef54f
npm install
npm startDesign in: https://www.figma.com/
SVG Icons from: https://fontawesome.com/
Spaceman 3D image from: https://www.figma.com/community/plugin/769588393361258724/Vectary-3D-Elements
Audio: Music by Jonas from Pixabay
Background photo by Patrick Tomasso on Unsplash
Make sure you have Bun installed (bun --version should print 1.0+).
bun install
bun run dev # start the Vite dev server at http://localhost:3000
bun run build # production build to ./dist
bun run preview # preview the production build locallyThe project is plain Vite + React, so npm install && npm run dev works too if you'd rather not use Bun.





