Professional, modern portfolio showcasing work, technical skills, and a custom 3D Spline keyboard with polished animations and responsive design.
View Live Preview »
- Table of Contents
- About The Project
- Tech Stack
- Getting Started
- Project Structure
- Deployment (Vercel)
- Contributing
- License
- Contact
- Acknowledgements
This repository hosts my personal 3D portfolio website, designed to reflect my creativity and technical expertise through immersive, responsive design and fluid animations.
At its core lies a custom-built 3D interactive keyboard (download here) made in Spline. Each keycap maps to a skill and reveals a title and short description on hover, offering visitors a fun and engaging way to explore my skillset.
Key Features
- Custom 3D Spline Keyboard: interactive keycaps implemented with Spline Runtime; hover to reveal skill metadata.
- Smooth Motion & Interactions: GSAP + Framer Motion power scroll-triggered reveals and micro-interactions.
- Space-inspired Visual Theme: subtle particle system and dark, minimal aesthetic.
- Responsive & Accessible: Tailwind CSS and component-driven UI for consistent behavior across devices.
- Validated Contact Flow: contact form handled via Resend API, input validated with Zod.
- Realtime Utilities: Socket.io integrated for realtime features where applicable.
| Layer | Tools |
|---|---|
| Framework | Next.js, React |
| Styling & UI | Tailwind CSS, Shadcn UI, Aceternity UI |
| 3D & Animations | Spline Runtime, GSAP, Framer Motion |
| Utilities | Resend, Socket.io, Zod |
| Hosting | Vercel |
- Node.js v16+ (recommended)
- npm or yarn
# clone
git clone https://github.com/syedharif/project_3D_developer_portfolio.git
cd project_3D_developer_portfolio
# install dependencies
npm install
# or
yarn installCreate a .env.local file in the root directory and add your environment variables:
# .env.local
RESEND_API_KEY=your_resend_api_key_hereSecurity Tip: Never commit your .env.local file. Use Vercel’s Environment Variables section for deployment secrets.
# Start development server
npm run dev
# or
yarn devOpen http://localhost:3000 to view your local build.
Build for Production
npm run build
npm run start
# or
yarn build
yarn start+---public
| \---assets
| +---icons
| +---nav-link-previews
| +---projects-screenshots
| | \---portfolio
| \---seo
\---src
+---app
| +---about
| +---api
| | \---send
| +---blog
| +---contact
| \---projects
+---components
| +---footer
| +---header
| | \---nav
| | +---body
| | +---footer
| | \---image
| +---logos
| +---preloader
| +---realtime
| +---sections
| +---social
| +---theme
| \---ui
+---contexts
+---data
+---hooks
+---lib
| \---lenis
+---types
\---utils-
Push your repository to GitHub.
-
Go to Vercel → New Project.
-
Import your repository.
-
Add your environment variables under Settings → Environment Variables.
-
Deploy — Vercel automatically handles builds, previews, and production updates.
Note: You can enable automatic deployments for commits pushed to the main branch.
This is a personal project, but performance, accessibility, and security suggestions are welcome.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
⭐ Don’t forget to star the repository if you found it inspiring!
This project is open source and distributed under the MIT License.
Syed Harif Fayaz | LinkedIn - Twitter - dev.syedharif@gmail.com
-
Naresh Khatri - for open-sourcing his 3D portfolio
-
The open-source community for the tools that make creative web experiences possible.
