Single-page portfolio designed with an ink-on-paper sketchbook aesthetic and built for GitHub Pages.
- Astro (static output)
- Tailwind CSS
- TypeScript
- GitHub Actions for Pages deploy
src/pages/index.astro: Main single-page layout and sections.src/components/ProjectsSection.astro: Data-driven project cards + accessible modal dialogs.src/data/projects.ts: Single source of truth for all project content.src/styles/global.css: Global style tokens and sketchbook visual language.public/images/*: Texture and monochrome sketch illustrations..github/workflows/deploy.yml: Build and deploy to GitHub Pages on push tomain.
Update text directly in src/pages/index.astro.
Edit src/data/projects.ts:
- Add/remove project objects.
- Update
title,summary,details,stack,outcomes,links, andimage.
No template changes are needed when editing only project content.
- Install dependencies:
npm install
- Run dev server:
npm run dev
- Build locally:
npm run build
- Push to the
mainbranch. - In GitHub repo settings:
- Open Pages.
- Set Source to GitHub Actions.
- The workflow in
.github/workflows/deploy.ymlbuilds and deploys automatically.
- Sticky nav with anchor links.
- Smooth scroll with reduced-motion fallback.
- Project details use native
<dialog>for keyboard/ESC support. - Modal closes on backdrop click and explicit close button.
- Images use explicit dimensions + lazy loading where appropriate.