st—pardon

3 July 2026 · architecture, nestjs, portfolio

Why your portfolio should be a headless CMS

Every developer portfolio starts the same way: a beautiful static site, projects hard-coded into the markup. Six months later it is a graveyard — not because you stopped building, but because updating it means opening the repo, editing JSX, and redeploying.

Separate the content from the site

Folium is the API powering this site. My projects, experience and posts live in MongoDB behind a NestJS API. The frontend fetches them with a read-only API key. When I ship something new, I add it from a dashboard — the site updates itself.

What it took

  • Ownership scoping — every document belongs to a user, enforced in the query layer
  • API keys — SHA-256-hashed, shown once, revocable
  • Draft/publish — posts like this one live as drafts until ready

The code is open — fork it, run it, point your own frontend at it.

← all writing

st—pardon/blog/why-your-portfolio-should-be-a-headless-cms--:--
Why your portfolio should be a headless CMS — Onyedikachi Onu