Projects
Last Updated: 12/27/2025

nathandoherty.dev

Astro
Personal Website
GitHub Pages
Aspire

Project for hosting this site which is hosted on github pages

Overview

A blog and portfolio web application built with Astro, focused on delivering a fast, reliable, and accessible user experience. The application serves as a central platform to present my personal projects, technical writing, and professional background in a clean and structured format.

Leveraging Astro’s static-first architecture, the site achieves excellent performance, strong SEO, and minimal client-side JavaScript. Reusable components and a scalable content structure ensure the project remains easy to maintain and extend as content grows. Interactive features are thoughtfully integrated only where necessary to preserve speed and simplicity.

Currently leveraging the Out Of The Box stylings provided by the portfolio template.

Tech Stack

Framework: Astro

Astro Template: Portfolio

npm create astro@latest -- --template portfolio

Content Management: Markdown / MDX

Deployment: Static hosting on GitHub Pages.

Deployment

CI / CD: GitHub Actions

Github Action’s will trigger the deploy when there is a push to the branch nathandoherty.dev, which correlates with the DNS that the site will be hosted on.

Deployment Workflow:

name: Deploy to GitHub Pages

on:
  workflow_dispatch:
  push:
    branches: [ '<branchName>' ]

# Allow this job to clone the repo and create a page deployment
permissions:
  contents: read
  pages: write
  id-token: write

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout your repository using git
        uses: actions/checkout@v5
      - name: Install, build, and upload your site
        uses: withastro/action@v5
        with:
          path: ./frontend
          node-version: 24
  deploy:
    needs: build
    runs-on: ubuntu-latest
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v4