Static on the Surface, Psycho on the Server
October 26, 2025
Every developer has that one project that starts with, "This will be simple," and ends with five sleepless nights, three existential crises, and a website that somehow tracks scroll depth. Yeah… this is that story.

Am I right or am I right?
The decisions I've made so far while building this portfolio website, oh boy, it's been a journey.
Let's start from the top: I'm a backend developer. That's my home turf, my comfort zone, my coffee. Frontend? Not really my forte. So when I decided to build my portfolio website, I had a little identity crisis, what am I really going to show here? Some flashy frontend animations? Nah. I'm not here to make a digital Disneyland.
So I thought, fine, I'll make something clean in React, a nice, static looking website. Simple, elegant, functional. But then it hit me: "Wait… what's the point of building a static site if it just sits there doing nothing?"
That's when the evil genius in me whispered, what if it looks static… but secretly runs a serious backend behind the scenes?
Choosing the Framework
My first plan was React for the frontend, NestJS for the backend classic combo, right? But soon I realized I'd be juggling routing, API endpoints, and two separate deployments. That's like ordering a pizza and getting a side of homework.
Then I thought, "Okay, maybe Angular, everything in one giant framework!" But nah, Angular felt like bringing a tank to a water balloon fight. Too heavy, too much ceremony.
Finally, the lightbulb moment: Next.js. React? Check. Routing? Automatically handled. Server side rendering? Included. API routes? Built in. The routing is file based, simple as dropping a file in a folder. Want dynamic routes? Just wrap it in brackets [id].tsx. Done. Beautiful.
So yeah, Next.js it is.
The Website
Here it is, my portfolio website, built using Next.js. At first glance, it looks like your average static website. Nothing fancy. But oh, the twist…
Behind that calm, minimal frontend lives a backend that's constantly crunching data, tracking user actions, and talking to the database. It looks peaceful, but trust me, it's doing some serious lifting behind the scenes.
I know you before you know me! (Mixpanel vs Google Analytics)
I track everything. Yes, everything. Even how far you scroll. Google Analytics? Sure, it's great, but you can't do what I'm doing with just two lines of code. Mixpanel lets me see what you click, how long you stay, and even which part of the page you rage scroll through at 2 AM.
So you better goddamn read this whole article, I'll know if you didn't.
Database Decisions: Firebase vs Relational Databases
Now, for data storage, I went with Firebase Firestore a NoSQL, document based database. Why? Because all I needed was a Gmail account, a cup of coffee, and boom! database ready. It's free, offers 1 GB of storage, and handles 50,000 reads and 20,000 writes per day. Perfect for a portfolio site.
Hosting a relational database would've just made my life complicated more servers, more maintenance, more "why is this connection string not working again?" headaches. So yeah, Firestore was a no-brainer.
Cloudflare vs GoDaddy: The Final Battle
Now comes the domain decision, the unsung hero of every website. I compared Cloudflare and GoDaddy. GoDaddy tempted me with that sweet $0.01 first-year price. But the catch? Renewal for $20+ every year after that. Classic move.
Cloudflare, on the other hand, charged around $10 per year, same price every time, no surprises, no hidden nonsense. Reliable, transparent, chill. So Cloudflare it is.
Hosting on Vercel: My Little DevOps Adventure
Now, what good is all this code without some DevOps magic, right? EnterVercel the perfect home for my Next.js app.
Every time I push to my GitHub repo, Vercel automatically builds and deploys my site. I'm literally running a CI/CD pipeline without lifting a finger. Commit. Push. Deploy. Done.
It even feels like my own mini DevOps operation, just way cooler and way less stressful. CI/CD? Wihuuu!
And that's how I ended up with a site that looks calm on the surface but works like a caffeinated backend engineer underneath.
Static? Sure. Boring? Never.
Because every scroll, every click, and every route you take, I already know you were coming.