CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Project Overview

This is a Jekyll-based developer portfolio website for Prateek Rajput, featuring a modern futuristic design with advanced CSS animations, particle effects, and glassmorphism. The site is configured for deployment on GitHub Pages with custom domain support (prateek-rajput.com).

Development Server Management

Use the custom dev-server.sh script for all server operations:

./dev-server.sh start     # Start Jekyll development server
./dev-server.sh restart   # Full restart with cache cleanup
./dev-server.sh stop      # Stop the server
./dev-server.sh clean     # Clean Jekyll cache and build files
./dev-server.sh status    # Check server status
./dev-server.sh logs      # View live server logs

Important: The script prevents infinite reload loops by excluding log files from Jekyll’s watch system and using temporary log files in /tmp/.

Jekyll Configuration

Key Plugins

Excluded Files

The _config.yml excludes development files from Jekyll processing:

Architecture & Design System

Theme Architecture

The site implements a dark futuristic theme with:

Layout Structure

JavaScript Architecture

The assets/js/main.js uses ES6 classes for modular functionality:

CSS Organization

The assets/css/main.css is structured as:

  1. CSS Custom Properties - Design tokens and variables
  2. Reset & Base Styles - Normalize and typography
  3. Animated Background - Dual-layer gradient system with keyframes
  4. Component Styles - Navigation, cards, buttons, footer
  5. Interactive Effects - Hover states, transforms, shadows
  6. Responsive Design - Mobile-first breakpoints
  7. Utility Classes - Reusable styling patterns

Content Structure

Page Types

Blog Posts

Located in _posts/ with Jekyll naming convention: YYYY-MM-DD-title.md

Styling Guidelines

Color System

Animation Patterns

Interactive Elements

Common Development Tasks

Adding New Pages

  1. Create .md file in root with Jekyll front matter
  2. Use layout: default to inherit the main layout
  3. Add navigation link in _layouts/default.html if needed

Modifying Animations

Updating Colors/Theming

Build & Deployment

Local Development

bundle install          # Install Ruby dependencies
./dev-server.sh start   # Start development server

GitHub Pages Deployment

The site auto-deploys via GitHub Pages when pushed to the main branch:

Performance Considerations

Troubleshooting

Infinite Reload Issues

If pages continuously reload:

  1. Check Jekyll logs with ./dev-server.sh logs
  2. Ensure log files are excluded in _config.yml
  3. Restart with ./dev-server.sh restart to clean cache

Layout/Styling Issues

Build Failures