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.