Building My Personal Portfolio as a Creator-Engineer
This website is not just a portfolio.
It’s a reflection of how I think, build, learn, and evolve.
In this post, I want to document how I built this site, the technologies I used, the decisions I made, the problems I faced, and why I intentionally kept things simple.
This is not a tutorial.
It’s a personal engineering journal.
Why I Built This Portfolio
I didn’t want a flashy marketing template.
I wanted a space where:
My projects could live quietly.
My writing could evolve.
My learning journey could stay visible.
My future self could look back and understand how I thought.
I also wanted control — over content, design, SEO, and structure.
So I decided to build it myself.
Tech Stack
Here is the stack I finally settled on:
Frontend
Next.js (App Router)
React
TypeScript
Tailwind CSS
shadcn/ui
Backend
MongoDB
Mongoose
API Routes
Editor & CMS
Tiptap Editor
Zod + React Hook Form
ImageKit for image uploads
Other Tools
Git & GitHub
OpenAI API (for future experiments)
Custom slug generation & SEO handling
Design Philosophy
I chose a white, minimal, quiet theme.
No heavy gradients.
No noisy animations.
No dark marketing blocks.
Typography does most of the work.
Inter for UI, cards, metadata.
Cormorant Garamond for storytelling and blog content.
This separation helps my site feel both technical and human.
Custom CMS Instead of Headless CMS
I initially considered a headless CMS.
But I wanted to build my own system to understand content architecture deeply.
So I built:
Blog model in MongoDB
Project model in MongoDB
Dashboard pages for management
Slug-based routing
SEO fields per post
Draft / publish workflow
Tiptap stores content as JSON, which allows me to render clean HTML later with full control.
Tiptap Editor Setup
Tiptap was the hardest part.
I struggled with:
Extensions
Forms
Validation
Saving JSON properly
Styling output
But once it worked, it became the heart of my system.
Now I can:
Write rich blog posts
Embed images
Format content cleanly
Control rendering on frontend
This alone taught me more than many tutorials.
Image Handling with ImageKit
Instead of storing images directly in my database or public folder, I use ImageKit.
This gives me:
Optimized delivery
CDN
Easy uploads
Clean URLs
Better SEO images
The editor allows selecting uploaded images directly.
SEO & Metadata
Each blog and project supports:
Title
Description
OG image
Slug-based URLs
This means every post is:
Shareable on LinkedIn
SEO-friendly
Search-engine readable
Structured
I didn’t want SEO to be an afterthought.
What This Site Represents
This site is not about showing that I know everything.
It’s about showing:
How I learn
How I think
How I build
How I fail
How I improve
I am not a professional editor.
I am not a content expert.
I am still learning.
But I am consistent.
What’s Next
In the future, I want to add:
Writing series
AI experiments
Content workflow breakdowns
System design notes
Creator journey logs
This blog will slowly become my digital notebook.
Final Thought
This portfolio is not finished.
And it never will be.
It will evolve with me.
And that’s exactly what I wanted...
