12 May 2026
Why I run my own servers
There's a moment in every side project where the free tier runs out and you have to decide who you are. Mine came about a year into building Nexlease.
For the longest time I just did what everyone tells you to do: push to a platform, let it build, let it deploy, don't think about the machine underneath. Felt like magic and cost me nothing, so I never bothered asking questions.
Then the project got real. More traffic, a background job that actually needed to stay running, a database that no longer fit in a hobby plan. Easy path was to open my wallet. The other path was learning how the thing I'd been ignoring actually worked. I went with the second one, mostly out of stubbornness, if I'm honest.
So I rented a bare server. Nothing on it, just Ubuntu, a root password, and a blinking cursor that did not care about me at all. Set up nginx. Set up PM2 so the node process would come back after a crash. Figured out SSL certificates, and why they always seem to expire at the worst possible time. Wrote a deploy flow that was basically pull, build, restart, and hope.
My ISP, for reasons I still don't fully understand, blocks every SSH port there is. So before I could even log in properly I had to tunnel my way through Cloudflare instead. That's the kind of problem no tutorial prepares you for. You just sit there at night googling error messages, slowly figuring out the wall is on your side of the connection.
It broke constantly. A config typo would take the whole site down. One credential stored in the wrong format made every login fail silently, no error at all, which is somehow worse than a loud crash. Learned that one the hard way, staring at logs at 2am wondering why something that worked an hour ago had just stopped returning anything.
Here's the part nobody warns you about, though: I liked it. Every time it broke I understood one more layer. Enough nights like that and the stack stops being a black box. There's no piece of it left now that I have to take on faith.
That's the actual payoff, not the few hundred rupees a month I'm saving. It's that when something goes down I'm not filing a support ticket and waiting on someone else's schedule. I'm opening a terminal, because I built every layer between the request and the response, so I already know where to look.
Managed hosting is the right call for a lot of people and I'm not going to pretend otherwise. But if you ever get the itch to know what's actually happening under your app, rent the cheap box and let it break on you for a weekend. You come out the other side a different developer.