Back to All Projects
2023

My Portfolio

Portfolio project by Nanakumor Princewill

This site — portfolio, SEO blog CMS, project pages, and admin publishing on Next.js + MongoDB.

My Portfolio — project screenshot by Nanakumor Princewill

Built for

My public presence online: recruiters, clients, and crawlers that need fast, readable pages plus a private admin flow to publish.

Problem

A static brochure site can’t ship long-form posts or unique project URLs well. A CMS without SSR/SEO discipline is invisible. This app had to be both a marketing site and a maintainable publishing system.

Overview

The portfolio combines a public marketing surface, SSR blog articles, dedicated project pages, and a JWT-protected admin CMS. Posts use structured content blocks, Cloudinary media, and sitemap/JSON-LD so content stays crawlable while the admin experience stays practical for drafting and publishing.

Capabilities

  • Homepage sections for about, skills, projects, blog previews, and contact
  • SSR blog list + article pages with semantic HTML for SEO
  • Admin CMS: drafts, publish, content blocks, tags, categories
  • Cloudinary uploads for images and video embeds
  • Per-project detail routes with unique metadata
  • Contact form email delivery via Nodemailer
  • Theme/layout preferences for reading comfort

Architecture notes

  • Next.js App Router: server components for crawlable content, client islands for interactivity
  • MongoDB + Mongoose for posts; static TypeScript data for featured projects
  • JWT cookie auth + middleware for `/admin` subpaths
  • Dynamic sitemap/robots; Person / WebSite / BlogPosting JSON-LD
  • Vercel deployment with Speed Insights instrumentation

Outcomes

  • One codebase for portfolio, blog SEO, and CMS publishing
  • Project and article URLs that are shareable and indexable
  • Admin workflow that doesn’t require redeploying to ship a post

Tech stack

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • Framer Motion
  • MongoDB
  • Mongoose
  • Cloudinary
  • Vercel