Skip to content

rishabhrathod01/rishabhrathod01.github.io

Repository files navigation

Rishabh Rathod - Personal Portfolio Website

A modern, SEO-optimized portfolio website built with Next.js 15, TypeScript, TailwindCSS, and MDX. Features a clean design, dark mode support, smooth animations, and a blog/travel stories section.

Portfolio Preview

✨ Features

  • Modern Stack: Next.js 15 App Router, TypeScript, TailwindCSS
  • Blog System: MDX-powered blog with syntax highlighting
  • Travel Stories: Dedicated section for travel experiences
  • SEO Optimized: Meta tags, OpenGraph, and semantic HTML
  • Dark Mode: Beautiful dark theme with smooth transitions
  • Animations: Framer Motion for smooth, professional animations
  • Responsive: Mobile-first design that works on all devices
  • Performance: Optimized images, code splitting, and lazy loading
  • Type Safe: Full TypeScript coverage
  • Design System: Reusable UI components with shadcn/ui

πŸš€ Quick Start

Prerequisites

  • Node.js 18+ and npm/yarn/pnpm
  • Git

Installation

  1. Clone the repository (if not already done)
git clone <your-repo-url>
cd portfolio
  1. Install dependencies
npm install
# or
yarn install
# or
pnpm install
  1. Run the development server
npm run dev
# or
yarn dev
# or
pnpm dev
  1. Open your browser

Navigate to http://localhost:3000

πŸ“ Project Structure

portfolio/
β”œβ”€β”€ app/                          # Next.js app directory
β”‚   β”œβ”€β”€ layout.tsx               # Root layout with header/footer
β”‚   β”œβ”€β”€ page.tsx                 # Home page
β”‚   β”œβ”€β”€ globals.css              # Global styles
β”‚   β”œβ”€β”€ about/                   # About page
β”‚   β”œβ”€β”€ projects/                # Projects page
β”‚   β”œβ”€β”€ blog/                    # Blog listing and posts
β”‚   β”‚   └── [slug]/             # Dynamic blog post pages
β”‚   └── travel/                  # Travel stories listing and posts
β”‚       └── [slug]/             # Dynamic travel story pages
β”œβ”€β”€ components/                   # React components
β”‚   β”œβ”€β”€ ui/                      # shadcn UI components
β”‚   β”‚   β”œβ”€β”€ button.tsx
β”‚   β”‚   └── card.tsx
β”‚   β”œβ”€β”€ Header.tsx               # Navigation header
β”‚   β”œβ”€β”€ Footer.tsx               # Site footer
β”‚   β”œβ”€β”€ ProjectCard.tsx          # Project display card
β”‚   β”œβ”€β”€ BlogCard.tsx             # Blog post card
β”‚   β”œβ”€β”€ TravelCard.tsx           # Travel story card
β”‚   └── MDXContent.tsx           # MDX content renderer
β”œβ”€β”€ content/                      # MDX content
β”‚   β”œβ”€β”€ blog/                    # Blog posts
β”‚   β”‚   β”œβ”€β”€ getting-started-with-nextjs.mdx
β”‚   β”‚   β”œβ”€β”€ mastering-typescript.mdx
β”‚   β”‚   └── react-performance-optimization.mdx
β”‚   └── travel/                  # Travel stories
β”‚       β”œβ”€β”€ tokyo-adventures.mdx
β”‚       β”œβ”€β”€ iceland-road-trip.mdx
β”‚       └── bali-serenity.mdx
β”œβ”€β”€ lib/                         # Utility functions
β”‚   β”œβ”€β”€ utils.ts                # Utility helpers
β”‚   β”œβ”€β”€ mdx.ts                  # MDX processing
β”‚   └── data.ts                 # Site data (projects, experience, etc.)
β”œβ”€β”€ public/                      # Static assets
β”œβ”€β”€ package.json                # Dependencies
β”œβ”€β”€ tsconfig.json               # TypeScript config
β”œβ”€β”€ tailwind.config.ts          # Tailwind CSS config
└── next.config.js              # Next.js config

🎨 Customization

Personal Information

Edit lib/data.ts to update your personal information:

export const personalInfo = {
  name: "Your Name",
  role: "Your Role",
  tagline: "Your tagline",
  email: "your@email.com",
  // ... more fields
}

Projects

Add or modify projects in lib/data.ts:

export const projects = [
  {
    title: "Project Name",
    description: "Project description",
    image: "image-url",
    tags: ["React", "Next.js"],
    liveUrl: "https://...",
    githubUrl: "https://...",
    featured: true,
  },
  // ... more projects
]

Blog Posts

Create new blog posts in content/blog/:

