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