A Next.js + Tailwind CSS + Framer Motion + Three.js portfolio spanning three domains: Software Engineering, AI, and Cybersecurity.
- Public website: https://portfolio-shoaib22.vercel.app
- GitHub repo: https://github.com/Shoaib1515/portfolio
- Next.js 16 (App Router)
- Tailwind CSS v4
- Framer Motion — scroll-reveal and layout animations
- GSAP — installed and ready for additional timeline animations
- Three.js — the floating 3D wireframe shapes in the hero section
- Nodemailer — powers the working contact form via a Next.js API route
- Three color-coded domains (Software / AI / Security) with dedicated sections, filterable projects, and filterable certifications
- Real, working contact form (
/api/contact) that sends email via SMTP - Dark/light theme toggle
- Full-screen animated mobile navigation menu
- Scroll-progress bar, custom cursor, and 3D hero shapes (all respect
prefers-reduced-motion) - Downloadable resumes for different roles (Software / Cybersecurity / QA)
- Install dependencies:
npm install- Run the dev server:
npm run dev- Open http://localhost:3000 in your browser.
npm run build
npm run startThe contact form posts to src/app/api/contact/route.js and sends an email
via SMTP.
- Create a local environment file:
cp .env.example .env.local-
Fill in
.env.local:SMTP_HOSTSMTP_PORTSMTP_USERSMTP_PASSCONTACT_TO_EMAILCONTACT_FROM_EMAIL(optional, defaults toSMTP_USER)
-
Restart the dev server and test the Contact section.
- Blog posts in
src/data/blog.jsare still placeholders — swap in real writing whenever ready - A few project screenshots in
public/images/projects/are still pending
This project is personal portfolio code. Feel free to reference the structure, but please don't republish the content as your own.