This Portfolio Site

This Portfolio Site

Design + build + copy •2025 •Live
  • Astro
  • Tailwind CSS
  • TypeScript
  • MDX
  • GSAP
  • Vercel

My personal portfolio, designed, written, and built from scratch in Astro. A fast, accessible, SEO-focused site with an interactive experience timeline and type-safe content collections.

This portfolio is a site I designed, wrote, and built from the ground up in Astro. I wanted full control over the design instead of working around a rigid portfolio platform, and I wanted the copy, the layout, and the code to all be my own. The source is public on GitHub.

Goals

  • Own the full design rather than fitting my work into a template
  • Keep it fast and accessible without shipping unnecessary JavaScript
  • Build SEO in from the start, the way I would for a client

Stack

The site is static, built with Astro, styled with Tailwind CSS v4, and written in TypeScript. Content lives in MDX collections validated with Zod, so a missing field fails the build instead of shipping a broken page. Animations run on GSAP with Lenis for smooth scrolling, and it deploys on Vercel. Almost nothing ships JavaScript by default; the interactive pieces load only when they’re needed and motion is allowed.

Highlights

An experience timeline that behaves like a deck of cards. Swipe it on a phone, click through it, or arrow-key it on desktop. It’s a custom card-stack component with depth and physics, and it doesn’t hijack the page scroll the way most carousels do.

SEO wired the way I’d wire a client’s. JSON-LD structured data (Person, Article, BlogPosting), a generated sitemap, canonical tags, and proper Open Graph and Twitter cards.

Accessible and fast. Semantic HTML, ARIA where it counts, full keyboard navigation, and reduced-motion support. Images are WebP, the hero is preloaded, and the theme switches without flashing the wrong colors.

I keep refining it over time. If you want the longer story, I wrote up why I built it with Astro.