Skip to content

Set up Astro with GitHub Pages and migrate homepage from new-homepage branch #1965

@pmcelhaney

Description

@pmcelhaney

Description

We want to move this site to Astro and deploy it via GitHub Pages, using the existing index.html from the new-homepage branch as the foundation.

This should be done in a way that preserves the current homepage content while setting us up for future expansion (docs, additional pages, etc.).

Goals

  • Set up an Astro project in this repo
  • Configure deployment to GitHub Pages via GitHub Actions
  • Convert the existing index.html (from new-homepage) into an Astro layout/template
  • Use the existing homepage content as the site’s root (/)

Requirements

1. Astro setup

  • Initialize Astro in the repo
  • Use minimal setup (no unnecessary integrations)
  • Ensure the project builds to static output

2. GitHub Pages deployment

  • Add a GitHub Actions workflow to:
    • Install dependencies
    • Build the Astro site
    • Deploy to GitHub Pages
  • Use the official GitHub Pages action (no custom hacks)
  • Ensure this works for the default branch

3. Homepage migration

  • Pull index.html from the new-homepage branch
  • Convert it into an Astro layout (e.g., src/layouts/MainLayout.astro)
  • Preserve:
    • Structure
    • Styles
    • Scripts (only if necessary; prefer removing anything non-essential)

4. Home page

  • Create src/pages/index.astro
  • Use the layout created above
  • Move the content from index.html into this page
  • The rendered output should closely match the current homepage visually

5. Asset handling

  • Ensure any referenced assets (CSS, JS, images, fonts) are:
    • Moved into appropriate directories (public/ or src/)
    • Properly referenced in Astro

Constraints

  • Do not introduce a heavy framework (no React/Vue unless required)
  • Keep things simple and easy to understand
  • Prefer static-first approach (minimal client-side JS)

Acceptance Criteria

  • Running npm run build produces a static site
  • GitHub Actions successfully deploys to GitHub Pages
  • Visiting the site shows the same homepage content as new-homepage/index.html
  • Code is clean and easy to extend for additional pages

Manual Acceptance Tests

  • Clone repo, run npm install and npm run dev, verify homepage renders correctly
  • Run npm run build and preview output, verify no broken assets
  • Confirm GitHub Pages deployment succeeds via Actions
  • Visit deployed site and confirm visual parity with original index.html

If anything is ambiguous, prioritize simplicity and preserving the current homepage experience.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions