There are two types of developers.
The first one proudly announces they're building a distributed microservice architecture for a to-do list with three users.
The second one is me.
The guy who spent way too long saying:
"Nah. Keep it simple."
For the longest time, my portfolio was exactly that.
Simple.
My website was built with Next.js. Static pages. Fast. Easy to deploy. No unnecessary moving parts.
Life was good.
Then I wanted a blog.
Like every developer, I thought:
"Surely someone else has already solved this."
So I tried Hashnode.
It worked.
Until it didn't.
Don't get me wrong—it was a great platform. But every time I wanted to tweak something, customize something, or make it feel like my website instead of my profile on someone else's platform, I hit another wall.
Eventually I got annoyed.
Annoyance is one of the greatest motivators in software development.
So I built my own blog.
The first version was honestly pretty nice.
A React dashboard.
Firebase.
Next.js fetching blog posts.
Simple enough.
For quite a while, that architecture did everything I needed.
Write blog.
Publish.
Website updates.
Done.
Every time someone suggested I should build a backend, I'd usually respond with something along the lines of:
"Why?"
Adding another server just because it sounds professional has never appealed to me.
I've also seen developers proudly tell people they spent $200 or $300 in a month just hosting what is essentially a frontend talking to a REST API.
Congratulations, I guess.
My wallet would like to remain employed.
So I kept things simple.
Or at least... I kept telling myself they were simple.
Then the project kept growing.
Projects.
Skills.
Experience.
Recommendations.
Embeds.
Comments.
Authentication.
User settings.
More blog features.
Suddenly both my dashboard and my website knew way too much about my database.
Every new feature meant touching multiple places.
Every little change started feeling bigger than it should.
And then came the thing that finally broke my stubbornness.
AI.
Not because AI magically requires a backend.
But because I knew where this project was heading.
AI-assisted writing.
SEO generation.
Content workflows.
Automation.
Scheduling.
Things that had absolutely no business living inside a React component.
That's when I finally admitted something to myself.
I wasn't building a portfolio anymore.
I was slowly building a platform.
So...
I spent my weekends building a backend.
Well...
Not a weekend.
Four weekends.
Two Saturdays.
Two Sundays.
Countless cups of coffee.
A few moments of staring at Firestore wondering why a query suddenly hated me.
And at least one existential crisis caused by TypeScript.
Normal weekend activities.
The funny thing is that nothing looks different.
The dashboard still looks like my dashboard.
The website still looks like my website.
Nobody visiting the site will notice anything changed.
Which, honestly, is exactly how infrastructure should be.
The difference is underneath.
Instead of every application talking directly to the database, everything now goes through one API.
One place for business logic.
One place for validation.
One place for authentication.
One place to build whatever comes next.
The frontend became... just a client.
The part I'm most excited about isn't that I now have a backend.
It's what having one unlocks.
Adding new features no longer starts with:
"Where should this logic live?"
Now the answer is obvious.
The backend.
Whether it's AI, analytics, scheduled publishing, image processing, or something I haven't even thought of yet, I finally have a proper home for it.
The best part?
It's still sitting on my local machine.
Not deployed.
Not public.
Not replacing my production site.
Yet.
This post is actually being written while everything is still running locally.
The backend is finished.
The React dashboard has already been migrated to use it.
The public Next.js site is next.
After that comes deployment.
So this article is less of a launch announcement...
...and more of a checkpoint.
One of those moments where you stop for five minutes, look at the commit history, and realize you've accidentally built something much bigger than the thing you started with.
I spent a long time trying to avoid building a backend because I wanted to keep things simple.
Ironically...
Building the backend is what finally made everything simple again.