If there’s one website I’ve probably spent way too much time tinkering with, it’s my own portfolio website.
Not because it was always broken.
But because every time I learn something new, there’s always this little thought in the back of my head:
“I think I could make this better.”
My portfolio originally started with WordPress.
At the time, it made things pretty easy. I could manage my portfolio and articles without touching the code every time I wanted to make an update.
But over time, I started feeling like the setup didn’t really fit the way I wanted to work.
So I decided to try something different.
From WordPress to Next.js
I rebuilt my portfolio using Next.js.
The first version was still pretty simple and completely static. Portfolio projects and articles were basically managed directly inside the codebase.
At one point, the website was deployed at:
And honestly, I was pretty happy with it.
It felt fast, the structure was more flexible, and I had much more freedom to experiment with the design and interactions.
But, of course...
A new problem eventually showed up.
If everything is static, adding a new project or article means going back into the code.
And as someone who likes to update his portfolio quite often, that started becoming a little annoying.
So I built my own CMS.

Instead of constantly editing content directly in the code, I decided to build a simple CMS for my portfolio.
At that time, the stack was:
Next.js + MongoDB Atlas + Cloudinary
MongoDB handled the data, while Cloudinary was used as the storage for portfolio covers, article thumbnails, and other supporting images.
At first, everything worked pretty well.
Until things started getting... annoying.
There were situations where database access became problematic from certain IP addresses.
Cloudinary also had some access issues.
And eventually I thought:
“Instead of constantly patching this thing, why don't I just rebuild the whole thing?”
😂
So I rebuilt it. Again.
This time, I didn't just want to fix the existing bugs.
I decided to rethink the whole system:
the visual design
content structure
content management
database
storage
and even how I manage my portfolio and articles
For the latest version, Next.js remained the main foundation, but I moved both the database and storage entirely to Supabase.
That eventually became the website you can see today:
And this time, it wasn't just a portfolio website anymore.
I started thinking of it more as a personal platform.
I even gave it two personalities.
One of the things I enjoyed most about the latest version was creating two different themes.
Designer Mode
Clean, modern, minimal, and focused on visual presentation and case studies.
Developer Mode
Darker, more experimental, with terminal-like elements and a slightly...
hacker-ish vibe. 😂
Because I didn't just want the website to showcase my design work.
I also wanted it to reflect the development side of what I do.
So visitors can basically see two sides of my work:
Design ↔ Development
But then I realized there was another thing I didn't like.
After moving away from WordPress, there was one thing that used to be incredibly convenient:
checking website analytics.
When I was using WordPress, I could simply rely on plugins to monitor things without opening multiple platforms.
After moving to Next.js, I had to open:
Google Analytics.
Google Search Console.
One by one.
And honestly...
that felt like a waste of time. 😂
So instead of complaining about it, I decided to build something myself.
Now my analytics live inside my own dashboard.
I added integrations with Google Analytics to monitor website traffic and activity, and Google Search Console to keep track of search performance.
So instead of opening multiple dashboards just to check how my website is doing, I can now see the important data directly from my own CMS dashboard.
It sounds like a small thing.
But for me, it's one of the features that actually makes the website more useful.
Because the website is no longer just a place to showcase my work.
It's also becoming a tool that I use to manage and understand my own website.
And for now, I'm pretty happy with it.
After several rebuilds, stack migrations, building my own CMS, changing storage systems, restructuring the data, and finally adding an analytics dashboard...
For now, I think I'm done.
At least for now. 😂
Until I inevitably find something else and think:
“Hmm... this would be pretty cool if I added this.”
And knowing myself...
I'll probably rebuild it again someday.
Because maybe that's simply how I learn.
Not just by reading documentation or following tutorials, but by building things that I actually use.
And this portfolio website has probably become one of my biggest personal laboratories.
It's more than just a portfolio.
Looking back, this website has also become a record of my journey through UI/UX, frontend development, backend development, databases, CMS architecture, deployment, analytics, and a bunch of other things I ended up learning along the way.
And maybe that's why it never really feels finished.
As long as I'm still learning something new, there's a good chance...
this website will keep changing too.
If there’s one website I’ve probably spent way too much time tinkering with, it’s my own portfolio website.
Not because it was always broken.
But because every time I learn something new, there’s always this little thought in the back of my head:
“I think I could make this better.”
My portfolio originally started with WordPress.
At the time, it made things pretty easy. I could manage my portfolio and articles without touching the code every time I wanted to make an update.
But over time, I started feeling like the setup didn’t really fit the way I wanted to work.
So I decided to try something different.
From WordPress to Next.js
I rebuilt my portfolio using Next.js.
The first version was still pretty simple and completely static. Portfolio projects and articles were basically managed directly inside the codebase.
At one point, the website was deployed at:
And honestly, I was pretty happy with it.
It felt fast, the structure was more flexible, and I had much more freedom to experiment with the design and interactions.
But, of course...
A new problem eventually showed up.
If everything is static, adding a new project or article means going back into the code.
And as someone who likes to update his portfolio quite often, that started becoming a little annoying.
So I built my own CMS.