---
title: "Your Blog Post Title"
date: "2024-11-26"
description: "Brief description"
tags: ["JavaScript", "React"]
---

# Your Blog Post Title

Your content here...

Travel Stories

Create new travel stories in content/travel/:

---
title: "Your Travel Story"
date: "2024-11-26"
location: "City"
country: "Country"
description: "Brief description"
coverImage: "image-url"
---

# Your Travel Story

Your story here...

Colors and Theming

Modify colors in tailwind.config.ts and app/globals.css:

:root {
  --primary: 222.2 47.4% 11.2%;
  --secondary: 210 40% 96.1%;
  /* ... more colors */
}

Components

All UI components are in the components/ directory. They use shadcn/ui patterns and can be easily customized.

πŸ“ Content Management

Adding Blog Posts

  1. Create a new .mdx file in content/blog/
  2. Add frontmatter with required fields
  3. Write your content using Markdown/MDX
  4. The blog will automatically include it

Adding Travel Stories

  1. Create a new .mdx file in content/travel/
  2. Add frontmatter with required fields (including coverImage)
  3. Write your story using Markdown/MDX
  4. The travel page will automatically include it

MDX Features

  • Syntax Highlighting: Code blocks are automatically highlighted
  • GitHub Flavored Markdown: Tables, task lists, strikethrough
  • Custom Components: Use React components in your MDX
  • Auto-linking Headings: Headings get automatic anchor links

🎯 SEO Optimization

The site includes:

  • Dynamic meta tags for each page
  • OpenGraph tags for social sharing
  • Twitter Card support
  • Semantic HTML structure
  • Automatic sitemap generation
  • Reading time calculation
  • Structured data (can be extended)

πŸš€ Deployment

Vercel (Recommended)

  1. Push your code to GitHub
  2. Import project in Vercel
  3. Deploy with one click
  4. Connect custom domain (optional)

Netlify

  1. Push your code to GitHub
  2. Import project in Netlify
  3. Build command: npm run build
  4. Publish directory: .next
  5. Deploy

Other Platforms

Build the production version:

npm run build
npm run start

The site will be available on http://localhost:3000

πŸ› οΈ Scripts

npm run dev      # Start development server
npm run build    # Build for production
npm run start    # Start production server
npm run lint     # Run ESLint

🧰 Tech Stack

πŸ“¦ Key Dependencies

{
  "next": "^15.0.0",
  "react": "^18.3.1",
  "typescript": "^5",
  "tailwindcss": "^3.4.1",
  "framer-motion": "^11.0.0",
  "next-mdx-remote": "^4.4.1",
  "gray-matter": "^4.0.3",
  "rehype-highlight": "^7.0.0"
}

🎨 Design Philosophy

The design follows these principles:

  • Clean & Minimal: Focus on content, not clutter
  • Professional: Suitable for showcasing work
  • Modern: Contemporary design patterns
  • Accessible: WCAG compliant, keyboard navigable
  • Performant: Fast loading, optimized assets
  • Responsive: Mobile-first approach

πŸ“± Browser Support

  • Chrome (latest)
  • Firefox (latest)
  • Safari (latest)
  • Edge (latest)
  • Mobile browsers (iOS Safari, Chrome)

🀝 Contributing

This is a personal portfolio template. Feel free to:

  • Fork and customize for your own use
  • Report bugs or issues
  • Suggest improvements
  • Share your customized version

πŸ“„ License

This project is open source and available under the MIT License.

πŸ’‘ Tips

  1. Images: Use optimized images (WebP format recommended)
  2. Content: Keep blog posts under 2000 words for better engagement
  3. SEO: Use descriptive titles and meta descriptions
  4. Performance: Test with Lighthouse regularly
  5. Accessibility: Always include alt text for images
  6. Git: Commit regularly with descriptive messages

πŸ› Troubleshooting

Build Errors

  • Clear .next folder: rm -rf .next
  • Delete node_modules and reinstall: rm -rf node_modules && npm install
  • Check TypeScript errors: npm run build

MDX Not Rendering

  • Check frontmatter format (must be valid YAML)
  • Ensure file extension is .mdx
  • Verify file is in correct directory (content/blog or content/travel)

Styling Issues

  • Clear Tailwind cache: rm -rf .next
  • Check class names for typos
  • Verify Tailwind config is correct

πŸ“ž Support

For issues or questions:

  1. Check this README
  2. Review the code comments
  3. Check Next.js documentation
  4. Open an issue on GitHub

πŸŽ‰ Acknowledgments

  • Design inspiration from various modern portfolio websites
  • Built with amazing open-source tools
  • Icons from Lucide
  • Images from Unsplash

Built with ❀️ using Next.js and TypeScript

Happy coding! πŸš€

About

Portfolio website

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published