Skip to content
Sufyan Ul Haq

This Website

This site itself: a production personal website built with Next.js, TypeScript, and an embedded headless CMS.

Screenshot of This Website

Architecture

Browser
Next.js (App Router, static generation)
Sanity CMS
Hosting

Problem

A portfolio needs to be easy to keep up to date — adding a project or updating skills shouldn't mean editing React components.

Solution

Built with Next.js (App Router) and TypeScript, with content managed through an embedded Sanity Studio so every section — projects, skills, experience, writing — can be updated without touching code.

Technology

Next.jsTypeScriptTailwind CSSSanity

Key Features

  • Content fully separated from code via an embedded CMS
  • SEO foundation: sitemap, structured data, per-page metadata
  • Statically generated for performance
  • Accessible, responsive layout

What I Learned

Designing a content model that's simple enough to actually maintain, and the Next.js App Router patterns for combining static generation with CMS-driven content.