{"id":22847639,"url":"https://github.com/sanidhyy/threejs-portfolio","last_synced_at":"2025-04-30T03:49:40.256Z","repository":{"id":267211704,"uuid":"862181421","full_name":"sanidhyy/threejs-portfolio","owner":"sanidhyy","description":"Modern UI/UX Portfolio using React and Three.js","archived":false,"fork":false,"pushed_at":"2025-04-28T01:47:15.000Z","size":15689,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-30T03:49:33.749Z","etag":null,"topics":["3d-portfolio","emailjs","gsap","modern-ui","modern-ux","portfolio","portfolio-website","react","react-drei","react-three-drei","react-three-fiber","reactjs","tailwindcss","three-js","threejs","vite"],"latest_commit_sha":null,"homepage":"https://portfolio-3js.netlify.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sanidhyy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["sanidhyy"],"patreon":"sanidhy","custom":"https://www.buymeacoffee.com/sanidhy"}},"created_at":"2024-09-24T07:13:04.000Z","updated_at":"2025-04-29T16:30:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"e5006a79-ddd3-4dd1-b955-dcfc4dd40b00","html_url":"https://github.com/sanidhyy/threejs-portfolio","commit_stats":null,"previous_names":["sanidhyy/threejs-portfolio"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanidhyy%2Fthreejs-portfolio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanidhyy%2Fthreejs-portfolio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanidhyy%2Fthreejs-portfolio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanidhyy%2Fthreejs-portfolio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sanidhyy","download_url":"https://codeload.github.com/sanidhyy/threejs-portfolio/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251638760,"owners_count":21619663,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d-portfolio","emailjs","gsap","modern-ui","modern-ux","portfolio","portfolio-website","react","react-drei","react-three-drei","react-three-fiber","reactjs","tailwindcss","three-js","threejs","vite"],"created_at":"2024-12-13T04:08:38.617Z","updated_at":"2025-04-30T03:49:40.249Z","avatar_url":"https://github.com/sanidhyy.png","language":"TypeScript","funding_links":["https://github.com/sponsors/sanidhyy","https://patreon.com/sanidhy","https://www.buymeacoffee.com/sanidhy"],"categories":[],"sub_categories":[],"readme":"\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n# Modern UI/UX Portfolio using React and Three.js\n\n![Modern UI/UX Portfolio using React and Three.js](/.github/images/img_main.png \"Modern UI/UX Portfolio using React and Three.js\")\n\n[![Ask Me Anything!](https://flat.badgen.net/static/Ask%20me/anything?icon=github\u0026color=black\u0026scale=1.01)](https://github.com/sanidhyy \"Ask Me Anything!\")\n[![GitHub license](https://flat.badgen.net/github/license/sanidhyy/threejs-portfolio?icon=github\u0026color=black\u0026scale=1.01)](https://github.com/sanidhyy/threejs-portfolio/blob/main/LICENSE \"GitHub license\")\n[![Maintenance](https://flat.badgen.net/static/Maintained/yes?icon=github\u0026color=black\u0026scale=1.01)](https://github.com/sanidhyy/threejs-portfolio/commits/main \"Maintenance\")\n[![GitHub branches](https://flat.badgen.net/github/branches/sanidhyy/threejs-portfolio?icon=github\u0026color=black\u0026scale=1.01)](https://github.com/sanidhyy/threejs-portfolio/branches \"GitHub branches\")\n[![Github commits](https://flat.badgen.net/github/commits/sanidhyy/threejs-portfolio?icon=github\u0026color=black\u0026scale=1.01)](https://github.com/sanidhyy/threejs-portfolio/commits \"Github commits\")\n[![GitHub issues](https://flat.badgen.net/github/issues/sanidhyy/threejs-portfolio?icon=github\u0026color=black\u0026scale=1.01)](https://github.com/sanidhyy/threejs-portfolio/issues \"GitHub issues\")\n[![GitHub pull requests](https://flat.badgen.net/github/prs/sanidhyy/threejs-portfolio?icon=github\u0026color=black\u0026scale=1.01)](https://github.com/sanidhyy/threejs-portfolio/pulls \"GitHub pull requests\")\n[![Netlify Status](https://api.netlify.com/api/v1/badges/8c478bd6-ce9e-4d39-882e-a064a715cbd1/deploy-status)](https://portfolio-3js.netlify.app/ \"Netlify Status\")\n\n\u003c!-- Table of Contents --\u003e\n\u003cdetails\u003e\n\n\u003csummary\u003e\n\n# :notebook_with_decorative_cover: Table of Contents\n\n\u003c/summary\u003e\n\n- [Folder Structure](#bangbang-folder-structure)\n- [Getting Started](#toolbox-getting-started)\n- [Screenshots](#camera-screenshots)\n- [Tech Stack](#gear-tech-stack)\n- [Stats](#wrench-stats)\n- [Contribute](#raised_hands-contribute)\n- [Acknowledgements](#gem-acknowledgements)\n- [Buy Me a Coffee](#coffee-buy-me-a-coffee)\n- [Follow Me](#rocket-follow-me)\n- [Learn More](#books-learn-more)\n- [Deploy on Netlify](#page_with_curl-deploy-on-netlify)\n- [Give A Star](#star-give-a-star)\n- [Star History](#star2-star-history)\n- [Give A Star](#star-give-a-star)\n\n\u003c/details\u003e\n\n## :bangbang: Folder Structure\n\nHere is the folder structure of this app.\n\n```bash\nthreejs-portfolio/\n  |- public/\n    |-- assets/\n    |-- models/\n    |-- textures/\n    |-- apple-icon.png\n    |-- favicon.ico\n    |-- favicon1.png\n    |-- favicon2.png\n  |- src/\n    |-- components/\n        |--- Button.tsx\n        |--- CanvasLoader.tsx\n        |--- Cube.tsx\n        |--- DemoComputer.tsx\n        |--- Developer.tsx\n        |--- HackerRoom.tsx\n        |--- HeroCamera.tsx\n        |--- ReactLogo.tsx\n        |--- Rings.tsx\n        |--- Target.tsx\n    |-- constants/\n        |--- index.ts\n    |-- lib/\n        |--- utils.ts\n    |-- sections/\n        |--- About.tsx\n        |--- Clients.tsx\n        |--- Contact.tsx\n        |--- Experience.tsx\n        |--- Footer.tsx\n        |--- Hero.tsx\n        |--- Navbar.tsx\n        |--- Projects.tsx\n    |-- App.tsx\n    |-- index.css\n    |-- main.tsx\n    |-- vite-env.d.ts\n  |- .env.local.example\n  |- .env.local.local\n  |- .gitignore\n  |- .prettierrc\n  |- bun.lockb\n  |- eslint-config.js\n  |- index.html\n  |- package.json\n  |- postcss.config.js\n  |- tailwind.config.js\n  |- tsconfig.app.json\n  |- tsconfig.json\n  |- tsconfig.node.json\n  |- vite.config.ts\n```\n\n\u003cbr /\u003e\n\n## :toolbox: Getting Started\n\n1. Make sure **Git** and **NodeJS** is installed.\n2. Clone this repository to your local computer.\n3. Create `.env.local` file in **root** directory.\n4. Contents of `.env.local`:\n\n```env\n# .env.local\n\n# emailjs configuration\nVITE_APP_SERVICE_ID=service_xxxxxxxxxx\nVITE_APP_TEMPLATE_ID=template_xxxxxxxxxx\nVITE_APP_EMAIL=\u003cyour-email-here\u003e\nVITE_APP_PUBLIC_KEY=xxxxxxxxxxxxxx\n```\n\n### 5. Service ID (Replace VITE_APP_SERVICE_ID):\n\n- Visit [EmailJS](https://emailjs.com \"EmailJS\") Website.\n- Log in to your account or sign up with new account.\n- Navigate to the API keys or services section.\n- Find and copy the Service ID associated with your account.\n\n### 6. Template ID (Replace VITE_APP_TEMPLATE_ID):\n\n- Access the section for email templates or integration.\n- Locate the template you want to use or create a new one and copy its Template ID.\n\n### 7. EmailJS Public Key (Replace VITE_APP_PUBLIC_KEY):\n\n- Navigate to the dashboard or settings page.\n- Look for API keys or integration settings.\n- Copy the Public Key associated with your account.\n\n![Copy public key](/.github/images/step_emailjs.png \"Copy public key\")\n\n### 8. EmailJS Receiver (Replace VITE_APP_EMAIL):\n\n- Enter the email address where you want to receive emails.\n- Ensure that the chosen email address is accessible and ready to receive emails.\n\n9. Open terminal in root directory. Run `npm install --legacy-peer-deps` or `yarn install --legacy-peer-deps` or `bun install --legacy-peer-deps` to install dependencies.\n\n10. Now app is fully configured 👍 and you can start using this app using either one of `npm run dev` or `yarn dev` or `bun dev`.\n\n**NOTE:** Please make sure to keep your API keys and configuration values secure and do not expose them publicly.\n\n## :camera: Screenshots\n\n![Modern UI/UX](/.github/images/img1.png \"Modern UI/UX\")\n\n![Showcase your work](/.github/images/img2.png \"Showcase your work\")\n\n![Testimonials section](/.github/images/img3.png \"Testimonials section\")\n\n![Experience section](/.github/images/img4.png \"Experience section\")\n\n![Working contact form](/.github/images/img5.png \"Working contact form\")\n\n## :gear: Tech Stack\n\n[![React JS](https://skillicons.dev/icons?i=react \"React JS\")](https://react.dev/ \"React JS\") [![Vite JS](https://skillicons.dev/icons?i=vite \"Vite JS\")](https://vitejs.dev/ \"Vite JS\") [![Three JS](https://skillicons.dev/icons?i=threejs \"Three JS\")](https://threejs.org/ \"Three JS\") [![Javascript](https://skillicons.dev/icons?i=js \"Javascript\")](https://developer.mozilla.org/en-US/docs/Web/JavaScript \"Javascript\") [![Tailwind CSS](https://skillicons.dev/icons?i=tailwind \"Tailwind CSS\")](https://tailwindcss.com/ \"Tailwind CSS\") [![Netlify](https://skillicons.dev/icons?i=netlify \"Netlify\")](https://netlify.app/ \"Netlify\")\n\n## :wrench: Stats\n\n[![Stats for Threejs portfolio](/.github/images/stats.svg \"Stats for Threejs portfolio\")](https://pagespeed.web.dev/analysis?url=https://portfolio-3js.netlify.app/ \"Stats for Threejs portfolio\")\n\n## :raised_hands: Contribute\n\nYou might encounter some bugs while using this app. You are more than welcome to contribute. Just submit changes via pull request and I will review them before merging. Make sure you follow community guidelines.\n\n## :gem: Acknowledgements\n\nUseful resources and dependencies that are used in Threejs portfolio.\n\n- [@emailjs/browser](https://www.npmjs.com/package/@emailjs/browser): ^4.4.1\n- [@gsap/react](https://www.npmjs.com/package/@gsap/react): ^2.1.1\n- [@react-three/drei](https://www.npmjs.com/package/@react-three/drei): ^9.113.0\n- [@react-three/fiber](https://www.npmjs.com/package/@react-three/fiber): ^8.17.8\n- [clsx](https://www.npmjs.com/package/clsx): ^2.1.1\n- [gsap](https://www.npmjs.com/package/gsap): ^3.12.5\n- [leva](https://www.npmjs.com/package/leva): ^0.9.35\n- [maath](https://www.npmjs.com/package/maath): ^0.10.8\n- [react](https://www.npmjs.com/package/react): ^18.3.1\n- [react-dom](https://www.npmjs.com/package/react-dom): ^18.3.1\n- [react-globe.gl](https://www.npmjs.com/package/react-globe.gl): ^2.27.2\n- [react-responsive](https://www.npmjs.com/package/react-responsive): ^10.0.0\n- [sonner](https://www.npmjs.com/package/sonner): ^1.5.0\n- [tailwind-merge](https://www.npmjs.com/package/tailwind-merge): ^2.5.2\n- [three](https://www.npmjs.com/package/three): ^0.168.0\n- [@eslint/js](https://www.npmjs.com/package/@eslint/js): ^9.9.0\n- [@types/react](https://www.npmjs.com/package/@types/react): ^18.3.3\n- [@types/react-dom](https://www.npmjs.com/package/@types/react-dom): ^18.3.0\n- [@vitejs/plugin-react](https://www.npmjs.com/package/@vitejs/plugin-react): ^4.3.1\n- [autoprefixer](https://www.npmjs.com/package/autoprefixer): ^10.4.20\n- [eslint](https://www.npmjs.com/package/eslint): ^9.9.0\n- [eslint-plugin-react](https://www.npmjs.com/package/eslint-plugin-react): ^7.36.1\n- [eslint-plugin-react-hooks](https://www.npmjs.com/package/eslint-plugin-react-hooks): ^5.1.0-rc.0\n- [eslint-plugin-react-refresh](https://www.npmjs.com/package/eslint-plugin-react-refresh): ^0.4.9\n- [globals](https://www.npmjs.com/package/globals): ^15.9.0\n- [postcss](https://www.npmjs.com/package/postcss): ^8.4.47\n- [prettier](https://www.npmjs.com/package/prettier): ^3.3.3\n- [prettier-plugin-tailwindcss](https://www.npmjs.com/package/prettier-plugin-tailwindcss): ^0.6.8\n- [tailwindcss](https://www.npmjs.com/package/tailwindcss): ^3.4.13\n- [typescript](https://www.npmjs.com/package/typescript): ^5.5.3\n- [typescript-eslint](https://www.npmjs.com/package/typescript-eslint): ^8.0.1\n- [vite](https://www.npmjs.com/package/vite): ^5.4.1\n\n## :coffee: Buy Me a Coffee\n\n[\u003cimg src=\"https://img.shields.io/badge/Buy_Me_A_Coffee-FFDD00?style=for-the-badge\u0026logo=buy-me-a-coffee\u0026logoColor=black\" width=\"200\" /\u003e](https://www.buymeacoffee.com/sanidhy \"Buy me a Coffee\")\n\n## :rocket: Follow Me\n\n[![Follow Me](https://img.shields.io/github/followers/sanidhyy?style=social\u0026label=Follow\u0026maxAge=2592000)](https://github.com/sanidhyy \"Follow Me\")\n[![Tweet about this project](https://img.shields.io/twitter/url?style=social\u0026url=https%3A%2F%2Ftwitter.com%2FTechnicalShubam)](https://twitter.com/intent/tweet?text=Check+out+this+amazing+app:\u0026url=https%3A%2F%2Fgithub.com%2Fsanidhyy%2Fthreejs-portfolio \"Tweet about this project\")\n[![Subscribe to my YouTube Channel](https://img.shields.io/youtube/channel/subscribers/UCNAz_hUVBG2ZUN8TVm0bmYw)](https://www.youtube.com/@OPGAMER./?sub_confirmation=1 \"Subscribe to my YouTube Channel\")\n\n## :books: Learn More\n\nTo deepen your understanding of React.js and Netlify, explore the following resources:\n\n- [React.js Documentation](https://reactjs.org/docs) - delve into React.js features, concepts, and API.\n- [React Official Tutorial](https://reactjs.org/tutorial) - an interactive tutorial to get hands-on experience with React.\n\nFor Netlify-specific information:\n\n- [Netlify Documentation](https://docs.netlify.com) - learn about Netlify's features, deployment options, and more.\n- [Getting Started with Netlify and React](https://docs.netlify.com/frameworks/react) - a guide on deploying React applications on Netlify.\n\nYou're encouraged to contribute and provide feedback on [Netlify's GitHub repository](https://github.com/netlify/netlify).\n\n## :page_with_curl: Deploy on Netlify\n\nThe simplest way to deploy your React.js app is to use the [Netlify Platform](https://app.netlify.com/start) - a powerful platform for modern web projects.\n\nExplore the [Netlify deployment documentation](https://docs.netlify.com/site-deploys/create-deploys) for step-by-step instructions on deploying your React.js app on Netlify.\n\nHappy coding, and feel free to share your thoughts and improvements with the [Netlify community](https://community.netlify.com)!\n\n## :star: Give A Star\n\nYou can also give this repository a star to show more people and they can use this repository.\n\n## :star2: Star History\n\n\u003ca href=\"https://star-history.com/#sanidhyy/threejs-portfolio\u0026Timeline\"\u003e\n\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=sanidhyy/threejs-portfolio\u0026type=Timeline\u0026theme=dark\" /\u003e\n  \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=sanidhyy/threejs-portfolio\u0026type=Timeline\" /\u003e\n  \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=sanidhyy/threejs-portfolio\u0026type=Timeline\" /\u003e\n\u003c/picture\u003e\n\u003c/a\u003e\n\n\u003cbr /\u003e\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsanidhyy%2Fthreejs-portfolio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsanidhyy%2Fthreejs-portfolio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsanidhyy%2Fthreejs-portfolio/lists"}