Skip to content

Latest commit

Β 

History

History
135 lines (99 loc) Β· 3.84 KB

File metadata and controls

135 lines (99 loc) Β· 3.84 KB

Dan Letscher - Personal Portfolio

A modern, animated personal portfolio website built with Next.js 14, Tailwind CSS, and Framer Motion.

✨ Features

  • 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

πŸš€ Getting Started

Prerequisites

  • Node.js 18.17 or later
  • npm, yarn, or pnpm

Installation

  1. Install dependencies:

    npm install
  2. Start the development server:

    npm run dev
  3. Open http://localhost:3000 in your browser.

πŸ“¦ Building for Production

To create a static export for GitHub Pages:

npm run build

The static files will be generated in the out/ directory.

πŸš€ GitHub Pages Deployment

This site is configured for automatic deployment to GitHub Pages using GitHub Actions.

Automatic Deployment

  1. Push to main branch - The GitHub Actions workflow will automatically:

    • Install dependencies
    • Build the static site
    • Deploy to GitHub Pages
  2. Enable GitHub Pages (first-time setup):

    • Go to your repository Settings β†’ Pages
    • Under "Build and deployment", set Source to GitHub Actions
  3. View your site at https://<username>.github.io or your custom domain

Workflow Details

The deployment workflow (.github/workflows/deploy.yml) performs:

Checkout β†’ Setup Node.js 20 β†’ Install deps β†’ Build β†’ Deploy to Pages

Manual Deployment

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 provider

Custom Domain

To use a custom domain:

  1. Add your domain to the CNAME file in the repository root
  2. Configure DNS settings with your domain provider
  3. Enable HTTPS in GitHub Pages settings

🎨 Design Features

  • 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

πŸ› οΈ Tech Stack

  • Framework: Next.js 14 (App Router)
  • Language: TypeScript
  • Styling: Tailwind CSS
  • Animations: Framer Motion
  • Icons: Lucide React
  • Deployment: Static Export (GitHub Pages ready)

πŸ“ Project Structure

β”œβ”€β”€ 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