CLAUDE.md - Personal Website

Context

Personal website for Joshua Michael Hall at https://joshuamichaelhall.com. Built with Jekyll and hosted on GitHub Pages. Serves as professional portfolio showcasing cloud security expertise for federal defense contractor positions.

Live Site

  • URL: https://joshuamichaelhall.com
  • Hosting: GitHub Pages
  • Framework: Jekyll with Minima theme

Repository Structure

joshuamichaelhall.github.io/
├── _config.yml        # Site configuration
├── _data/             # Structured data (skills.yml, projects.yml)
├── _includes/         # Reusable components
├── _layouts/          # Page templates
├── _posts/            # Blog posts (YYYY-MM-DD-title.md)
├── pages/             # Main site pages (portfolio, blog, about, contact)
├── assets/            # CSS, JavaScript, images
├── resources/         # Downloadable resources
└── .github/           # GitHub Actions workflows

Local Development

Prerequisites

  • Ruby 2.7.0+
  • Bundler gem

Commands

# Install dependencies
bundle install

# Run development server
bundle exec jekyll serve

# View at http://localhost:4000

Content Management

Adding Blog Posts

  1. Create file in _posts/ with format: YYYY-MM-DD-title.md
  2. Include front matter:
    ---
    layout: post
    title: "Post Title"
    date: YYYY-MM-DD
    categories: [category]
    ---
    

Updating Portfolio

  • Edit _data/projects.yml for project listings
  • Edit _data/skills.yml for skill categories

Updating Pages

  • Main pages are in pages/ directory
  • About page: about.markdown
  • Home page: index.html

Configuration

Key settings in _config.yml:

  • title, description - Site metadata
  • header_pages - Navigation menu items
  • google_analytics - Tracking ID

GitHub Actions

  • devto-publish.yml - Auto-publishes posts to Dev.to
  • Automatic deployment on push to main branch

Theme Customization

  • Base theme: Minima
  • Custom styles in assets/css/
  • Custom layouts in _layouts/

Do Not Edit Directly

  • Gemfile.lock - Generated by bundler
  • .jekyll-cache/ - Build cache
  • _site/ - Generated output (if present locally)