Skip to main content

← Back to projects

Personal Portfolio Site

Live

The site you're on. Rebuilt as a server-rendered Next.js 15 + Tailwind v4 portfolio with proper SEO infrastructure, an MDX-driven blog, and a static export deployed to GitHub Pages.

Role
Solo developer & designer
Timeline
2025 – present
Stack
  • Next.js
  • React 19
  • Tailwind v4
  • Framer Motion
  • MDX

The problem

An earlier version was a quick-Saturday job: every page was a client component, there was no metadata, no sitemap, no structured data, and content was thin. Search engines couldn't see most of it.

The approach

I treated the rebuild as a chance to actually use modern Next.js features properly: a server-component layout, per-route metadata exports, JSON-LD for Person + WebSite + per-page types, generated sitemap/robots/manifest, and an MDX-flavoured blog backed by `gray-matter` and `marked`. Animation lives in small client islands so the bulk of the page is server-rendered.

Implementation highlights

  • Server-rendered metadata + structured data on every route.
  • Per-page Open Graph and canonical URLs driven by a single site-config module.
  • Static export — no server, no runtime cost, deploys straight to GitHub Pages.
  • Reduced-motion and full keyboard accessibility honored across components.

Outcome & lessons

Crawlers now see fully-formed HTML on the initial response, social shares preview correctly, and adding new content (a project, a blog post) is a one-file change. The repo is open-sourced as a reference for anyone building similar sites.


Want to chat about this work, collaborate, or just say hi? Reach out.