Loading...
2 min read

I migrated my portfolio from a manual, file-based system (markdown files in /public) to a headless architecture using Payload CMS. The result: A zero-friction writing experience with 100/100 Lighthouse scores and automated deployment.What did my old portfolio site look like? Initially, I managed my project case studies as raw .md files in my public folder. It was designed as a quick, small library for my hackathon projects, but I quickly outgrew it. After a few months, the friction of manual formatting, lack of image management, and "git-push-to-edit" workflow quickly became a headache. I needed a way to manage content that didn't need my GitHub account.

This is what my old portfolio looked like. projects.ts served the markdown project description files to the frontend in JSON format.
I needed a Headless CMS - an API-first backend that separates content from presentation. I chose Payload CMS because it bridges the gap between a database and a code-first dev experience (DX).

After signing in, this landing page showcases the collections that holds your data.
To handle the infrastructure, I chose Vercel for its deployment pipeline.
@vercel/analytics to track project engagement. This gives me production-grade metrics on which projects are catching the most eyes - all within the free tier.The transition transformed my portfolio from a "static site that’s hard to change" into a scalable, pro-tier blog platform.