Important
This project has moved. The actively maintained fork is now at EliteSalman/Astro-Portfolio-Salman-Shafi. Please open issues, pull requests, and discussions there.
A premium, fully responsive portfolio website built with Next.js 15, featuring a working contact form, SEO optimisation, and modern design principles.
- Premium Glass Morphism: Modern glass effects and gradients
- Fully Responsive: Mobile-first design with perfect mobile optimisation
- Smooth Animations: Framer Motion animations and transitions
- Premium Typography: Geist font with optimised readability
- Modern Card Layouts: Interactive hover effects and shadows
- Working Contact Form: Fully functional with validation
- Email Integration: AWS SES SMTP configuration
- Premium Email Templates: Beautiful HTML email styling
- Loading States: Smooth form submission experience
- Error Handling: Comprehensive error management
- Complete Meta Tags: OpenGraph, Twitter Cards, and more
- Structured Data: JSON-LD schema for rich snippets
- Dynamic Sitemap: Auto-generated XML sitemap
- Robots.txt: Proper crawling instructions
- Performance Optimised: 99.7kB first load with optimal loading
- Security Headers: XSS protection, frame options, CSP
- Image Optimisation: WebP/AVIF formats with Next.js Image
- Code Splitting: Automatic chunking for faster loads
- Production Ready: Console removal, minification, compression
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Animations: Framer Motion
- Icons: Lucide React
- Email: Nodemailer + AWS SES
- Deployment: Vercel
-
Clone the repository
git clone https://github.com/asma019/Next.js-Portfolio-for-System-Admins.git cd Next.js-Portfolio-for-System-Admins -
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env.local
Edit
.env.localwith your actual values:# SMTP Configuration for AWS SES SMTP_HOST=email-smtp.ap-southeast-1.amazonaws.com SMTP_USERNAME=your-aws-ses-username SMTP_PASSWORD=your-aws-ses-password SMTP_PORT=587 SMTP_SECURE=false # Email Configuration FROM_EMAIL_NAME=Your Name Contact FROM_EMAIL=no-reply@yourdomain.com TO_EMAIL=your-email@gmail.com # Application Configuration NEXT_PUBLIC_SITE_URL=https://yourdomain.com
-
Run development server
npm run dev
-
Open in browser
http://localhost:3000
Update the following files with your information:
src/app/page.tsxβ Hero section, about, experience, skillssrc/components/Header.tsxβ Navigation and brandingsrc/components/Footer.tsxβ Footer links and contact infosrc/app/layout.tsxβ SEO meta tags and site information
Replace these images in the public/ folder:
photo.webpβ Your profile photoshare.webpβ Social media preview image (1200Γ630px)
- Name: Salman Shafi
- Email: hello@salmanshafi.net
- Repository: EliteSalman/NextJS-Portfolio-Salman-Shafi
- Name: Mehedi Hasan
- Email: hello@mehedims.com
- GitHub: asma019
MIT Licence
Made with β€οΈ using Next.js
