Skip to content
Sufyan Ul Haq

Portfolio Website

Live and deployed

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

Screenshot of Portfolio 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 maintain, and the Next.js App Router patterns for combining static generation with CMS-driven content.