A sleek, minimal, and fully responsive developer portfolio website built with Next.js 15 (App Router), Tailwind CSS, and TypeScript. Designed for developers who want a high-performance, open-source portfolio with dark mode, smooth scrolling, GitHub contributions grid, Medium RSS integration, and a contact form with Nodemailer.
- Next.js 15 App Router - Modern architecture with fast page loads & ISR optimization.
- Minimal & Modern UI - Clean typography, subtle grain background, pastel cards & smooth animations.
- Dark Mode Support - Automatic system dark mode detection with persistent toggle state.
- Fully Responsive - Optimized layout for desktop, tablet, and mobile devices.
- GitHub Contributions Grid - Dynamic contribution visualizer.
- Medium RSS Integration - Automatically fetches latest blog posts with fallback carousel cards.
- Working Contact Form - Built-in API route using Nodemailer for email delivery.
- SEO & OpenGraph Ready - Pre-configured metadata, dynamic sitemap, and robots.txt.
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Icons: Custom SVG & Emoji icons
- Form Mailer: Nodemailer
- RSS Parser: xml2js
- Deployment: Vercel (Recommended)
git clone https://github.com/your-username/portfolio.git
cd portfolio
npm installCreate a .env.local file in the root directory for contact form email notifications:
EMAIL_USER=your-email@gmail.com
EMAIL_PASS=your-app-password
EMAIL_TO=your-receiving-email@gmail.comnpm run devOpen http://localhost:3000 to view the app in your browser.
All personal details in the code are marked with clear comment tags like /* <your name> */ or <!-- <your domain> -->.
- Metadata & Title: Update title, description, and keywords in
src/app/layout.tsx. - Hero Section: Edit name, roles, CV download link, and social links in
src/components/Hero.tsx. - Navbar Brand: Change brand name in
src/components/Navbar.tsx. - About Me: Customize bio text and tech stack items in
src/components/About.tsx. - Footer: Update copyright name in
src/components/Footer.tsx.
- Replace
/public/images/demo-profile.jpgwith your profile picture. - Replace education logos in
/public/images/Edu_Logos/and campus photos in/public/images/Edu_img/. - Replace
/public/sample_cv.pdfwith your resume PDF.
- Edit the
educationarray insrc/components/Education.tsxwith your institutions, degrees, periods, and website links.
- Replace
'your-medium-username'with your Medium username in:src/lib/medium-rss.tssrc/components/Blog.tsx
npm run build
npm start- Push your repository to GitHub.
- Import your project into Vercel.
- Add Environment Variables (
EMAIL_USER,EMAIL_PASS,EMAIL_TO) in Vercel project settings. - Click Deploy.
Distributed under the MIT License. See LICENSE for more details.