A modern, responsive portfolio website built with Next.js, TypeScript, and Tailwind CSS featuring a sleek design, dark/light mode toggle, and smooth animations.
- Modern Design: Clean, professional, and visually appealing interface
- Responsive Layout: Optimized for all device sizes
- Dark/Light Mode: Toggle between themes with smooth transitions
- Smooth Animations: Powered by Framer Motion for engaging user experience
- TypeScript: Full type safety and better development experience
- SEO Optimized: Meta tags and structured data for better search visibility
- Performance Optimized: Fast loading and optimized images
- Frontend: Next.js 14+, React 18, TypeScript
- Styling: Tailwind CSS
- Animations: Framer Motion
- Icons: Lucide React
- Theme: next-themes for dark/light mode
- Deployment: Vercel (recommended)
- Hero: Eye-catching introduction with social links
- About: Personal introduction and mission statement
- Experience: Professional journey with timeline
- Skills: Technical expertise with progress bars
- Projects: Featured and other projects showcase
- Contact: Contact form and information
- Node.js 18+
- npm or yarn package manager
-
Clone the repository
git clone https://github.com/swakhardey/portfolio.git cd portfolio -
Install dependencies
npm install # or yarn install -
Start the development server
npm run dev # or yarn dev -
Open your browser Navigate to http://localhost:3000 to view the website.
Update the following files with your information:
-
Contact Details: Update email, phone, and location in:
src/components/hero.tsxsrc/components/contact.tsxsrc/components/footer.tsx
-
Experience: Modify the
experiencesarray insrc/components/experience.tsx -
Skills: Update the
skillCategoriesarray insrc/components/skills.tsx -
Projects: Modify the
projectsarray insrc/components/projects.tsx -
About Section: Update the content in
src/components/about.tsx
- Colors: Modify the color scheme in
tailwind.config.js - Fonts: Change fonts in
src/app/layout.tsx - Layout: Adjust spacing and layout in component files
Replace the placeholder information with your actual:
- Work experience
- Education details
- Project descriptions
- Skills and technologies
- Contact information
portfolio/
├── src/
│ ├── app/
│ │ ├── globals.css
│ │ ├── layout.tsx
│ │ └── page.tsx
│ └── components/
│ ├── about.tsx
│ ├── contact.tsx
│ ├── experience.tsx
│ ├── footer.tsx
│ ├── hero.tsx
│ ├── navbar.tsx
│ ├── projects.tsx
│ ├── skills.tsx
│ └── theme-provider.tsx
├── public/
├── .github/
├── package.json
├── tailwind.config.js
├── next.config.js
└── tsconfig.json
- Push your code to GitHub
- Connect your repository to Vercel
- Deploy with one click
- Netlify: Build command:
npm run build, Publish directory:out - GitHub Pages: Use
next exportfor static deployment - Traditional Hosting: Build with
npm run buildand serve the.nextfolder
The contact form currently shows an alert on submission. To make it functional:
- Add a backend service (Netlify Forms, Formspree, etc.)
- Integrate with an API (your own backend)
- Use serverless functions (Vercel, Netlify)
Example integration with Formspree:
<form action="https://formspree.io/f/YOUR_FORM_ID" method="POST">npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLint
- ESLint configuration for code quality
- TypeScript for type safety
- Prettier for code formatting (recommended)
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
- Fork the repository
- Create a feature branch:
git checkout -b feature/new-feature - Commit your changes:
git commit -am 'Add new feature' - Push to the branch:
git push origin feature/new-feature - Submit a pull request
- Next.js team for the amazing framework
- Tailwind CSS for the utility-first CSS framework
- Framer Motion for smooth animations
- Lucide React for beautiful icons
If you have any questions or need help with customization, feel free to reach out:
- Email: swakhar.me@gmail.com
- LinkedIn: linkedin.com/in/swakhar-dey
- GitHub: github.com/Swakhar
Happy coding! 🚀