This site is a work in progress
← Back to projects

Personal Website

GitHub Live Demo

My personal portfolio and resume website. Converts a YAML resume (JSON Resume schema) into an HTML page and automatically generates a PDF using Playwright. Projects and blog posts are markdown content collections with tag filtering.

Highlights

  • Two-layout system: Tailwind CSS for portfolio pages, custom CSS for pixel-perfect resume PDF output
  • Automated PDF generation via Playwright Chromium at build time
  • Self-hosted fonts for reliable PDF rendering
  • Dark mode with localStorage persistence
  • Accessibility testing with axe-core
  • Pre-commit hooks for formatting, type checking, and resume schema validation
  • CI/CD via GitHub Actions deploying to a DigitalOcean VPS with Caddy

Tech Stack

Astro, TypeScript, Tailwind CSS v4, Svelte (theme toggle), Playwright, Zod, js-yaml.

View source on GitHub