A modern, interactive portfolio website built with Next.js featuring smooth animations, dynamic content, and real-time integrations. This project showcases web development expertise with a focus on performance, user experience, and modern web technologies.
- Smooth Animations: Page scroll and scroll-trigger animations for engaging user interactions
- Dynamic Page Transitions: Seamless transitions with Next.js prefetching capabilities
- Dynamic Content Management: Project data loaded from JSON for easy updates
- Real-time Chat Integration: Intelliticks chat widget for visitor engagement
- Spotify Now Playing: Display currently playing Spotify track in real-time
- Responsive Design: Mobile-first approach with Tailwind CSS
- Analytics: Built-in Vercel Analytics for performance monitoring
- SEO Optimized: Auto-generated sitemaps and metadata
| Category | Technology |
|---|---|
| Framework | Next.js 16 with React 19 |
| Styling | Tailwind CSS 4 |
| Animations | Framer Motion |
| Full-page Scroll | Fullpage.js |
| Progress Bar | NProgress |
| Icons | FontAwesome |
| Data Fetching | SWR |
| Image Optimization | Sharp |
| Package Manager | pnpm |
| Analytics | Vercel Analytics |
Before you begin, ensure you have the following installed:
- Node.js >= 18.0.0
- pnpm >= 8.0.0 (Install pnpm)
- Git
git clone https://github.com/supritR21/Suprit-Next-Portfolio.git
cd Suprit-Next-Portfoliopnpm installCreate a .env.local file in the root directory and add your configuration:
NEXT_PUBLIC_SPOTIFY_CLIENT_ID=your_spotify_client_id
NEXT_PUBLIC_SPOTIFY_CLIENT_SECRET=your_spotify_client_secret
NEXT_PUBLIC_SPOTIFY_REFRESH_TOKEN=your_spotify_refresh_tokenGetting Spotify Credentials:
- Visit Spotify Developer Dashboard
- Create an application to get Client ID and Secret
- Generate a refresh token using the Authorization Code flow
pnpm devVisit http://localhost:3000 in your browser.
# Development server with Turbopack
pnpm dev
# Build for production
pnpm build
# Start production server
pnpm start
# Run ESLint
pnpm lint
# Generate sitemaps
pnpm generate-sitemapβββ app/
β βββ (root)/ # Home page
β βββ about/ # About section with education, experience, skills
β βββ projects/ # Projects showcase with archive
β βββ api/ # API routes for ratings (CodeChef, LeetCode)
β βββ layout.jsx # Root layout
β βββ globals.css # Global styles
βββ components/ # Reusable React components
βββ json/
β βββ data.json # Project data configuration
βββ public/
β βββ robots.txt # SEO robots metadata
β βββ sitemap.xml # Auto-generated sitemap
β βββ docs/ # Documentation files
β βββ image/ # Images (placeholder, projects)
βββ next.config.js # Next.js configuration
βββ tailwind.config.js # Tailwind CSS configuration
βββ package.json # Project dependencies
βββ README.md # This file
Landing page introducing your portfolio with an overview of your web development skills and passion.
Comprehensive section featuring:
- Education: Academic background and qualifications
- Experience: Professional work history and roles
- Skills: Technical skills and expertise
- Quote: Inspirational or motivational quote
- Spotify Widget: Real-time now playing track
Showcase your work with:
- Project Cards: Featured projects with descriptions and technologies
- Project Details: Individual project pages via dynamic routes (
/projects/[slug]) - Project Archive: Historical or archived projects (
/projects/archive)
- Chat Widget: Intelliticks real-time chat for visitor engagement
- Ratings Integration: Display CodeChef and LeetCode ratings via API
Edit the chat widget in your components directory to integrate Intelliticks:
"use client"
import { useEffect } from "react";
// Component for Intelliticks chat widget
const Chat = () => {
useEffect(() => {
// Add your Intelliticks script here
const script = document.createElement("script");
script.src = "YOUR_INTELLITICKS_SCRIPT_URL";
document.body.appendChild(script);
}, []);
return null;
};
export default Chat;Edit json/data.json to add or modify your projects:
[
{
"id": 1,
"title": "Project Title",
"description": "Project description",
"technologies": ["Tech1", "Tech2"],
"link": "https://project-url.com",
"image": "/image/projects/web/project-name/"
}
]pnpm buildThe easiest way to deploy is using Vercel:
npm i -g vercel
vercel- Netlify: Connect your GitHub repository to Netlify dashboard
- Docker: Use the included
Dockerfilefor containerized deployment - Self-hosted: Deploy the built application to any Node.js hosting service
docker build -t suprit-portfolio .
docker run -p 3000:3000 suprit-portfolio- Automatic Sitemap Generation: Run
pnpm generate-sitemapto update sitemap - Image Optimization: Tailored image formats (WebP, AVIF) for different browsers
- Analytics: Vercel Analytics integrated for performance monitoring
- Bundle Analysis: Enable with
ANALYZE=true pnpm build
Contributions are welcome! Please feel free to submit pull requests or open issues for bugs and feature requests.
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.
Copyright Β© 2025 Suprit Raj
Suprit Raj
- Email: supritraj30@gmail.com
- GitHub: @supritR21
- Next.js - React framework
- Tailwind CSS - Utility-first CSS
- Framer Motion - Animation library
- Vercel - Hosting platform
- All open-source contributors and community
If you encounter any issues or have questions, feel free to:
- Open an issue on GitHub
- Contact me via email: supritraj30@gmail.com
- Check the Next.js documentation
Happy coding! π