← Back to projects

Portfolio case study

Portfolio CMS Admin Dashboard

A full-stack portfolio CMS built with Next.js, MongoDB, Docker, AWS, GitHub Actions, S3, CloudFront, and an admin dashboard for managing projects, media, videos, and contact messages.

AWSLinuxCI/CDIAMNext.jsPrisma
Portfolio CMS Admin Dashboard

Engineering story

How this project came together

This project is my custom portfolio CMS built to manage my personal portfolio website from an admin dashboard instead of editing code manually. The application includes public pages for projects, blog posts, contact, and portfolio content, plus a protected admin area where I can create projects, upload media, attach YouTube videos, manage contact messages, and publish content. I built the project as a real production learning project. The frontend is powered by Next.js, while the backend uses API routes, Prisma, and MongoDB Atlas. Media files are uploaded to Amazon S3 and delivered through CloudFront. The app is containerized with Docker and deployed automatically using GitHub Actions, Amazon ECR, and an EC2 server. One of the biggest parts of this project was learning how all production pieces connect together: environment variables, authentication, database access, file uploads, CI/CD, Docker images, ECR, EC2, and deployment troubleshooting. The final result is a working portfolio CMS where I can publish projects, manage uploaded images, store contact messages, and update my website content from one dashboard.

Tech stack

Tools and technologies

AWSLinuxCI/CDIAMNext.jsPrismaMongoDB AtlasGitHub ActionsDockerCloudFrontAmazon ECRAmazon S3Amazon EC2

More projects to explore

Related portfolio work