Portfolio v3

The site you're on right now: a portfolio that is edited from its own private dashboard.

Earlier versions of my portfolio were hardcoded, so every new project meant a code change and a redeploy. For v3 I built the CMS first and the site second.

Each case study is assembled from ordered sections (hero, intro, galleries, features, tools, results and free text) that I can add, reorder and preview live before publishing. Services, journal posts, testimonials, the experience timeline and recognitions all come from the same database, and messages from the contact form land in an inbox inside the dashboard.

Results

98

Lighthouse performance score

< 5 min

To publish a new case study

0

Redeploys needed to update content

Under  the  hood

Section-based case studies

Projects store an ordered list of typed sections, validated with Zod, so every page can have its own shape.

An inbox for inquiries

Contact submissions are saved with read/unread state and send an email notification through Nodemailer.

Images handled in-house

Uploads are optimised server-side with Sharp and served by the app itself.

Stack

  • Next.js 16
  • React 19
  • Prisma
  • PostgreSQL
  • Clerk
  • Tailwind CSS v4
  • Motion
  • Sharp
  • Nodemailer

Related  Work