A modern, animated personal portfolio website built with Next.js 14, Tailwind CSS, and Framer Motion.
- Modern Stack: Built with Next.js 14, TypeScript, and Tailwind CSS
- Smooth Animations: Powered by Framer Motion for buttery-smooth transitions
- Responsive Design: Looks great on all devices
- Scrollspy Navigation: Active section highlighting as you scroll
- Dark Theme: Sleek dark mode with bold accent colors
- Performance Optimized: Static export for lightning-fast loading
- SEO Ready: Full meta tags, Open Graph, and structured data
- Node.js 18.17 or later
- npm, yarn, or pnpm
-
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open http://localhost:3000 in your browser.
To create a static export for GitHub Pages:
npm run buildThe static files will be generated in the out/ directory.
This site is configured for automatic deployment to GitHub Pages using GitHub Actions.
-
Push to
mainbranch - The GitHub Actions workflow will automatically:- Install dependencies
- Build the static site
- Deploy to GitHub Pages
-
Enable GitHub Pages (first-time setup):
- Go to your repository Settings → Pages
- Under "Build and deployment", set Source to GitHub Actions
-
View your site at
https://<username>.github.ioor your custom domain
The deployment workflow (.github/workflows/deploy.yml) performs:
Checkout → Setup Node.js 20 → Install deps → Build → Deploy to Pages
If you prefer manual deployment:
# Build the static site
npm run build
# The `out/` directory contains the static files
# Upload these to any static hosting providerTo use a custom domain:
- Add your domain to the
CNAMEfile in the repository root - Configure DNS settings with your domain provider
- Enable HTTPS in GitHub Pages settings
- Gradient Text Effects: Beautiful animated gradients on headings
- Glass Morphism: Frosted glass effects on cards and navigation
- Glow Effects: Subtle glow animations on interactive elements
- Timeline Layout: Alternating timeline for work experience
- Floating Elements: Animated background orbs and decorations
- Scroll Progress: Visual scroll progress indicator at the top
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Animations: Framer Motion
- Icons: Lucide React
- Deployment: Static Export (GitHub Pages ready)
├── src/
│ ├── app/
│ │ ├── globals.css # Global styles and Tailwind
│ │ ├── layout.tsx # Root layout with metadata
│ │ └── page.tsx # Main page component
│ └── components/
│ ├── AnimatedSection.tsx
│ ├── EducationSection.tsx
│ ├── ExperienceSection.tsx
│ ├── Footer.tsx
│ ├── HeroSection.tsx
│ ├── Navigation.tsx
│ ├── ScrollProgress.tsx
│ ├── Timeline.tsx
│ └── index.ts
├── public/ # Static assets
├── .github/
│ └── workflows/
│ └── deploy.yml # GitHub Pages deployment workflow
├── next.config.js # Next.js configuration
├── tailwind.config.ts # Tailwind configuration
├── package.json # Dependencies and scripts
└── tsconfig.json # TypeScript configuration