Skip to content
View bumpas's full-sized avatar

Block or report bumpas

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
bumpas/README.md

Bumpas — Portfolio & Blog

Personal site of Andrew Bumpas. Built with Astro, tailored for portfolio case studies, photography, and writing.

Astro v5.14 MIT License


Overview

This repo powers andrewbumpas.com, a static site built with Astro for:

  • Portfolio posts (case studies like Okra Design System)
  • Blog articles
  • Photography gallery
  • Contact and About pages

The site uses Astro 5, Tailwind CSS (v4), MDX, auto-imported shortcodes, and image optimization via astro:assets.

Quick start

Prereqs:

  • Node.js (LTS recommended)
  • npm

Install and run:

npm install
npm run dev

Build and preview:

npm run build
npm run preview

Content model

Content collections are defined in src/content.config.ts:

  • homepagesrc/content/homepage/-index.md
  • aboutsrc/content/about/-index.md
  • postssrc/content/posts/** (supports nested folders)
  • pagessrc/content/pages/**
  • authorssrc/content/authors/**
  • contactsrc/content/contact/**
  • photographysrc/content/photography/-index.md

Posts

Frontmatter fields for posts:

  • title (string)
  • meta_title (optional)
  • description (optional)
  • date (Date)
  • image (optional, path under public/images/...)
  • authors (string[]; default admin) — preferred over single author
  • categories (string[]; default others) — use Portfolio for case studies
  • tags (string[]; default others)
  • draft (optional boolean)

Slugs/paths are derived from file location. Nested paths are supported, e.g. src/content/posts/okra-design-system/okra.mdx/posts/okra-design-system/okra.

Photography

Photos are managed in the photography collection and displayed via a responsive grid. Images live under public/images/photography.

Homepage highlights

  • Banner content from homepage/-index.md.
  • Portfolio section renders up to the latest 3 posts in the Portfolio category in a grid (PortfolioGrid).

Shortcodes (MDX)

Auto-imported components for MD/MDX:

  • Button, Accordion, Notice, Video, Youtube

Use them directly in MDX without import statements.

Styling

  • Tailwind CSS v4 via Vite plugin
  • Custom theme utilities in tailwind-plugin/
  • Global styles under src/styles/

Images

  • Put assets under public/images/...
  • Use astro:assets Image for optimized output (webp/avif), as done in layouts/partials and components.

Resume (ATS) PDF generation

This repo includes an ATS-friendly resume generator (plain text + light layout).

Output location: Andrew-Bumpas-Resume-ATS.pdf

Generate the PDF:

python3 scripts/generate_resume_pdf.py

Or via npm:

npm run resume

Optional (first time): install ReportLab if needed:

python3 -m pip install --user reportlab

CLI & env controls:

# CLI flags
python3 scripts/generate_resume_pdf.py \
  --source /absolute/path/to/-index.md \
  --start-line 14 \
  --header "ANDREW BUMPAS"

# Or environment variables
ATS_SOURCE_MD=/absolute/path/to/-index.md ATS_START_LINE=14 ATS_HEADER="ANDREW BUMPAS" \
  python3 scripts/generate_resume_pdf.py

By default, the generator reads from src/content/about/-index.md starting at line 14.

Deployment

This site builds to static HTML in dist/.

Typical options:

Site metadata (title, base URL, meta image) lives in src/config/config.json. A sitemap is generated via @astrojs/sitemap.

License

MIT

Pinned Loading

  1. ob_pattern_library ob_pattern_library Public

    JavaScript

  2. lp_pattern_library lp_pattern_library Public

    HTML

  3. bumpas-design-code bumpas-design-code Public

    PHP