Instead of constantly editing content directly in the code, I decided to build a simple CMS for my portfolio.
At that time, the stack was:
Next.js + MongoDB Atlas + Cloudinary
MongoDB handled the data, while Cloudinary was used as the storage for portfolio covers, article thumbnails, and other supporting images.
At first, everything worked pretty well.
Until things started getting... annoying.
There were situations where database access became problematic from certain IP addresses.
Cloudinary also had some access issues.
And eventually I thought:
“Instead of constantly patching this thing, why don't I just rebuild the whole thing?”
😂
So I rebuilt it. Again.
This time, I didn't just want to fix the existing bugs.
I decided to rethink the whole system:
the visual design
content structure
content management
database
storage
and even how I manage my portfolio and articles
For the latest version, Next.js remained the main foundation, but I moved both the database and storage entirely to Supabase.
That eventually became the website you can see today:
And this time, it wasn't just a portfolio website anymore.
I started thinking of it more as a personal platform.
I even gave it two personalities.
One of the things I enjoyed most about the latest version was creating two different themes.
Designer Mode
Clean, modern, minimal, and focused on visual presentation and case studies.
Developer Mode
Darker, more experimental, with terminal-like elements and a slightly...
hacker-ish vibe. 😂
Because I didn't just want the website to showcase my design work.
I also wanted it to reflect the development side of what I do.
So visitors can basically see two sides of my work:
Design ↔ Development
But then I realized there was another thing I didn't like.
After moving away from WordPress, there was one thing that used to be incredibly convenient:
checking website analytics.
When I was using WordPress, I could simply rely on plugins to monitor things without opening multiple platforms.
After moving to Next.js, I had to open:
Google Analytics.
Google Search Console.
One by one.
And honestly...
that felt like a waste of time. 😂
So instead of complaining about it, I decided to build something myself.
Now my analytics live inside my own dashboard.
I added integrations with Google Analytics to monitor website traffic and activity, and Google Search Console to keep track of search performance.
So instead of opening multiple dashboards just to check how my website is doing, I can now see the important data directly from my own CMS dashboard.
It sounds like a small thing.
But for me, it's one of the features that actually makes the website more useful.
Because the website is no longer just a place to showcase my work.
It's also becoming a tool that I use to manage and understand my own website.
And for now, I'm pretty happy with it.
After several rebuilds, stack migrations, building my own CMS, changing storage systems, restructuring the data, and finally adding an analytics dashboard...
For now, I think I'm done.
At least for now. 😂
Until I inevitably find something else and think:
“Hmm... this would be pretty cool if I added this.”
And knowing myself...
I'll probably rebuild it again someday.
Because maybe that's simply how I learn.
Not just by reading documentation or following tutorials, but by building things that I actually use.
And this portfolio website has probably become one of my biggest personal laboratories.
It's more than just a portfolio.
Looking back, this website has also become a record of my journey through UI/UX, frontend development, backend development, databases, CMS architecture, deployment, analytics, and a bunch of other things I ended up learning along the way.
And maybe that's why it never really feels finished.
As long as I'm still learning something new, there's a good chance...
this website will keep changing too.



