Matthew Donnelly

859matthew.com — This Website

A personal indieweb-style site I designed and built from scratch — photography, writing, and projects, with a custom CMS behind it.

Built this site end-to-end as a personal showcase: a photo gallery, a "Thoughts" blog, this projects page, and an About/Contact section, all backed by a hand-built content management system rather than an off-the-shelf CMS.

Stack: Next.js 16 (App Router, Server Actions), React 19, TypeScript, Tailwind CSS v4, PostgreSQL via Prisma ORM, Vercel Blob for image storage, iron-session for admin authentication, Framer Motion for custom animation.

Highlights:

  • Custom admin panel with encrypted-session auth for writing posts, uploading photos in bulk, and managing projects — no third-party CMS
  • Direct-to-storage photo uploads to work around serverless upload size limits
  • Hand-built interactive animations, including an SVG-path-drawing hover effect
  • Fully responsive, dark-mode-first design system built from scratch
  • Working contact form wired to the Resend email API
  • Custom domain, DNS, and CI/CD deployment pipeline on Vercel, connected to GitHub

Also handled real production issues along the way — diagnosing a storage-quota outage back to its root cause in a cloud storage provider, and tracking down a cross-browser CSS rendering bug via an isolated minimal reproduction.